esp脫殼+文件大小自校驗(yàn)

步驟如下

1.查殼
由圖可見莱找,顯然有殼

image

2.找oep(ESP定律)

程序加載進(jìn)OD赦颇,F(xiàn)8單步運(yùn)行,右邊寄存器窗口發(fā)現(xiàn)只有esp的值在變曙搬,符合ESP定律摔吏。
在寄存器位置右鍵,點(diǎn)擊HW-break下硬件斷點(diǎn)纵装。然后F9運(yùn)行到斷點(diǎn)處征讲,到達(dá)跳轉(zhuǎn)到oep 的前一步,單步運(yùn)行搂擦,遇到如下圖:右鍵分析點(diǎn)擊在模塊中刪除分析稳诚,即得到OEP.在oep處右鍵用ollydump脫殼當(dāng)前進(jìn)程。復(fù)制當(dāng)前oep.

image

image

3.脫殼(LordPE)

在lordPE中打開樣本程序瀑踢,選中右鍵糾正鏡像大小扳还,再右鍵完全脫殼才避。


image

4.修復(fù)導(dǎo)入表(ImportREC)

在ImportREC中打開目標(biāo)進(jìn)程即樣本進(jìn)程,然后右邊選項(xiàng)中輸入之前在OD中選中的OEP氨距,點(diǎn)擊IAT自動(dòng)搜索桑逝,然后點(diǎn)擊獲取導(dǎo)入表。

image

5.文件大小自檢

脫殼以后雙擊沒得反應(yīng)俏让,可能是有文件大小自檢校驗(yàn)楞遏,脫殼后的程序載入OD,在GetFileSize函數(shù)下斷點(diǎn)首昔,在插件中選API斷點(diǎn)設(shè)置工具->常用API斷點(diǎn)寡喝。選中文件類的GetFileSize.然后F9運(yùn)行程序,到斷點(diǎn)處停下勒奇,在堆棧中右鍵反匯編跟隨预鬓,找到調(diào)用這個(gè)函數(shù)的位置,然后下斷點(diǎn)赊颠,把剛剛的那個(gè)斷點(diǎn)刪除格二。在斷點(diǎn)后發(fā)現(xiàn)是幾個(gè)cmp ,很明顯是比較文件大小,故而把這兩個(gè)cmp右鍵二進(jìn)制->用nop填充竣蹦。然后復(fù)制到可執(zhí)行文件顶猜,保存文件。再次點(diǎn)擊程序痘括,發(fā)現(xiàn)正常運(yùn)行长窄。


image
image
image

**
注:esp 定律**

ESP定律算是我們?cè)诿摎ぎ?dāng)中最常使用的方法之一,也特別適合像我一樣的新手远寸!而今天文章說的是ESP脫殼的原理和分析抄淑!只有知道原理了,我們的技術(shù)才能走得列遠(yuǎn)驰后!

一.準(zhǔn)備知識(shí)
在我們開始討論ESP定律之前,說些簡(jiǎn)單的匯編知識(shí)矗愧。

1.call

這個(gè)命令是訪問子程序的一個(gè)匯編基本指令灶芝。也許你說,這個(gè)我早就知道了唉韭!別急請(qǐng)繼續(xù)看完夜涕。call真正的意義是什么呢?我們可以這樣來理解:

1.向堆棧中壓入下一行程序的地址属愤;
2.JMP到call的子程序地址處女器。

例如:

代碼:

00401029.E8 DA240A00 call 004A3508
0040102E.5A pop edx

在執(zhí)行了00401029以后,程序會(huì)將0040102E壓入堆棧住诸,然后JMP到004A3508地址處驾胆!

2.RETN

與call對(duì)應(yīng)的就是RETN了涣澡。對(duì)于RETN我們可以這樣來理解:

1.將當(dāng)前的ESP中指向的地址出棧;

2.JMP到這個(gè)地址丧诺。

這個(gè)就完成了一次調(diào)用子程序的過程入桂。在這里關(guān)鍵的地方是:如果我們要返回父程序,則當(dāng)我們?cè)诙褩V羞M(jìn)行堆棧的操作的時(shí)候驳阎,一定要保證在RETN這條指令之前抗愁,ESP指向的是我們壓入棧中的地址。這也就是著名的“堆棧平衡”原理呵晚!

3.狹義ESP定律

ESP定律的原理就是“堆棧平衡”原理蜘腌。

讓我們來到程序的入口處看看吧!

1.這個(gè)是加了ASPACK殼的入口時(shí)各個(gè)寄存器的值饵隙!

代碼:

EAX 00000000

ECX 0012FFB0

EDX 7FFE0304 //堆棧值

EBX 7FFDF000 //堆棧值

ESP 0012FFC4

EBP 0012FFF0

ESI 77F57D70 ntdll.77F57D70

EDI 77F944A8 ntdll.77F944A8

EIP 0040D000 ASPACK.<ModuleEntryPoint>

2.這個(gè)是ASPACK殼JMP到OEP后的寄存器的值撮珠!

代碼:

EAX 004010CC ASPACK.004010CC

ECX 0012FFB0

EDX 7FFE0304 //堆棧值

EBX 7FFDF000 //堆棧值

ESP 0012FFC4

EBP 0012FFF0

ESI 77F57D70 ntdll.77F57D70

EDI 77F944A8 ntdll.77F944A8

EIP 004010CC ASPACK.004010CC

呵呵~是不是除了EIP不同以外,eax保存當(dāng)前OEP值癞季,其他都一模一樣敖偻!

為什么會(huì)這樣呢绷柒?我們來看看

0040D000 A> 60 pushad //注意這里ESP=0012FFC4

0040D001 E8 00000000 call ASPACK.0040D006 //ESP=0012FFA4

PUSHAD就是把所有寄存器壓棧志于!我們?cè)诘綒さ淖詈罂纯矗?/p>

代碼:

0040D558 61 popad //ESP=0012FFA4

0040D559 75 08 jnz short ASPACK.0040D563 //注意這里ESP=0012FFC4

也就是說當(dāng)我們對(duì)ESP的0012FFA4下硬件訪問斷點(diǎn)之后。當(dāng)程序要通過堆棧訪問這些值废睦,從而恢復(fù)原來寄存器的值伺绽,準(zhǔn)備跳向苦苦尋覓的OEP的時(shí)候,OD幫助我們中斷下來嗜湃。

小結(jié):我們可以把殼假設(shè)為一個(gè)子程序奈应,當(dāng)殼把代碼解壓前和解壓后,他必須要做的是遵循堆棧平衡的原理购披。

因?yàn)榇蠹覍?duì)ESP理解各有異同杖挣,但是,大同小異刚陡!一般理解可以為:

1惩妇、在命令行下斷hr esp-4(此時(shí)的ESP就是OD載入后當(dāng)前顯示的值)

2、hr ESP(關(guān)鍵標(biāo)志下一行代碼所指示的ESP值(單步通過))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筐乳,一起剝皮案震驚了整個(gè)濱河市歌殃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蝙云,老刑警劉巖氓皱,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡波材,警方通過查閱死者的電腦和手機(jī)股淡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來各聘,“玉大人揣非,你說我怎么就攤上這事《阋颍” “怎么了早敬?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)大脉。 經(jīng)常有香客問我搞监,道長(zhǎng),這世上最難降的妖魔是什么镰矿? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任琐驴,我火速辦了婚禮,結(jié)果婚禮上秤标,老公的妹妹穿的比我還像新娘绝淡。我一直安慰自己,他們只是感情好苍姜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布牢酵。 她就那樣靜靜地躺著,像睡著了一般衙猪。 火紅的嫁衣襯著肌膚如雪馍乙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天垫释,我揣著相機(jī)與錄音丝格,去河邊找鬼。 笑死棵譬,一個(gè)胖子當(dāng)著我的面吹牛显蝌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播订咸,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼琅束,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了算谈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤料滥,失蹤者是張志新(化名)和其女友劉穎然眼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體葵腹,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡高每,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年屿岂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鲸匿。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡爷怀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出带欢,到底是詐尸還是另有隱情运授,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布乔煞,位于F島的核電站吁朦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏渡贾。R本人自食惡果不足惜逗宜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望空骚。 院中可真熱鬧纺讲,春花似錦、人聲如沸囤屹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牺丙。三九已至则涯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冲簿,已是汗流浹背粟判。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留峦剔,地道東北人档礁。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像吝沫,于是被迫代替她去往敵國和親呻澜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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

  • 8086匯編 本筆記是筆者觀看小甲魚老師(魚C論壇)《零基礎(chǔ)入門學(xué)習(xí)匯編語言》系列視頻的筆記依疼,在此感謝他和像他一樣...
    Gibbs基閱讀 37,219評(píng)論 8 114
  • 這是我寫的第6篇文章 這篇文章是我再看完長(zhǎng)達(dá)2個(gè)小時(shí)的怒豆渣(李楊)的直播后寫的,記錄此時(shí)的所想所感而芥。 認(rèn)識(shí)怒豆渣...
    國產(chǎn)Pr插件干的庫閱讀 1,465評(píng)論 0 0
  • 今天棍丐,被人力HR趙告知误辑,我要碼字一篇500字左右的跑步心靈雞湯,作為公司月刊材料骄酗。一開始稀余,是有那么一點(diǎn)抗拒的...
    囚團(tuán)閱讀 413評(píng)論 0 0
  • 事務(wù),就是保證一系列業(yè)務(wù)邏輯全部執(zhí)行或者全部不執(zhí)行趋翻,在開發(fā)中睛琳,事務(wù)是怎么控制的呢?方法一踏烙、使用hibernate的...
    小沙鷹168閱讀 1,155評(píng)論 0 0
  • 一师骗、認(rèn)識(shí)差異、尊重差異 設(shè)想一下讨惩,男人來自火星辟癌,女人來自金星,兩個(gè)星球上人們的思維模式荐捻、行事風(fēng)格完全不同黍少。兩人相知...
    銳博Reborn閱讀 338評(píng)論 0 0