适合新手学习的eXeScope算法分析(附注册机)
**软件介绍:**eXeScope能在没有资源文件的情况下分析,显示不同的信息,重写可执行文件的资源,包括(EXE,DLL,OCX,VBX)等。是方便强大的汉化工具,可以直接修改用 VC++ 及 DELPHI编制的程序的资源,包括菜单、对话框、字串表等。
**破解开始:**
工具:
OD、ExeInfo
在已经使用一次软件过后,软件已经不能使用,需要注册后才能使用
打开注册窗口,随意输入名字和ID,会弹出注册失败的消息框
首先利用Exeinfo查看信息
可以看到是Borland 的Delphi程序,并没有加壳。不多废话,直接拖入OD,尝试最简单的方法,搜索字符串“无效的ID或名字”。
找到字符串,通过字符串向上看,尝试找到关键跳转和关键call
为了验证关键跳转是否正确,将JE改为JNE,让跳转不实现
改完跳转,并没有错误弹框,点击注册发现已经注册成功,但是这种暴力破解没有太大技术含量,这次选择分析出软件的算法并写出注册机。
在关键call下断点,重新运行OD,点击注册,填入信息,点击确定,会停到关键call的断点上,经过分析,注册码和用户名没有关系,只是单纯的ID的一些简单算法。
图上代码经过分析,已经可以确定ID有十位和前五位的具体数值,在往下继续看
将上图代码拿出来解析:
```
004CBFE5 8B45 FC MOV EAX,DWORD PTR SS:
004CBFE8 0FB640 08 MOVZX EAX,BYTE PTR DS:;将ID第9位赋给EAX
004CBFEC 8B55 FC MOV EDX,DWORD PTR SS:
004CBFEF 0FB652 09 MOVZX EDX,BYTE PTR DS:;将ID第9位赋给EDX
004CBFF3 03C2 ADD EAX,EDX ;EAX = EAX + EDX
004CBFF5 B9 0A000000 MOV ECX,0xA ;ECX = 0xA
004CBFFA 33D2 XOR EDX,EDX ;EDX = 0
004CBFFC F7F1 DIV ECX ;EDX = EAX % ECX
004CBFFE 83FA 04 CMP EDX,0x4
004CC001 75 02 JNZ SHORT eXeScope.004CC005
004CC003 B3 01 MOV BL,0x1 ;标志位
004CC005 33C0 XOR EAX,EAX
```
当EDX = 0x4时,将BL变为1
在回到前面的关键call附近看一下
可以看到,当AL = 0x1时,跳转不成立,也就是说注册码正确
由前面的分析也可以看出,后半部分只对id的第9位和第10位进行了验证,6、7、8位只要在0到9之间即可
第9位和第十位的操作也很简单,例如:
第9位等于7,第10位等于1
他们的ASCII码分别是0x37和0x31
EAX = 0x37
EDX = 0x31
EAX = EAX + EDX = 0x68
ECX = 0xA
EDX = 0
当EDX = EAX % ECX= 0x68 % 0xA = 0x4即成立
写出注册机,测试:
利用注册码可以看到已经注册成功。 约定的童话 发表于 2019-1-6 16:09
现在还能下载到正版的吗?网上一搜全是盗版的啊
附件中就是啊 现在还能下载到正版的吗?网上一搜全是盗版的啊 请问注册机怎么用?
向楼主学习!向楼主致敬! 下载学习一下这个算法 谢谢分享,不错不错 谢谢分享! 不觉明历,但感谢楼主的分享! 感谢了,这个不错