1、申 请 I D:葫芦娃很厉害
2、个人邮箱:
3、原创技术文章:某算命软件爆破+算法研究+注册机(原创证明:软件&注册机标题为“吾爱破解申请专用”)
申请人情况自述
安全从业者多年(白帽渗透,代码审计),几年前玩过逆向,目前越来越多涉及逆向病毒分析葫芦娃,重新拾起来逆向,想来吾爱破解学习交流
正题
一.脱壳脱壳前
脱壳
二.观察程序逻辑和特点标题:机器码已经修改了“吾爱破解申请专用”
使用时会提示
输入伪码“”,注册错误弹框
三.定位关键跳尝试爆破1.常规方式爆破输入验证码流程弹窗内容入手,搜索关键字定位到弹窗函数,并做标签,关键跳nop掉或者jnz改jz测试爆破效果,发现确实弹框说注册完成!
2.发现问题,深入推测程序验证逻辑流程但是,重启程序后发现依旧出现未注册一样的机器码标题,同时再使用过程中还是提示未注册弹框,并且确实程序功能受限!同时还发现,程序目录下的reg.txt被写入了内容,注册码为刚才强行爆破的伪码“”!由此思考如下带着以上推测和思考继续,我们从关键跳【】处往上浏览,找到此块入口,下断点,F8步过粗略分析反汇编代码,并在过程中留意寄存器、堆栈、内存数据窗口的变化,发现关键跳处基本代码功能如下
既然我们推测【】这是个计算函数的入口,那么我们就搜索一下,整个程序有多少地方调用了【】这个函数,查找——所有命令,输入call ,如图
结果搜到4个位置,依次跟过去浏览后发现,结构跟这里几乎如出一辙,皆是上上图推测的:计算函数1——赋值给ebp——计算函数2——结果乘以37给edx——然后cmp ebp,edx——最后关键跳。
随后我们通过下断点,依次分析这四个搜索结果(排除我们输入注册码的地方,其实只有三个),依次做好注释,如下图,功能,爆破节点一目了然
依次在四个关键跳处爆破,就可以完成完美爆破
爆破结果可见上传的内容(爆破&修改题目.exe)截至到此实际已经完全不受限了,接下来我们搞算法和注册机
三、研究算法1.验证做实程序注册验证流程
F8边步过边精读从块入口到关键跳的所有反汇编代码,注意观察寄存器、堆栈、内存的变化,注意敏感信息的获取,及时把可能是函数返回值的数值翻译10进制、8进制并和已知信息例如机器码,输入的伪码""发散性找关联,做好函数标签和注释,结果如下确定了取输入伪码的函数
做好函数标签
2.研究机器码hash函数我们已知机器码是,我们F7步入“hash机器码函数”,即【call 】,发现如下图
可以发现,【call 】执行完毕后,eax中值转化为十进制就是机器码去掉1037后的部分,这就简单了,本来作者头疼还真是例如硬件码hash的取值过程,一定很变态……,好在我们这里不用纠结那个了,这样以来我们掌握的机器码就可以跟计算函数最终结果直接挂上可以掌控的关系,这就好解决了,这里讨个巧,既然是c++写的,我们直接上IDA翻译伪源码,来解决到最终值的计算过程,方法如下(新手不建议这样,还是建议逐行研究反汇编代码)IDA直接跳转函数入口,得到流程图模式的反汇编代码
F5翻译伪源码
3.研究输入注册码的hash函数(精读算法)此部分我们就不用IDA讨巧了,一行一行反汇编代码读"密码本"初始化,一共99个
密码本在堆栈内存中赋值过程动图,录了好多遍才弄好,看着有点牛逼
核心算法反汇编代码精读注释
翻译成C语言
四.注册机既然可以通过机器码明文计算出程序内需要最终对比的目标hash值,又知道了输入的注册码如何hash出对比值的算法,那么穷举注册码就可以了,但是通过注册码的核心算法hash过程,可以减少穷举范围,这个就是人类思维的强大之处,核心代码如下
注册机效果如下
链接: 提取码: juuj
未经允许不得转载! 作者:admin,转载或复制请以超链接形式并注明出处天心神途传奇手游发布网。
原文地址:《申请会员ID:葫芦娃很厉害【申请通过】》发布于:2024-04-05





还没有评论,来说两句吧...