iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
0

嗨大家好我是Andy,昨天和前天講述過DLL的殼和脫殼的工具,那今天我們來看一下要怎麼實際用PEiD查殼,或是他有甚麼方便的功能讓我們用呢?!今天就來探討看看吧!廢話不多說,我們直接進入主題。


該怎麼查殼

我們今天使用PEiD來做查詢的動作,目前先選一個檔案

在這個檔案中可以發現他是使用Microsoft Visual C++6.0 DLL創建而成的,而我們可以在擴展訊息上面在點開

看起來是沒有加殼的狀態
接著我們可以點開
會看到一大長串的組合語言

多專案掃描

可以一次掃很多個檔案方便找哪個有加殼哪個沒有加殼


這邊就有找到一個檔案是常見的UPX加殼

找到是甚麼殼之後就可以利用現有的軟體進行脫殼,當然如果是高手高手高高手可以用手動脫殼

EXE和DLL脫殼的區別

DLL

DLL中的OEP是DllMain原始函數的開始地址,加殼DLL列出的開始地址是脫殼中的一個地址。

OEP是調用GetModuleHandleA的GetVersion

EXE

exe的入口只會開始時執行一次,但DLL的入口在整個執行過程中至少會跑兩次,一次是開始,另外一次是退出,就跟我們一開始說的那四個case一樣都放在入口點,所以才會被調用兩次。

結語

本來今天想說可以反組譯一下DLL,但是由於智慧財產權的關係要自己去弄一個DLL加密,加密後脫殼再反組譯,各位也不要去輕易嘗試惹禍上身,好了今天的學習筆記就到這裡了,目前只剩兩天,一天看看明天有甚麼可以看的,最後一天是照常的完賽心得?!這必須的,感謝各位這一個月的觀看,看一個菜雞寫文章哈哈哈,我們明天見。


上一篇
第二十七天:脫殼又稱脫衣服?!
下一篇
第二十九天:做一個總結吧
系列文
闖入DLL的世界 DLL我要進來了哦30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言