upx手動脫殼
工具
- upx:upx是一個開源的壓縮殼工具,可以到github下載upx
- Study_PE工具,可以到看雪論壇下載
upx簡單的用法
upx src.exe
命令將src.exe加殼
upx src.exe -o dst.exe
命令將src.exe加殼並另存為dst.exe
upx手動脫殼
脫殼原理
平衡堆疊法(又稱ESP定律,技巧法)
一般加殼程式在執行時,會先執行殼程式碼,然後在記憶體中恢復還原原程式,再跳轉回原始OEP,執行原程式的程式碼,我們可以把殼程式碼理解為一個大的函式,既然是函式,那麼進入函式和退出函式時,堆疊應該就是平衡的,基於這樣的一種特性,我們可以在殼程式碼操作了堆疊之後,對堆疊設定訪問斷點,然後讓程式跑起來,當程式暫停的時候,就是殼程式碼即將執行完的時候,然後在其附近單步跟蹤,就可以找到原始OEP了。這種方法比較適用於upx這種只對程式碼和資料壓縮了的殼,如果還對程式碼加密了,那麼就不是太好找了。加密的話就需要結合單步跟蹤法。
開始實驗
首先寫一個demo程式,用upx加殼,操作如下:
沒有加殼之前,程式的入口地址為:``ImageBase + AddressOfEntryPoint = 0x004014C0```
OD載入之後也可以看到程式載入記憶體之後的入口地址:
節區如下,一共有7個節區
加殼之後
入口地址發生了變化
節區的變化,之前有7個節區,現在只有3個節區
通過Study_PE也檢測出了殼程式位UPX
加殼程式分析
使用OD載入程式,可以看到OD也提示程式已經被加密或者壓縮,殼程式正是對原有程式做壓縮或者加密,以達到保護程式,減少程式大小的目的。
OD載入程式之後,可以看到第一條指令為pushad指令。對於殼程式,先pushad,首先將EAX, ECX, EDX, EBX, ESP, EBP, ESI, and EDI暫存器的值壓棧,它的作用的儲存暫存器的狀態,執行殼程式解壓(解密)原程式,最後popad恢復暫存器狀態,跳到OEP執行原程式
執行pushad指令之後,在ESP記憶體下硬體訪問斷點,再次訪問到ESP的時候說明殼程式執行結束。按下F9,執行到斷點處。
可以看到上一條指令是popad,執行與pushad相反的操作,恢復暫存器狀態。
在不遠處看到一個大的跳轉,jmp demo_upx.004014C0,這裡是跳到程式的OEP。
實際上在分析時,我們是先單步到jmp跳轉到的程式碼進行觀察之後得出是否是原始OEP的結論的,這個部分需要我們對未加殼程式的OEP要有所瞭解,比如VC6.0的程式一般OEP最開始的一個API呼叫是GetVersion,看OEP見到GetVersion就如見到了vc6.0程式。
我們單步到跳轉之後的程式碼處,0x004014C0這個地方就是原始OEP,而後我們要做的就是在這個地方進行dump。
至此,我們已經將upx殼脫掉,並將脫殼的程式命名為dump.exe。但是脫殼之後的程式是無法執行的,這時需要修復匯入地址表IAT。
IAT修復
pass…
參考
https://zhuanlan.zhihu.com/p/34263050
相關文章
- 教你如何寫UPX脫殼指令碼指令碼
- 某IOT蠕蟲病毒分析之UPX脫殼實戰
- 逆向基礎——軟體手動脫殼技術入門
- 破解教程之手脫UPX的DLL
- iOS逆向學習之五(加殼?脫殼?)iOS
- 十、iOS逆向之《越獄砸殼/ipa脫殼》iOS
- 一次簡單的脫殼
- Od跟進之脫殼(待完善)
- Android.Hook框架Cydia篇(脫殼機制作)AndroidHook框架
- 騰訊安全ApkPecker上線DEX-VMP自動化脫殼服務APK
- UPX使用教程
- 脫殼基礎知識以及簡單應用
- iOS應用程式的脫殼實現原理淺析iOS
- 【開源】BlackDex,無需環境,Android新姿勢脫殼工具Android
- 從Android執行時出發,打造我們的脫殼神器Android
- 金蟬脫殼2百度雲免費線上觀看
- 自己動手編寫一個Mybatis外掛:Mybatis脫敏外掛MyBatis
- 二手車電商需要“貝殼”?
- 動態脫敏典型應用場景分析——業務脫敏、運維脫敏、資料交換脫敏運維
- Honcho:特斯拉成脫手最快的二手車品牌
- 資料庫動態脫敏資料庫
- Java日誌手機號脫敏工具類Java
- 高研班直播公開課《JNI函式與脫殼分析實戰》 8月14日下午1點!函式
- openGauss 動態資料脫敏機制
- ng 姓名,手機,身份證號碼 脫敏處理
- 瘋殼-MTK智慧電話手錶開發整板測試
- openGauss-動態資料脫敏機制
- 貝殼研究院:2020年10月17城二手房源流動性指數環比增加
- 當自動駕駛還未擺脫人類自動駕駛
- 【不可思議的前端】動如脫兔的小球前端
- AI在用 | 想讓手機桌布脫胎換骨?試試MidjourneyAI
- 蝦殼也是寶!
- Linux 外殼程式Linux
- TechInsights關於蘋果智慧手錶金屬殼電池的探討蘋果
- 浮動、絕對定位脫離文件流的區別
- 不能玩吃雞手遊,印度玩家刷屏PUBG Mobile脫離騰訊
- 脫胎換骨,開放世界手遊《幻塔》開啟二測
- 5G位移下的封裝產業“地殼運動”封裝產業