用TRW快速手脱NFO V1.0壳——Win98的Notepad
用TRW快速手脱NFO V1.0壳——Win98的Notepad
【NFO 简介】:NFO is very simple executable encryptor.It expects only one param from command line, valid PE executable file name.
【作者声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
【调试环境】:Win98SE、TRW2000娃娃修改版、ImportREC
—————————————————————————————————
【脱壳过程】:
NFO 和 PeX 是同一个
Nfo.exe无法在XP的DOS模式下运行,用NFO加壳的程序也无法在XP下运行。
NFO壳算是很老的壳了。用了花指令、异常,由于偶对CONTEXT结构不熟,在OD中常常跑飞。
后来发现TRW对付这个壳简直是太Easy了!:-) “异常”具体看《加密与解密②版》P 319
近来很少用TRW的U命令了,呵呵,都是Ollydbg让我变“懒”了 :-)
—————————————————————————————————
0187:004010CC 60 PUSHA
====>进入TRW就断在“OEP”的地址,当然现在还不是OEP啦
====>很少见的入口方式,:-) 致命弱点:OEP一目了然!
0187:004010CD 9C PUSHF
0187:004010CE 8D5012 LEA EDX,[EAX+12]
0187:004010D1 2BC9 SUB ECX,ECX
0187:004010D3 B11E MOV CL,1E
0187:004010D5 8A02 MOV AL,[EDX]
0187:004010D7 3483 XOR AL,83
0187:004010D9 8802 MOV [EDX],AL
0187:004010DB 42 INC EDX
0187:004010DC E2F7 LOOP 004010D5
====>F7下去跳出LOOP
0187:004010DE BAFB3FBFFF MOV EDX,FFBF3FFB
0187:004010E3 F7D2 NOT EDX
0187:004010E5 2BC0 SUB EAX,EAX
====>EAX清0
0187:004010E7 52 PUSH EDX
0187:004010E8 64FF30 PUSH DWORD [FS:EAX]
0187:004010EB 89620A MOV [EDX+0A],ESP
0187:004010EE 648920 MOV [FS:EAX],ESP
====>建立SHE的基本ERR结构
0187:004010F1 E801000000 CALL 004010F7
====>F8进入!
0187:004010F7 83C404 ADD ESP,BYTE +04
0187:004010FA 8900 MOV [EAX],EAX
====>这时EAX=0,发生异常!异常代码:0C0000005H
====>F8跳到下面的地址!在OD中CONTEXT.EIP=0040C004
0187:0040C67A 83C404 ADD ESP,BYTE +04
0187:0040C67D 61 POPA
0187:0040C67E E801000000 CALL 0040C684
====>F8进入!
0187:0040C684 83C404 ADD ESP,BYTE +04
0187:0040C687 B8CC104000 MOV EAX,004010CC
====>EAX=004010CC 这就是OEP值 :-)
0187:0040C68C EB02 JMP SHORT 0040C690
0187:0040C690 50 PUSH EAX
0187:0040C691 EB02 JMP SHORT 0040C695
0187:0040C695 35D961B489 XOR EAX,89B461D9
0187:0040C69A E801000000 CALL 0040C6A0
====>F8进入!
0187:0040C6A0 83C404 ADD ESP,BYTE +04
0187:0040C6A3 3C40 CMP AL,40
0187:0040C6A5 EB02 JMP SHORT 0040C6A9
0187:0040C6A9 7F1A JG 0040C6C5 (NO JUMP)
0187:0040C6AB EB02 JMP SHORT 0040C6AF
0187:0040C6AF 3C90 CMP AL,90
0187:0040C6B1 7C0E JL 0040C6C1
0187:0040C6B3 58 POP EAX
====>EAX=004010CC
0187:0040C6B4 64030520000000 ADD EAX,[FS:20]
0187:0040C6BB EB02 JMP SHORT 0040C6BF
0187:0040C6BF FFE0 JMP EAX
====>飞向 光明之巅! :-)
———————————————————————
0187:004010CC 55 PUSH EBP
====>在这儿下PEDUMP 1.EXE 脱壳!
0187:004010CD 8BEC MOV EBP,ESP
0187:004010CF 83EC44 SUB ESP,BYTE +44
0187:004010D2 56 PUSH ESI
0187:004010D3 FF15E4634000 CALL NEAR [004063E4]
———————————————————————
重新运行,运行ImportREC,选择这个进程。OEP都不用改 :-) 点IT AutoSearch,
点“Get Import”,函数无效,右键点“追踪层次1”,OK,全部修复!
FixDump,正常运行!49K ->56K
—————————————————————————————————
, _/
/| _.-~/ _ , 青春都一饷
( /~ / ~-._ |
`\ _/ ~ ) 忍把浮名
_-~~~-.) )__/;;,. _ //'
/'_, --~ ~~~- ,;;___( (.-~~~-. 换了破解轻狂
`~ _( ,_..-- ( ,;'' / ~-- /._`
/~~//' /' `~ ) /--.._, )_ `~
" `~" " `" /~'` `\~~
" " "~' ""
Cracked By 巢水工作坊——fly [OCN][FCG]
2003-10-03 15:30
