吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 8059|回复: 41

[原创逆向图文] 某Vb程序利用常量逆向并浅谈补码

   关闭 [复制链接]
头像被屏蔽
叶良辰和赵总 发表于 2016-8-27 13:20 | 显示全部楼层 |阅读模式

本帖最后由 叶良辰和赵总 于 2016-9-2 10:37 编辑

本教程由热情洋溢的木木不哭赞助播出(“哎呀我摔倒了要漂亮姐姐亲亲才能起来”)
游客,如果您要查看本帖隐藏内容请回复

方法二:那么我们就可以用常量PJ了,因为他都是赋值在一个地址。所以我们可以先看看他判断注册版哪里看下
[Visual Basic] 纯文本查看 复制代码
004C58CF   .  50            push eax
004C58D0   .  8B8D 60FEFFFF mov ecx,dword ptr ss:[ebp-0x1A0]
004C58D6   .  51            push ecx
004C58D7   .  FF15 8C104000 call dword ptr ds:[<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
004C58DD   .  8985 FCFDFFFF mov dword ptr ss:[ebp-0x204],eax
004C58E3   .  EB 0A         jmp short sdczit.004C58EF
004C58E5   >  C785 FCFDFFFF>mov dword ptr ss:[ebp-0x204],0x0
004C58EF   >  8D8D 10FFFFFF lea ecx,dword ptr ss:[ebp-0xF0]
004C58F5   .  FF15 4C134000 call dword ptr ds:[<&MSVBVM60.__vbaFreeO>;  MSVBVM60.__vbaFreeObj
004C58FB   .  C745 FC 07000>mov dword ptr ss:[ebp-0x4],0x7
004C5902   .  8B55 0C       mov edx,dword ptr ss:[ebp+0xC]
004C5905   .  0FBF02        movsx eax,word ptr ds:[edx]
004C5908   .  85C0          test eax,eax
004C590A   .  0F84 21040000 je sdczit.004C5D31
004C5910   .  0FBF0D C01052>movsx ecx,word ptr ds:[0x5210C0]
004C5917   .  85C9          test ecx,ecx
004C5919   .  0F85 12040000 jnz sdczit.004C5D31
004C591F   .  C745 FC 08000>mov dword ptr ss:[ebp-0x4],0x8
004C5926   .  BA DCC64100   mov edx,sdczit.0041C6DC                  ;  注册提醒
004C592B   .  8D8D 14FFFFFF lea ecx,dword ptr ss:[ebp-0xEC]
004C5931   .  FF15 6C124000 call dword ptr ds:[<&MSVBVM60.__vbaStrCo>;  MSVBVM60.__vbaStrCopy
004C5937   .  66:C785 68FEF>mov word ptr ss:[ebp-0x198],0x2
004C5940   .  68 60C64100   push sdczit.0041C660                     ;  你还没有注册,只能做第1套题!注册后可做全部试题,您现在要注册吗?
004C5945   .  68 DC354100   push sdczit.004135DC                     ; /\r\n
004C594A   .  FF15 78104000 call dword ptr ds:[<&MSVBVM60.__vbaStrCa>; \__vbaStrCat
004C5950   .  8BD0          mov edx,eax
004C5952   .  8D8D 1CFFFFFF lea ecx,dword ptr ss:[ebp-0xE4]
004C5958   .  FF15 0C134000 call dword ptr ds:[<&MSVBVM60.__vbaStrMo>;  MSVBVM60.__vbaStrMove
004C595E   .  50            push eax
004C595F   .  68 A8C64100   push sdczit.0041C6A8                     ; /点“是”进行注册,点“否”免费试用第一套题目。
004C5964   .  FF15 78104000 call dword ptr ds:[<&MSVBVM60.__vbaStrCa>; \__vbaStrCat
004C596A   .  8BD0          mov edx,eax
004C596C   .  8D8D 18FFFFFF lea ecx,dword ptr ss:[ebp-0xE8]
004C5972   .  FF15 0C134000 call dword ptr ds:[<&MSVBVM60.__vbaStrMo>;  MSVBVM60.__vbaStrMove
004C5978   .  8D95 14FFFFFF lea edx,dword ptr ss:[ebp-0xEC]
004C597E   .  52            push edx
004C597F   .  8D85 68FEFFFF lea eax,dword ptr ss:[ebp-0x198]
004C5985   .  50            push eax
004C5986   .  8D8D 18FFFFFF lea ecx,dword ptr ss:[ebp-0xE8]
004C598C   .  51            push ecx
004C598D   .  E8 CE29F7FF   call sdczit.00438360
004C5992   .  8D95 14FFFFFF lea edx,dword ptr ss:[ebp-0xEC]
004C5998   .  52            push edx
004C5999   .  8D85 18FFFFFF lea eax,dword ptr ss:[ebp-0xE8]
004C599F   .  50            push eax
004C59A0   .  8D8D 1CFFFFFF lea ecx,dword ptr ss:[ebp-0xE4]
004C59A6   .  51            push ecx
004C59A7   .  6A 03         push 0x3
004C59A9   .  FF15 80124000 call dword ptr ds:[<&MSVBVM60.__vbaFreeS>;  MSVBVM60.__vbaFreeStrList
004C59AF   .  83C4 10       add esp,0x10
004C59B2   .  C745 FC 09000>mov dword ptr ss:[ebp-0x4],0x9
004C59B9   .  66:833D D4115>cmp word ptr ds:[0x5211D4],0x1
004C59C1   .  0F85 5B030000 jnz sdczit.004C5D22
004C59C7   .  C745 FC 0A000>mov dword ptr ss:[ebp-0x4],0xA
004C59CE   .  8B55 08       mov edx,dword ptr ss:[ebp+0x8]
004C59D1   .  8B02          mov eax,dword ptr ds:[edx]
004C59D3   .  8B4D 08       mov ecx,dword ptr ss:[ebp+0x8]
004C59D6   .  51            push ecx
004C59D7   .  FF90 4C030000 call dword ptr ds:[eax+0x34C]
004C59DD   .  50            push eax
004C59DE   .  8D95 10FFFFFF lea edx,dword ptr ss:[ebp-0xF0]
004C59E4   .  52            push edx

那我们在这里下断004C85F2 . 66:833D C0105>cmp word ptr ds:[0x5210C0],0xFFFF 关键常量
(, 下载次数: 81)
断下后我们往下跟  我们发现他跳转了 很显然他跳过了已注册


我们看下关键跳转是那种跳转 是jnz跳转
Jnz其实就是 JNAE: jump not above and equal 低于,即不高于且不等于则转移


我们在看下关键跳上面的的cmp指令
[C] 纯文本查看 复制代码
004C85D1   .  51            push ecx
004C85D2   .  FF50 04       call dword ptr ds:[eax+0x4]
004C85D5   .  C745 FC 01000>mov dword ptr ss:[ebp-0x4],0x1
004C85DC   .  C745 FC 02000>mov dword ptr ss:[ebp-0x4],0x2
004C85E3   .  6A FF         push -0x1                                ; /OnErrEvent = Resume Next
004C85E5   .  FF15 E0104000 call dword ptr ds:[<&MSVBVM60.__vbaOnErr>; \__vbaOnError
004C85EB   .  C745 FC 03000>mov dword ptr ss:[ebp-0x4],0x3
004C85F2   .  66:833D C0105>cmp word ptr ds:[0x5210C0],0xFFFF [color=#666]关键常量[/color]
004C85FA   .  75 6A         jnz short sdczit.004C8666
004C85FC   .  C745 FC 04000>mov dword ptr ss:[ebp-0x4],0x4
004C8603   .  BA BC254100   mov edx,sdczit.004125BC                  ;  考试系统提示
004C8608   .  8D8D 68FFFFFF lea ecx,dword ptr ss:[ebp-0x98]
004C860E   .  FF15 6C124000 call dword ptr ds:[<&MSVBVM60.__vbaStrCo>;  MSVBVM60.__vbaStrCopy
004C8614   .  66:C785 94FEF>mov word ptr ss:[ebp-0x16C],0x3
004C861D   .  BA 88C74100   mov edx,sdczit.0041C788                  ;  已经是注册版本,无需再次注册!
004C8622   .  8D8D 6CFFFFFF lea ecx,dword ptr ss:[ebp-0x94]
004C8628   .  FF15 6C124000 call dword ptr ds:[<&MSVBVM60.__vbaStrCo>;  MSVBVM60.__vbaStrCopy
004C862E   .  8D95 68FFFFFF lea edx,dword ptr ss:[ebp-0x98]
004C8634   .  52            push edx
004C8635   .  8D85 94FEFFFF lea eax,dword ptr ss:[ebp-0x16C]
004C863B   .  50            push eax
004C863C   .  8D8D 6CFFFFFF lea ecx,dword ptr ss:[ebp-0x94]
004C8642   .  51            push ecx

ffff是16进制  转化为10进制就是-1
这条指令也就是说比较关键常量与-1的大小
而jnz这条指令的意思是低于,即不高于且不等于则转移
那么意思就很明显了  这个常量必须等于或者大于或者等于-1才不会跳转
我们就搜索0x5210C0这条指令。
或者这样搜索
(, 下载次数: 91)
我们搜到了很多  我们只进入mov  因为mov是赋值 我们必须在赋值上做工作。
(, 下载次数: 81)
我们把所有带有变量的mov改成FFFF  也就是-1  我们找到了这两个指令
[Visual Basic] 纯文本查看 复制代码
cmp word ptr ds:[0x5210C0],0xFFFF

我们改了试试
(, 下载次数: 90) (, 下载次数: 88)
最后 我来浅谈下补码!注意 是浅谈!浅谈
我们来搜索www   找到这一段代码
(, 下载次数: 100)
[Visual Basic] 纯文本查看 复制代码
00447903   .  66:C705 C0105>mov word ptr ds:[0x5210C0],0x0

0044B3AD   .  66:C705 C0105>mov word ptr ds:[0x5210C0],0x0

我整来了一个用过的正版码  注意 是用过的
然后下断  断下
(, 下载次数: 98)
然后往下跟   (, 下载次数: 86)
跟到他出现网址 然后我们访问下网站
(, 下载次数: 89)
注意 这里是error 53
然后我们继续往下跟
(, 下载次数: 95)
经过这个call的时候 出现了error 53
也就是说 他是判断error是多少来返回的 比如error 53就是已经用过了。
所以如果有正版号可以看他到这个call这里返回的数据是多少
只是小菜的想法 大神勿喷 我也没有正版号 因为正版号也不便宜
    写了足足1个小时   求加个精华吧   @Shark恒   不加精华我就自杀

评分

参与人数 37威望 +1 HB +91 THX +18 收起 理由
longge188 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
24567 + 1
Jawon + 2
一路走来不容易 + 2
消逝的过去 + 1
纯英文 + 1
禽大师 + 1
武清一点点 + 1
叶落花开 + 2
jaunic + 2
h112233h456 + 1
mengzhisuoliu1 + 1
lies + 1
海天一色001 + 1 + 1 [快捷评语] - 2017,让我们17学破解!
Satan + 1 评分=感恩!简单却充满爱!感谢您的作品!
18406732240 + 1 分享精神,是最值得尊敬的!
我是苍狼 + 1 + 1 分享精神,是最值得尊敬的!
病人吗233 + 1 分享精神,是最值得尊敬的!
zlyqwe456 + 1 吃水不忘打井人,给个评分懂感恩!
6丶7 + 1 分享精神,是最值得尊敬的!
cydzdiy + 5 + 1 吃水不忘打井人,给个评分懂感恩!
米其林轮胎 + 2 + 1 软件下载地址呢 我可是来看软件的{抠鼻}
老山 + 1 + 1 分享精神,是最值得尊敬的!
lingjin3 + 1 吃水不忘打井人,给个评分懂感恩!
小帅大大 + 1 悬赏杀手主题,额外增加10HB,感谢热心解答!
study01 + 1 + 1 分享精神,是最值得尊敬的!
wswwj + 2 + 1 吃水不忘打井人,给个评分懂感恩!
xpjqingche + 1 分享精神,是最值得尊敬的!
蓝色贝雷帽 + 3 + 1 分享精神,是最值得尊敬的!
xiaocao + 1 吃水不忘打井人,给个评分懂感恩!
858185616 + 1 分享精神,是最值得尊敬的!
81NewArk + 6 + 1 吃水不忘打井人,给个评分懂感恩!
Bu弃 + 5 + 1 吃水不忘打井人,给个评分懂感恩!
LYQingYe + 6 + 1 分享精神,是最值得尊敬的!
xuenii + 5 + 1 很高端~~
Shark恒 + 1 + 30 + 1 虽然没有完美解决问题,但确实很详细,相信可以帮到很多人!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
 楼主| 叶良辰和赵总 发表于 2016-8-27 13:27 | 显示全部楼层

本帖最后由 叶良辰和赵总 于 2016-8-27 06:34 编辑

@Shark恒 老大 我真的真的很详细写了@Shark恒
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2016-8-27 13:58 | 显示全部楼层

虽然没有完美解决问题,但确实很详细,相信可以帮到很多人!
另外有个疑问,如果教程中的判断版本是真的判断版本,而不是防逆向误导的话,通过修改版本号会不会达到反检测效果?是否尝试过?
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
 楼主| 叶良辰和赵总 发表于 2016-8-27 14:09 | 显示全部楼层

Shark恒 发表于 2016-8-27 06:58
虽然没有完美解决问题,但确实很详细,相信可以帮到很多人!
另外有个疑问,如果教程中的判断版本是真的判 ...

额 老大这样说我没试过 但是我发现如果后面一堆xxxxx-xxxxx-xxxxx-xxxxx-xxxxx改成别的格式error的返回值也会不一样 而我跟到call的话 也是返回网站的数据(返回的数据也不是error也不是53了)   所以我认为应该是error:xx的问题
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
LYQingYe 发表于 2016-8-27 14:54 | 显示全部楼层

mark下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
892644330 发表于 2016-8-27 15:09 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
a767421378 发表于 2016-8-27 15:24 | 显示全部楼层

膜拜大神 ,继续学习了~~~
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lxwen 发表于 2016-8-27 20:41 | 显示全部楼层

好东西,谢谢楼主!!!!!!!!!!!!!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
动物凶猛 发表于 2016-8-29 09:19 | 显示全部楼层

很喜欢这样的教程,谢谢了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
酒醒黄昏 发表于 2016-8-29 10:00 | 显示全部楼层

好好学习一下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表