除了从敏感字符入手之外,我们可以从另外的方式入手
利用常用的windowsAPI函数来逆向
常用的API函数有六十多个,今天介绍GetWindowTextA
这里有若干种方法达到效果:
1、右击à查找à查找所有模块间的调用à直接输入Get。。能够直接定位到该函数à右击à在每个调用GetWindowTextA的地方设置断点à之后按alt+b可以查看所有的断点
2。Ctrl+n à直接输入GetWindowTextA可以定位到函数à右击à在每个参考上设置断点
开始载入od,当输入注册码时,看看是否断下(没有则更换函数---),例子中果断停下。。
查看到函数Get。。的参数(可以右击点符号名帮助,会打开帮助文档),
这里GetWindowTextA有三个参数,count是指字符最大个数11代表六进制(对应十进制的17)只能输入17个字符,buffer表示获得的字符串将被保存在的地址。
接下来就是要找关键的判断
当我们找到关键判断并进入关键call然后实现关键跳转之后,程序显示的是注册成功
然而很多程序即使显示注册成功却依然未能爆破,之后就要更深入的分析程序啦
(仅对于此程序而言)我们发现跟踪API已经没办法破解成功了,目前还是跟踪字符串
我们将提示我们注册未成功的字符串进行搜索,来到提示处下断,然后运行程序看一看,程序是在什么时候进行验证的(有可能在打补丁之前,有可能在打补丁之后??)并且观察是什么跳转导致这个事件的发生,紧接着就要找到关键跳转和关键判断,然后修改其中al的值来破解程序!
(通常程序都向eax返回0表示失败,而向eax返回1表示成功)
迷途知返啊 !!!!
小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)
GMT+8, 2024-4-24 13:50
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.