type
status
date
slug
summary
tags
category
icon
password
网上冲浪发现该软件,仅供学习交流!!软件逆向思路

还是老样子,先进行查壳

没有保护壳(摩拳擦掌)
先正常打开,看看有没有什么可以利用的特征,比如信息框或者标签等,方便入手

有信息框,那我们可以从这儿入手
载入xdbg

F9运行,让他跑起来
然后ctrl+g输入
在该位置的返回处下条件断点(F2)

然后我们在密码位置输入一堆111方便后续观察
点击登录,弹出信息框,点击确认,我们发现xdbg断在了我们刚刚下断点的位置

我们在右下角堆栈找到提示内容,并单机后回车,让cpu窗口跳转到对应位置


我们发现在上面有个je跳转,会跳过该段代码,我们随即在je位置双击下断点

我们发现该软件出现CDK提示后,登录按钮没办法再次点击
所以我们在je位置留下断点和提示方便重新载入后可以很快的定位到
我们从新载入一次

再次F9运行并输入一堆111,点击登录
直接断在我们之前下断点的位置并提示跳转不会执行,我们直接在该位置空格,然后将je代码改为jmp,让他强制跳转


然后右键补丁,修补文件,省的每回都要在此修改


然后我们载入刚刚生成的文件(跳过CDK.exe)
同样ctrl+g在信息框函数处下断点


再次F9运行并输入假码

我们同样在右下角堆栈处找到提示内容,然后点击下方第一个返回并回车跳转到cpu处

我们发现是该call调用的,我们在该位置双击下断点并且再次运行

会在该位置断下,断下后我们F7进入该call进行查看,然后F8进行一步一步的查看

最终会发现该位置正好对应我们的提示框,上面的跳转并没有跳过,我们同样将该代码修改为jmp,让他强制跳转

继续F8一步步查看,在该位置同样发现登陆错误

我们双击jb跳转会发现他直接就会跳转到登录失败,那我们就不让他跳转
我们直接右键---二进制---nop填充

如果我们发现只要一动鼠标滚轮,代码就会发生变化的情况下,我们就在当前位置右键,在内存窗口中转到----选定的地址


并将该位置的十六进制数据记录下来

然后滚动鼠标滚轮

等他变化后在变化后的第一行位置右键,在内存窗口中转到----选定的地址

右键二进制----


将当前代码改为909090即可解决
我们发现如果一直跳转到最后才行进行该报错,那么他应该是先进行判断密码是否正确,如果不正确再进行逐一判断,那我们就直接往上面找
果不其然发现了有一个大跳转,我们在该位置下断点,然后再次运行程序看看会不会断下

果不其然在该位置断下了,并且即将跳转,那我们将该位置直接nop掉,再逐步运行

发现他开始写入配置文件了,那我们直接补丁该文件,然后直接打开补丁后的文件

还是随便输入假码并登录

提示不一样了!

看来是破解成功了
那我们使用同样的方法将该信息框给他nop掉,看看能不能进入界面

登录成功!
- 作者:brown
- 链接:https://bbrownn.dpdns.org//article/0820-16-01
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。







