時(shí)下的軟件加殼風(fēng)盛行,而且一個(gè)比一個(gè)來(lái)的兇,如果不及時(shí)掌握脫殼的技巧,那么無(wú)論對(duì)于Cracker還是漢化人來(lái)講都將很不利。小弟并不是什么高手,我也是剛剛學(xué)會(huì)脫殼,小弟在這將脫殼中總結(jié)出的一些經(jīng)驗(yàn)寫(xiě)出來(lái),希望能給和小弟一樣剛學(xué)脫殼的朋友一定的幫助。請(qǐng)各位高手不要看了,那樣只會(huì)浪費(fèi)您寶貴的時(shí)間,如果小弟下面的內(nèi)容有錯(cuò)漏的地方,請(qǐng)給小弟指正。
現(xiàn)在我們開(kāi)始練習(xí)脫殼了,首先準(zhǔn)備好 Trw2k 及 Prodump1.62 ,然后隨便找一個(gè)EXE文件用Aspack2001壓縮一次,我是用 speedcat2.1(以下簡(jiǎn)稱sc) 。
啟動(dòng)Trw2k,將sc拖到TRW2K中,點(diǎn)擊LOAD,如下:
XXX:00431001 60 PUSHAD *注意這個(gè)入棧*
XXX:00431002 E872050000 CALL 00431579
XXX:00431007 EB4C JMP 00431055 *跳到解壓程序*
在這之后程序會(huì)在幾個(gè)地方作循環(huán),下 G 指令跳出這些循環(huán)以節(jié)省時(shí)間,然后小心按F10一直來(lái)到:
XXX:004314F3 61 POPAD *注意這個(gè)出棧*
XXX:004314F4 7508 JNZ 004314FE *程序入口*
XXX:004314F6 B801000000 MOV EAX,00000001
XXX:004314FB C20C00 RET 000C
XXX:004314FE 6864194000 PUSH 00401964
XXX:00431503 C3 RET
我們已經(jīng)找到程序的入口,可以開(kāi)始編輯 Prodump1.62 中的Script.ini文件脫殼了。但我還要加一點(diǎn)說(shuō)明,留意 XXX:00431001 PUSHAD 和 XXX:004314F3 POPAD 這一對(duì)指令,匯編知識(shí)告訴我們它們?nèi)币徊豢?,我發(fā)現(xiàn)不管是Aspack還是Upx加殼的軟件一開(kāi)始都會(huì)停在 PUSHAD ,然后在 POPAD 指令后緊跟一個(gè)跳躍的指令,這個(gè)跳躍指令就是程序的入口。
我們現(xiàn)在開(kāi)始編輯Script.ini文件。打開(kāi)Script.ini文件,在[INDEX]最下面加上一行P??=Aspack2001(??是在[INDEX]中的行號(hào)),然后在Script.ini文件最后完整地加上:
[Aspack2001]
L1=OBJR
L2=LOOK EB,4C *跳到解壓程序的代碼*
L3=JZ 5
L4=QUIT
L5=BP
L6=WALK
L7=OBJR
L8=LOOK 61,75 *程序入口的代碼*
L9=BP
LA=STEP
OPTL1=00000000
OPTL2=01010001
OPTL3=01010001
OPTL4=00030000 *這一行很重要,如果解壓后的程序運(yùn)行有問(wèn)題,改成00010000
OPTL5=00000000 或00020000試試*
最后存盤(pán)。
現(xiàn)在還等什么?用Prodump32脫殼呀!
現(xiàn)在我們開(kāi)始練習(xí)脫殼了,首先準(zhǔn)備好 Trw2k 及 Prodump1.62 ,然后隨便找一個(gè)EXE文件用Aspack2001壓縮一次,我是用 speedcat2.1(以下簡(jiǎn)稱sc) 。
啟動(dòng)Trw2k,將sc拖到TRW2K中,點(diǎn)擊LOAD,如下:
XXX:00431001 60 PUSHAD *注意這個(gè)入棧*
XXX:00431002 E872050000 CALL 00431579
XXX:00431007 EB4C JMP 00431055 *跳到解壓程序*
在這之后程序會(huì)在幾個(gè)地方作循環(huán),下 G 指令跳出這些循環(huán)以節(jié)省時(shí)間,然后小心按F10一直來(lái)到:
XXX:004314F3 61 POPAD *注意這個(gè)出棧*
XXX:004314F4 7508 JNZ 004314FE *程序入口*
XXX:004314F6 B801000000 MOV EAX,00000001
XXX:004314FB C20C00 RET 000C
XXX:004314FE 6864194000 PUSH 00401964
XXX:00431503 C3 RET
我們已經(jīng)找到程序的入口,可以開(kāi)始編輯 Prodump1.62 中的Script.ini文件脫殼了。但我還要加一點(diǎn)說(shuō)明,留意 XXX:00431001 PUSHAD 和 XXX:004314F3 POPAD 這一對(duì)指令,匯編知識(shí)告訴我們它們?nèi)币徊豢?,我發(fā)現(xiàn)不管是Aspack還是Upx加殼的軟件一開(kāi)始都會(huì)停在 PUSHAD ,然后在 POPAD 指令后緊跟一個(gè)跳躍的指令,這個(gè)跳躍指令就是程序的入口。
我們現(xiàn)在開(kāi)始編輯Script.ini文件。打開(kāi)Script.ini文件,在[INDEX]最下面加上一行P??=Aspack2001(??是在[INDEX]中的行號(hào)),然后在Script.ini文件最后完整地加上:
[Aspack2001]
L1=OBJR
L2=LOOK EB,4C *跳到解壓程序的代碼*
L3=JZ 5
L4=QUIT
L5=BP
L6=WALK
L7=OBJR
L8=LOOK 61,75 *程序入口的代碼*
L9=BP
LA=STEP
OPTL1=00000000
OPTL2=01010001
OPTL3=01010001
OPTL4=00030000 *這一行很重要,如果解壓后的程序運(yùn)行有問(wèn)題,改成00010000
OPTL5=00000000 或00020000試試*
最后存盤(pán)。
現(xiàn)在還等什么?用Prodump32脫殼呀!

