载入被加FSG 2.0的程序停在了
00400154 > 8725 94334100 xchg dword ptr [413394], esp
//停在这里
0040015A 61 popad
0040015B 94 xchg eax, esp
//单步到这里后看堆栈提示
0040015C 55 push ebp
0040015D A4 movs byte ptr es:[edi], byte ptr [esi>
堆栈提示:
00413398 004001E8 fsg.004001E8
0041339C 004001DC fsg.004001DC
004133A0 004001DE fsg.004001DE
004133A4 00401000 fsg.00401000
//听说所有FSG壳的OEP都是这里00401000
004133A8 > 77E668FB KERNEL32.LoadLibraryA
004133AC > 77E661CD KERNEL32.GetProcAddress
然后右击:004133A4 00401000 fsg.00401000
数据窗口中跟随==>>下硬件执行断点==>>运行:
到了
00401000 2B db 2B ; CHAR '+'
00401001 DB db DB
00401002 B8 db B8
00401003 4C db 4C ; CHAR 'L'
00401004 A0 db A0
00401005 40 db 40 ; CHAR '@'
00401006 00 db 00
这里
右击分析代码就到了
00401000 . 2BDB sub ebx, ebx
//按理说这里就是OEP了,可是Dump出来后程序不能运行,PEID查壳也什么都没有,是不是哪里错了?
00401002 . B8 4CA04000 mov eax, fsg.0040A04C
00401007 . C700 08000000 mov dword ptr ds:[eax], 8
0040100D . C740 04 FF000>mov dword ptr ds:[eax+4], 0FF
00401014 . 50 push eax ; /pInitEx => fsg.0040A04C
00401015 . E8 DC620000 call fsg.004072F6 ; \InitCommonControlsEx
0040101A . 68 41A64000 push fsg.0040A641
0040101F . E8 D3020000 call fsg.004012F7
00401024 . 53 push ebx ; /pModule
00401025 . E8 36620000 call fsg.00407260 ; \GetModuleHandleA
0040102A . A3 45AE4000 mov dword ptr ds:[40AE45], eax
0040102F . BF 43AA4000 mov edi, fsg.0040AA43
00401034 . 68 01020000 push 201 ; /BufSize = 201 (513.)
00401039 . 57 push edi ; |PathBuffer => fsg.0040AA43
0040103A . 50 push eax ; |hModule
0040103B . E8 1A620000 call fsg.0040725A ; \GetModuleFileNameA
还有个98记事本,也是加了这个壳,OD载入后不能单步,
00400154 > 8725 EC444100 xchg dword ptr [4144EC], esp //停这里
0040015A 61 popad
一单步就终止了! 怎么回事
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课