-
-
[旧帖]
[求助]ACProtect 脱壳的问题,有点找不到方法
0.00雪花
-
发表于:
2008-7-18 18:05
3960
-
[旧帖] [求助]ACProtect 脱壳的问题,有点找不到方法
0.00雪花
这个壳是UltraProtect 1.x -> RISCO Software Inc.
搜索了论坛的许多帖子,看了看几位高手的方法。经过几次断点,来到这里:
0042B719 |. CD 01 INT 1 ; INT 1
0042B71B |. 40 INC EAX
0042B71C |. 40 INC EAX
0042B71D |. 0BC0 OR EAX, EAX
0042B71F |. 75 05 JNZ SHORT 0042B726
0042B721 |. 90 NOP
0042B722 |. 90 NOP
0042B723 |. 90 NOP
0042B724 |. 90 NOP
0042B725 |. 61 POPAD
0042B726 |> 33C0 XOR EAX, EAX
0042B728 |. 64:8F00 POP DWORD PTR FS:[EAX]
0042B72B |. 58 POP EAX
0042B72C |> 60 PUSHAD
0042B72D |. E8 00000000 CALL 0042B732
堆栈中提示:
0012FF20 0012FFC4 指向下一个 SEH 记录的指针
0012FF24 0042B6FD SE处理程序
打开内存窗口,在.text段设置断点,Shift+F9后来到:
00412C64 . 0100 ADD DWORD PTR [EAX], EAX ; 断在这里
00412C66 . 0000 ADD BYTE PTR [EAX], AL
00412C68 . 0100 ADD DWORD PTR [EAX], EAX
00412C6A . 0000 ADD BYTE PTR [EAX], AL
00412C6C . 0100 ADD DWORD PTR [EAX], EAX
00412C6E . 0000 ADD BYTE PTR [EAX], AL
00412C70 . 0100 ADD DWORD PTR [EAX], EAX
00412C72 . 0000 ADD BYTE PTR [EAX], AL
00412C74 . 0100 ADD DWORD PTR [EAX], EAX
00412C76 . 0000 ADD BYTE PTR [EAX], AL
00412C78 . 0100 ADD DWORD PTR [EAX], EAX
00412C7A . 0000 ADD BYTE PTR [EAX], AL
00412C7C . 0100 ADD DWORD PTR [EAX], EAX
00412C7E . 0000 ADD BYTE PTR [EAX], AL
00412C80 . 0100 ADD DWORD PTR [EAX], EAX
00412C82 . 0000 ADD BYTE PTR [EAX], AL
00412C84 . 0100 ADD DWORD PTR [EAX], EAX
00412C86 . 0000 ADD BYTE PTR [EAX], AL
00412C88 . 0100 ADD DWORD PTR [EAX], EAX
00412C8A . 0000 ADD BYTE PTR [EAX], AL
00412C8C . FF15 E4434100 CALL DWORD PTR [4143E4] ; msvcrt.__set_app_type
00412C92 . 59 POP ECX
00412C93 . 830D 18E84100>OR DWORD PTR [41E818], FFFFFFFF
00412C9A . 830D 1CE84100>OR DWORD PTR [41E81C], FFFFFFFF
00412CA1 . FF15 E0434100 CALL DWORD PTR [4143E0] ; msvcrt.__p__fmode
00412CA7 . 8B0D 98C14100 MOV ECX, DWORD PTR [41C198]
00412CAD . 8908 MOV DWORD PTR [EAX], ECX
00412CAF . FF15 DC434100 CALL DWORD PTR [4143DC] ; msvcrt.__p__commode
00412CB5 . 8B0D 94C14100 MOV ECX, DWORD PTR [41C194]
00412CBB . 8908 MOV DWORD PTR [EAX], ECX
00412CBD . A1 D8434100 MOV EAX, DWORD PTR [4143D8]
00412CC2 . 8B00 MOV EAX, DWORD PTR [EAX]
00412CC4 . A3 14E84100 MOV DWORD PTR [41E814], EAX
00412CC9 . E8 23010000 CALL 00412DF1
00412CCE . 391D 30BC4100 CMP DWORD PTR [41BC30], EBX
00412CD4 . 75 0C JNZ SHORT 00412CE2
00412CD6 . 68 EE2D4100 PUSH 00412DEE
00412CDB . FF15 D4434100 CALL DWORD PTR [4143D4] ; msvcrt.__setusermatherr
00412CE1 . 59 POP ECX
00412CE2 > E8 F5000000 CALL 00412DDC
00412CE7 . 68 20804100 PUSH 00418020
00412CEC . 68 1C804100 PUSH 0041801C
00412CF1 . E8 E0000000 CALL 00412DD6 ; JMP 到 msvcrt._initterm
00412CF6 . A1 90C14100 MOV EAX, DWORD PTR [41C190]
00412CFB . 8945 94 MOV DWORD PTR [EBP-6C], EAX
00412CFE . 8D45 94 LEA EAX, DWORD PTR [EBP-6C]
00412D01 . 50 PUSH EAX
00412D02 . FF35 8CC14100 PUSH DWORD PTR [41C18C]
00412D08 . 8D45 9C LEA EAX, DWORD PTR [EBP-64]
00412D0B . 50 PUSH EAX
00412D0C . 8D45 90 LEA EAX, DWORD PTR [EBP-70]
00412D0F . 50 PUSH EAX
00412D10 . 8D45 A0 LEA EAX, DWORD PTR [EBP-60]
00412D13 . 50 PUSH EAX
00412D14 . FF15 CC434100 CALL DWORD PTR [4143CC] ; msvcrt.__getmainargs
断电的地方是OEP吗?
00412C64 . 0100 ADD DWORD PTR [EAX], EAX ;
00412C66 . 0000 ADD BYTE PTR [EAX], AL
00412C68 . 0100 ADD DWORD PTR [EAX], EAX
00412C6A . 0000 ADD BYTE PTR [EAX], AL
00412C6C . 0100 ADD DWORD PTR [EAX], EAX
00412C6E . 0000 ADD BYTE PTR [EAX], AL
00412C70 . 0100 ADD DWORD PTR [EAX], EAX
00412C72 . 0000 ADD BYTE PTR [EAX], AL
00412C74 . 0100 ADD DWORD PTR [EAX], EAX
00412C76 . 0000 ADD BYTE PTR [EAX], AL
00412C78 . 0100 ADD DWORD PTR [EAX], EAX
00412C7A . 0000 ADD BYTE PTR [EAX], AL
00412C7C . 0100 ADD DWORD PTR [EAX], EAX
00412C7E . 0000 ADD BYTE PTR [EAX], AL
00412C80 . 0100 ADD DWORD PTR [EAX], EAX
00412C82 . 0000 ADD BYTE PTR [EAX], AL
00412C84 . 0100 ADD DWORD PTR [EAX], EAX
00412C86 . 0000 ADD BYTE PTR [EAX], AL
00412C88 . 0100 ADD DWORD PTR [EAX], EAX
00412C8A . 0000 ADD BYTE PTR [EAX], AL
那么这些什么东西?
我用ACProtect加记事本对比一下,也没有找到思路。希望大家帮帮忙。
[课程]FART 脱壳王!加量不加价!FART作者讲授!