吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7865|回复: 21
收起左侧

[原创] "半"字节破解eXeScope

  [复制链接]
无瑕黑心肠 发表于 2016-5-30 22:59
本帖最后由 无瑕黑心肠 于 2016-5-31 00:44 编辑

前言:
     闲来没事的翻翻以前破解的软件, 无意中看到了eXeScope, 心里回想初学破解的时候, 找爆破点找了很久, 而且还有重启验证机制的, 找了一下午才搞定注册的, 而且软件重启又得注册一次, 现在想想都觉得好笑.


进入正题:
     载入软件搜索字符串能够发现"两"处关键字:
     

PICTRUE

PICTRUE

     双击进去"已注册"的地方能找到关键的跳转:
     

PICTRUE

PICTRUE

     je 改 jnz 或 nop 都能实现"已注册"的效果, 但是软件存在重启验证机制, 这样做, 每次打开软件都得注册一次(除非你不觉得麻烦)
     
     如果双击"无效的 ID 或名字"进去会发现一个上面跳下来的跳转:
     

PICTRUE

PICTRUE

     

PICTRUE

PICTRUE

     je 改 jnz 或 nop 就能实现输入"任何字符"都被成功注册, 如果心细的朋友肯定会发现第二张图比较的部分有这么两句指令:
     mov eax,dword ptr ds:[0x4CFC5C]
     cmp byte ptr ds:[eax],0x0
     其中的[0x4CFC5C]就是软件的"已注册"标志, 如果再心细一点就会发现"无效的 ID 或名字"上面几行会有这个两句代码:
     

PICTRUE

PICTRUE

     没错, 就是"已注册"的赋值点, 但是这个点在"注册窗口"里面是点击了"确定"并且 je 改成 jnz 它才会走到这一步的, 重点来了:
          如何找到程序启动时的第一个赋值点?
     我的思路是这样的:
          1.右键该"mov eax,dword ptr ds:[0x4CFC5C]"代码, 查找参考 -> 地址常量, 然而结果是找不到的, 如果朋友再心细一点会发现这两句指令有问题, 请看:
     
     mov eax,dword ptr ds:[0x4CFC5C]     // 将地址"[0x4CFC5C]"里面的值(注意是里面, 而不是这个地址)赋值给eax
     cmp byte ptr ds:[eax],0x0           // 将"[eax]"里面的值(注意是里面, 而不是这个地址)取出来于0进行比较
     有没有发现这样做很多余? 地址里面的值取出来再取出这个里面的值去比较(好绕...), 明显多余(其实这个是我调试蛮久查来的), 里面值储存的地址是固定的, 所谓"[0x4CFC5C]"的值也就是"4CFB08".
     知道这些"有力"条件后直接右键 -> 查找 -> 所有常量, 我们就能看到程序启动的赋值点:
     

PICTRUE

PICTRUE

     mov byte ptr ds:[0x4CFB08],al     // 将EAX的低四位赋值给"[0x4CFB08]"
     双击进去我们可以看到上面是一个关键CALL, 没错, 这个就是算法CALL, 想追注册码的可以到这里面:
     

PICTRUE

PICTRUE

     进入里面经过我的仔细琢磨发现只要将下面这一句:
     

PICTRUE

PICTRUE

     代码 004CBF9A      33DB          xor ebx,ebx
     改成 004CBF9A      03DB          add ebx,ebx
     程序就被完美爆破了(真的只要"半"字节哟). 想知道具体原因的朋友可以在这里下断, 然后跟下去, 就能发现最后 ebx 赋值给 eax , eax 的 al 赋值给"[0x4CFB08]", 爆破到此 OVER.


总结:
     这期教会我们多留点心眼就能发现程序深藏的细节, 注重细节成就自我. 哪怕是破解复杂的软件也如此, 寄存器、堆栈、数据、调用堆栈等等..., 每天都在进步, 每天都在努力向前, 吾友你们呢?
     好了, 帖子到此就告一段落了, 感谢吾友耐心观看到此, 也感谢你们的的热心. 也祝你(妳)们在破解的道路上不断向前, 突破自我!

点评

说得太对了,点赞啊,当年真的好傻的本上汇编地址记了一本,现在三分钟搞定那类的  发表于 2017-1-10 11:33

免费评分

参与人数 14威望 +1 吾爱币 +4 热心值 +13 收起 理由
冥界3大法王 + 3 学到了,不错。
jinxiaoyun + 1 + 1 用心讨论,共获提升!
Sound + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yeyulang + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ykbest + 1 精彩教程,值得学习,谢谢分享
朱朱你堕落了 + 1 我很赞同!
NanQiao + 1 用心讨论,共获提升!
青霄 + 1 学习了,很有用
abc302001 + 1 我很赞同!
haoke138 + 1 我很赞同!
哆米诺 + 1 这样的文章,装逼跟教学两不误╮(╯▽╰)╭
爆爆 + 1 半字节能显得你很牛逼不
kuwo911 + 1 很细
Kingsman_K + 1 已答复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

冥界3大法王 发表于 2017-1-10 11:58
004CBF9A  |.  33DB          XOR     EBX,EBX
004CBF9C  |.  8B45 FC       MOV     EAX,[LOCAL.1]
004CBF9F  |.  E8 AC8CF3FF   CALL    eXeScope.00404C50
004CBFA4  |.  83F8 0A       CMP     EAX,0xA
004CBFA7  |.  75 5C         JNZ     SHORT eXeScope.004CC005
004CBFA9  |.  8B55 FC       MOV     EDX,[LOCAL.1]
004CBFAC  |.  B8 30C04C00   MOV     EAX,eXeScope.004CC030            ;  A1910
004CBFB1  |.  E8 DE8FF3FF   CALL    eXeScope.00404F94
004CBFB6  |.  48            DEC     EAX
004CBFB7  |.  74 10         JE      SHORT eXeScope.004CBFC9
004CBFB9  |.  8B55 FC       MOV     EDX,[LOCAL.1]
004CBFBC  |.  B8 40C04C00   MOV     EAX,eXeScope.004CC040            ;  A1423   注册码


或修改成 004CBF9A      08C0          OR      AL,AL

头像被屏蔽
红客鄙哥 发表于 2016-5-30 23:07
xiaorui 发表于 2016-5-30 23:14
kuwo911 发表于 2016-5-30 23:51
讲解很细,非常赞!
yangqyloki 发表于 2016-5-31 00:02
很强大,受教了~!
梦虫 发表于 2016-5-31 00:14
学习学习。。
我非良人 发表于 2016-5-31 00:27
学习一下,感谢楼主的教学
hxg1189 发表于 2016-5-31 06:49
佩服佩服!
hu007 发表于 2016-5-31 07:57
谢谢分享,学习了
梦入神机 发表于 2016-5-31 08:11
谢谢楼主教学,小白还是没看懂
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 06:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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