首页
社区
课程
招聘
[旧帖] [分享]一个录相软件的追码和爆破过程 0.00雪花
发表于: 2011-6-10 08:07 1328

[旧帖] [分享]一个录相软件的追码和爆破过程 0.00雪花

2011-6-10 08:07
1328
软件下载 地址 http://www.mynsw.net/NSWREC16.rar
这个程序注册后还是一直弹他的网站,这里我就不去掉他了,我又没打算用这个工具
程序查壳是 ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov 这个壳网上有教程,这里我就不多说了
脱壳后载入OD到  
00499AA4 > $  55            push ebp
00499AA5   .  8BEC          mov ebp,esp
00499AA7   .  83C4 F0       add esp,-0x10
00499AAA   .  53            push ebx
00499AAB   .  B8 7C974900   mov eax,de_NSWSe.0049977C
00499AB0   .  E8 9FD1F6FF   call de_NSWSe.00406C54
00499AB5   .  8B1D 74BF4900 mov ebx,dword ptr ds:[0x49BF74]          ;  de_NSWSe.0049DC8C
00499ABB   .  8B03          mov eax,dword ptr ds:[ebx]
00499ABD   .  E8 C2AAFCFF   call de_NSWSe.00464584
00499AC2   .  8B03          mov eax,dword ptr ds:[ebx]

明显的 Borland Delphi 6.0 - 7.0 程序我们可以查看字符
分析一下,查看字符,什么???什么也没有查到,别吓我,我可以菜虫,连鸟都不算上, 我只有喂鸟的份
运行程序看看,提示重启
那就先看看程序的机器码和注册码保存到什么地方了吧
载入OD运行,输入假码,提示的时候暂停,点K 最下面的一个,然后下断,向下跟
00497737  |.  E8 C4D3FAFF   call de_NSWSe.00444B00    这个可以跳过
0049773C  |.  837D FC 00    cmp [local.1],0x0   不懂汇编,说错了使劲砸我吧 ,这里应该是注册码为0的话就跳走吧
00497740  |.  74 38         je Xde_NSWSe.0049777A
00497742  |.  8D55 F8       lea edx,[local.2]
00497745  |.  A1 A0ED4900   mov eax,dword ptr ds:[0x49EDA0]
0049774A  |.  8B80 FC020000 mov eax,dword ptr ds:[eax+0x2FC]
00497750  |.  E8 ABD3FAFF   call de_NSWSe.00444B00
00497755  |.  8B55 F8       mov edx,[local.2]
00497758  |.  A1 B0BD4900   mov eax,dword ptr ds:[0x49BDB0]
0049775D  |.  8B00          mov eax,dword ptr ds:[eax]
0049775F  |.  E8 38FEFFFF   call de_NSWSe.0049759C
00497764  |.  B8 A8774900   mov eax,de_NSWSe.004977A8
00497769  |.  E8 5E6EFAFF   call de_NSWSe.0043E5CC    这就是提示的那重启的CALL
0049776E  |.  A1 94C04900   mov eax,dword ptr ds:[0x49C094]
00497773  |.  8B00          mov eax,dword ptr ds:[eax]

重新载入程序
在00497737  |.  E8 C4D3FAFF   call de_NSWSe.00444B00  下断 ,在下面可以看到有个RegmyNSW 的文件,我打开后发现是放注册码和机器码的。找到就好

用插件查不到字符,哎,要不就得费事下文件读取断点。我这里就不弄那么麻烦了。我用OD的自带的功能,查看所有参考文件字串 ,发现有两处RegmyNSW 所以在两个地方都下断,重新载入运行

00489976   .  B9 E09C4800   mov ecx,de_NSWSe.00489CE0                ;  ASCII "RegmyNSW.cn"

00497619   .  B9 08774900   mov ecx,de_NSWSe.00497708                ;  ASCII "RegmyNSW.cn"

下好断后运行,发现断在
00489976   .  B9 E09C4800   mov ecx,de_NSWSe.00489CE0                ;  ASCII "RegmyNSW.cn"
0048997B   .  E8 50B1F7FF   call de_NSWSe.00404AD0
00489980   .  8B45 F0       mov eax,dword ptr ss:[ebp-0x10]
00489983   .  E8 E0F7F7FF   call de_NSWSe.00409168
00489988   .  84C0          test al,al
0048998A   .  0F84 0A030000 je de_NSWSe.00489C9A
00489990   .  33C0          xor eax,eax
00489992   .  55            push ebp
00489993   .  68 029A4800   push de_NSWSe.00489A02
00489998   .  64:FF30       push dword ptr fs:[eax]
0048999B   .  64:8920       mov dword ptr fs:[eax],esp
0048999E   .  8B55 F0       mov edx,dword ptr ss:[ebp-0x10]
004899A1   .  8D85 20FEFFFF lea eax,dword ptr ss:[ebp-0x1E0]
004899A7   .  E8 F494F7FF   call de_NSWSe.00402EA0
004899AC   .  8D85 20FEFFFF lea eax,dword ptr ss:[ebp-0x1E0]
004899B2   .  E8 7992F7FF   call de_NSWSe.00402C30
004899B7   .  E8 948FF7FF   call de_NSWSe.00402950
004899BC   .  8D55 F4       lea edx,dword ptr ss:[ebp-0xC]
004899BF   .  8D85 20FEFFFF lea eax,dword ptr ss:[ebp-0x1E0]
004899C5   .  E8 C298F7FF   call de_NSWSe.0040328C
004899CA   .  8D85 20FEFFFF lea eax,dword ptr ss:[ebp-0x1E0]
004899D0   .  E8 2399F7FF   call de_NSWSe.004032F8
004899D5   .  E8 768FF7FF   call de_NSWSe.00402950
004899DA   .  8D55 EC       lea edx,dword ptr ss:[ebp-0x14]
004899DD   .  8D85 20FEFFFF lea eax,dword ptr ss:[ebp-0x1E0]
004899E3   .  E8 A498F7FF   call de_NSWSe.0040328C
004899E8   .  8D85 20FEFFFF lea eax,dword ptr ss:[ebp-0x1E0]
004899EE   .  E8 0599F7FF   call de_NSWSe.004032F8
004899F3   .  E8 588FF7FF   call de_NSWSe.00402950
004899F8   .  33C0          xor eax,eax
004899FA   .  5A            pop edx
004899FB   .  59            pop ecx
004899FC   .  59            pop ecx
004899FD   .  64:8910       mov dword ptr fs:[eax],edx
00489A00   .  EB 24         jmp Xde_NSWSe.00489A26
00489A02   .^ E9 1DA5F7FF   jmp de_NSWSe.00403F24
00489A07   .  8D85 20FEFFFF lea eax,dword ptr ss:[ebp-0x1E0]
00489A0D   .  E8 5695F7FF   call de_NSWSe.00402F68
00489A12   .  E8 398FF7FF   call de_NSWSe.00402950
00489A17   .  E8 70A8F7FF   call de_NSWSe.0040428C
00489A1C   .  E9 79020000   jmp de_NSWSe.00489C9A
00489A21   .  E8 66A8F7FF   call de_NSWSe.0040428C
00489A26   >  8D85 20FEFFFF lea eax,dword ptr ss:[ebp-0x1E0]
00489A2C   .  E8 3795F7FF   call de_NSWSe.00402F68
00489A31   .  E8 1A8FF7FF   call de_NSWSe.00402950
00489A36   .  8D45 F4       lea eax,dword ptr ss:[ebp-0xC]
00489A39   .  50            push eax
00489A3A   .  8B45 FC       mov eax,dword ptr ss:[ebp-0x4]
00489A3D   .  8B00          mov eax,dword ptr ds:[eax]
00489A3F   .  B9 0F000000   mov ecx,0xF
00489A44   .  BA 01000000   mov edx,0x1
00489A49   .  E8 8EB2F7FF   call de_NSWSe.00404CDC
00489A4E   .  33DB          xor ebx,ebx
00489A50   .  8B45 F4       mov eax,dword ptr ss:[ebp-0xC]
00489A53   .  E8 2CB0F7FF   call de_NSWSe.00404A84
00489A58   .  85C0          test eax,eax
00489A5A   .  7E 13         jle Xde_NSWSe.00489A6F
00489A5C   .  BA 01000000   mov edx,0x1
00489A61   >  8B4D F4       mov ecx,dword ptr ss:[ebp-0xC]
00489A64   .  0FB64C11 FF   movzx ecx,byte ptr ds:[ecx+edx-0x1]
00489A69   .  03D9          add ebx,ecx
00489A6B   .  42            inc edx
00489A6C   .  48            dec eax
00489A6D   .^ 75 F2         jnz Xde_NSWSe.00489A61
00489A6F   >  69C3 B5000000 imul eax,ebx,0xB5
00489A75   .  05 B6120C00   add eax,0xC12B6
00489A7A   .  8BD8          mov ebx,eax
00489A7C   .  8D55 F0       lea edx,dword ptr ss:[ebp-0x10]
00489A7F   .  8BC3          mov eax,ebx
00489A81   .  E8 72F2F7FF   call de_NSWSe.00408CF8
00489A86   .  8D45 F4       lea eax,dword ptr ss:[ebp-0xC]
00489A89   .  8B55 F0       mov edx,dword ptr ss:[ebp-0x10]
00489A8C   .  E8 D3ADF7FF   call de_NSWSe.00404864
00489A91   .  8D45 F0       lea eax,dword ptr ss:[ebp-0x10]
00489A94   .  8B55 EC       mov edx,dword ptr ss:[ebp-0x14]
00489A97   .  E8 C8ADF7FF   call de_NSWSe.00404864
00489A9C   .  8B45 F4       mov eax,dword ptr ss:[ebp-0xC]
00489A9F   .  8B55 F0       mov edx,dword ptr ss:[ebp-0x10]
00489AA2   .  E8 21B1F7FF   call de_NSWSe.00404BC8   此处为关键CALL  这里假码和真假比较,可以在这里做内存注册机
00489AA7   .  75 09         jnz Xde_NSWSe.00489AB2   这里为关键跳,爆破点在这里,NOP 掉就成注册版的啦
00489AA9   .  C645 FB 01    mov byte ptr ss:[ebp-0x5],0x1
00489AAD   .  E9 E8010000   jmp de_NSWSe.00489C9A
00489AB2   >  8D45 F4       lea eax,dword ptr ss:[ebp-0xC]
00489AB5   .  50            push eax

让大家见笑了

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
基础文章,可一看,楼主继续努力
2011-6-10 11:19
0
游客
登录 | 注册 方可回帖
返回
//