脫殼經(jīng)驗1

脫殼-0.upx.exe
① 找OEP
ESP定律

脫殼-0.exe(FSG 2.0)
① 找oep
單步跟蹤
跳轉到OEP代碼:
JMP DWORD PTR DS:[EBX+0xC]
② dump內(nèi)存
柜某。委乌。
③ 修復IAT
FSG 2.0對內(nèi)存中的IAT 進行了一些空隙填充,需要將其改為0

image.png

脫殼-2.exe
① 找OEP
單步跟蹤

② IAT加密喘垂,解密IAT
解密IAT需要先找到加密IAT的地方,然后將其刪除或是能還原倦青。

找加密IAT代碼的方式
① 對IAT設置硬件寫入斷點
對GetVersion所在的iat設置硬件寫入斷點封拧,最終可以找到填充IAT的地方
004385EE 8907 MOV DWORD PTR DS:[EDI],EAX ; 填充IAT 函數(shù)地址

修改附近代碼

修改前


image.png

修改后


image.png

② 對IAT相關的API設置斷點
LoadLibraryA
GetProcAddress
GetModuleHandleA
VirtualProtect

脫殼中的一些問題
拿到程序怎么辦?
以脫殼為目的健田,盡可能完成脫殼
技巧的使用?
① API下斷注意的問題
API下斷之后佛纫,第一應該觀察的是堆棧妓局,確定返回地址是我們要分析的模塊

image.png

②注意當前分析的模塊是不是主模塊

image.png

脫殼-4.exe(未知殼)
① 找OEP
ESP定律
② IAT加密
這個殼使用一些加密技術:

IAT函數(shù)地址是不規(guī)則的
填充IAT時有混淆代碼
自己實現(xiàn)了一個GetProcAddress
字符串使用Hash值來存儲
殼代碼填充IAT的代碼是在申請的內(nèi)存中執(zhí)行
混淆規(guī)則

jmp 地址
等價于
call 地址
LEA ESP,DWORD PTR SS:[ESP+0x4]
哈希算法

edx=0, 保存計算之后的結果
LODS BYTE PTR DS:[ESI]
TEST AL,AL
JE SHORT 002F1CCB
ROL EDX,0x3
XOR DL,AL

尋找OEP腳本

// 1. 定義變量
VAR dwWriteIATAddr // 填充IAT地址的下一行地址
VAR dwGetAPIAddr // 獲取到了API地址
VAR dwOEP // 原始OEP
VAR dwGetBaseAddr // 申請的內(nèi)存
VAR dwTmp // 臨時變量

// 2. 初始化變了
MOV dwOEP, 0047148B

MOV dwGetBaseAddr,0047A37F
// 0047A37F 0BC>OR EAX,EAX ; eax=申請的基地址

MOV dwWriteIATAddr,0897

// 001D0895 890>MOV DWORD PTR DS:[EDX],EAX ; 填充IAT
// 001D0897 E8 >CALL 001D08D5

//00300895 890>MOV DWORD PTR DS:[EDX],EAX
//00300897 E8 >CALL 003008D5

MOV dwGetAPIAddr, 0828

//00300828 ^\E9 >JMP 00300474 ; eax=函數(shù)地址

// 3. 清除所有斷點
BPHWC
BPMC
BC

// 4. 設置斷點
BPHWS dwGetBaseAddr, "x"
BPHWS dwOEP, "x"

// 5. 循環(huán)判斷
LOOP0:
RUN

CMP eip,dwGetBaseAddr
JNZ NEXT1
ADD dwWriteIATAddr,eax
ADD dwGetAPIAddr,eax

BPHWS dwWriteIATAddr, "x"
BPHWS dwGetAPIAddr, "x"

JMP LOOP0

NEXT1:
CMP eip,dwGetAPIAddr
JNZ NEXT2

MOV dwTmp,eax
JMP LOOP0
NEXT2:
CMP eip,dwWriteIATAddr
JNZ NEXT3

MOV [edx],dwTmp
JMP LOOP0

NEXT3:
CMP eip,dwOEP
JNZ LOOP0

MSG "到達OEP!"

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末总放,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子好爬,更是在濱河造成了極大的恐慌间聊,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抵拘,死亡現(xiàn)場離奇詭異,居然都是意外死亡型豁,警方通過查閱死者的電腦和手機僵蛛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迎变,“玉大人充尉,你說我怎么就攤上這事∫滦危” “怎么了驼侠?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谆吴。 經(jīng)常有香客問我倒源,道長,這世上最難降的妖魔是什么句狼? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任笋熬,我火速辦了婚禮,結果婚禮上腻菇,老公的妹妹穿的比我還像新娘胳螟。我一直安慰自己,他們只是感情好筹吐,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布糖耸。 她就那樣靜靜地躺著,像睡著了一般丘薛。 火紅的嫁衣襯著肌膚如雪嘉竟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天洋侨,我揣著相機與錄音周拐,去河邊找鬼。 笑死凰兑,一個胖子當著我的面吹牛妥粟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吏够,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼勾给,長吁一口氣:“原來是場噩夢啊……” “哼滩报!你這毒婦竟也來了?” 一聲冷哼從身側響起播急,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤脓钾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后桩警,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體可训,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年捶枢,在試婚紗的時候發(fā)現(xiàn)自己被綠了握截。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡烂叔,死狀恐怖谨胞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蒜鸡,我是刑警寧澤胯努,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站逢防,受9級特大地震影響叶沛,放射性物質發(fā)生泄漏。R本人自食惡果不足惜忘朝,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一恬汁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辜伟,春花似錦氓侧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旱捧,卻和暖如春独郎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背枚赡。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工氓癌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贫橙。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓贪婉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親卢肃。 傳聞我的和親對象是個殘疾皇子疲迂,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容