下载地址:http://down.tt86.com/down.asp?uid=dxawdxaw
软件查壳 yoda's Protector 1.3 -> Ashkbiz Danehkar 有多层壳。
脱壳后是vb写的 但是用 Bp rtcFileLen →断在一个模块并没返回程序领空就退出 Bp ExitProcess →这个退出进程API返回到vb的最后一个jmp
脱壳过程 :
OD载入目标程序 设置除了 内存访问外的所有异常
插件隐藏OD shift+f9
0012FFAC 0012FFE0 指针到下一个 SEH 记录
0012FFB0 0050990B SE 句柄 //看这个地方
0012FFB4 7C930738 ntdll.7C930738
0012FFB8 FFFFFFFF
0012FFBC 7FFD7000
0012FFC0 0012FFF0
0012FFC4 7C816FD7 返回到 kernel32.7C816FD7
0012FFC8 7C930738 ntdll.7C930738
看右下角SE句柄对应的地址 Ctrl+G 来到0050990B此地址
f2下断 然后 shift+f9 运行到下断地址
0050990B 55 push ebp //断在这里 单步f8向下走
0050990C 8BEC mov ebp,esp
0050990E 57 push edi
0050990F 36:8B45 10 mov eax,dword ptr ss:[ebp+10]
00509913 3E:8BB8 C400000>mov edi,dword ptr ds:[eax+C4]
0050991A 3E:FF37 push dword ptr ds:[edi]
0050991D 33FF xor edi,edi
0050991F 64:8F07 pop dword ptr fs:[edi]
00509922 3E:8380 C400000>add dword ptr ds:[eax+C4],8
0050992A 3E:8BB8 A400000>mov edi,dword ptr ds:[eax+A4]
00509931 C1C7 07 rol edi,7
00509934 3E:89B8 B800000>mov dword ptr ds:[eax+B8],edi //这个地方信息窗口提示
0050993B B8 00000000 mov eax,0
00509940 5F pop edi
00509941 C9 leave
00509942 C3 retn
单步f8走,注意看 信息窗口提示的内容 关键edi=00508017
edi=00508017 (QQ空间人.00508017)
堆栈 ds:[0012FD98]=00509982 (QQ空间人.00509982)
Ctrl+G 来到 00508017
00508017 90 nop ; 来到这里
00508018 90 nop
00508019 90 nop
0050801A 90 nop
0050801B 90 nop
0050801C B8 B85C5000 mov eax,QQ空间人.00505CB8
00508021 FFE0 jmp eax ; 这里下断 shift+f9运行一下
然后f8一次来到
00505CB8 B8 23805000 mov eax,QQ空间人.00508023
00505CBD FFE0 jmp eax //1
00505CBF 6E outs dx,byte ptr es:[edi]
00505CC0 79 79 jns short QQ空间人.00505D3B
00505CC2 ^ 79 F9 jns short QQ空间人.00505CBD
00505CC4 4D dec ebp
00505CC5 ^ 75 A2 jnz short QQ空间人.00505C69
00505CC7 9B wait
00505CC8 FA cli
00505CC9 94 xchg eax,esp
00505CCA 90 nop
00505CCB 90 nop
00505CCC 90 nop
00505CCD FFE0 jmp eax //2
我们在2处下断 也就是地址 00505CCD shift+f8 然后f8
00505CA1 B8 305B5000 mov eax,QQ空间人.00505B30 ; 来到这里
00505CA6 B9 71010000 mov ecx,171
00505CAB 803408 08 xor byte ptr ds:[eax+ecx],8
00505CAF ^ E2 FA loopd short QQ空间人.00505CAB
00505CB1 FFE0 jmp eax ; 然后在这里下断 shift+f9 f8走
00505B30 60 pushad ; 来到这里 用esp 会吧
00505B31 BE 00D04B00 mov esi,QQ空间人.004BD000
00505B36 8DBE 0040F4FF lea edi,dword ptr ds:[esi+FFF44000]
00505B3C 57 push edi
来到oep
0040127C 68 D8174000 push QQ空间人.004017D8 ; ASCII "VB5!6&vb6chs.dll"
00401281 E8 EEFFFFFF call QQ空间人.00401274 ; jmp 到
00401286 0000 add byte ptr ds:[eax],al
00401288 58 pop eax
00401289 0000 add byte ptr ds:[eax],al
0040128B 0030 add byte ptr ds:[eax],dh
0040128D 0000 add byte ptr ds:[eax],al
0040128F 0050 00 add byte ptr ds:[eax],dl
修复一下~~没有一个无效的~~安然....
自效验用BP rtcFileLen 和 ExitProcess 都和其它程序不一样。。。汗~~
小弟是真心求助 去除自效验的~~~ 也实在没办法。。。想学去自效验和脱壳 还请大大们指点一下 在此感谢拉!~~ 真的~~都困绕我很久拉!~ 我都要下跪求助了~ 希望这一次能有人理我一下~~
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课