X86逆向教程7:特殊窗体的破解思路

本章介绍两个无弹窗程序的爆破破解案例,学习了GetDlgItemTextA、GetWindowTextA两个新API函数使用技巧。分别阐述通过GetDlgItemTextA、GetWindowTextA、EnableWindow三种方式进行破解的具体步骤,如设置断点、修改指令等。

本章我们来看两个案例,这两个案例同样使用爆破的方式破解,但是与其他的程序不同,这个程序没有弹窗,提示成功或失败使用的是图片或是一个类似图片的窗体,本章将学习两个新的API函数的使用技巧。

------------------------------------------------------------
本章难度:★☆☆☆☆☆☆☆☆☆
课程课件:CM_07.zip
------------------------------------------------------------

 

通过GetDlgItemTextA破解

1.直接OD载入程序,来看一下这个弹窗,该弹窗并不是一个MessageBox。

 

2.我们直接下一个【GetDlgItemTextA】,点击【设置API断点】,选择字符串,然后下断点。

 

3.直接运行程序,然后输入假的注册码,点击注册,回到OD发现断下,直接【alt + F9】返回到用户模块,返回后如下图。

 

4.这一层,我们直接单步【F8】跟随,发现关键CALL与关键跳转了,上面的关键CALL就是验证CALL楼。

 

5.直接把JE指令改成NOP指令,运行程序,破解完成,保存文件即可。

 

通过GetWindowTextA破解

1.接着看第二个程序,直接OD载入并运行,输入假码点击登录,发现程序没有任何反映,只有我们输入真正的密码才会提示登录成功。

 

2.对待这种程序,我们可以直接下【GetWindowTextA】断点,下好断然后点击登录。

 

3.程序会被断下,说明我们断对了,接下来就是直接出CALL然后找关键跳转了。

 

4.经过不断的出CALL最后在第五层发现了关键跳转,我们直接把JE改成NOP然后保存文件即可破解。

 

通过EnableWindow破解

1.接着来看一下以下窗体,该窗体默认无法输入内容,无法点击登录按钮,且内部有时钟干扰我们。

 

2.重新载入程序,不要运行首先下【SetTimer】,然后在下一个【EnableWindow】断点,然后直接运行程序。

 

3.运行程序,第一次断下的是时钟,我们不要犹豫直接将其返回,让其失效,然后取消这个断点。

 

4.再次运行程序,程序会断下,此时我们看堆栈,Enable=FALSE 说明登录按钮变成了假。

 

5.我们选择Enable这一行然后按下,【Ctrl + E】将最后一位修改成1,运行程序即可。

 

6.运行后,窗体上的按钮会变为可点击状态,此时在爆破即可。

 

转载于:https://www.cnblogs.com/LyShark/p/11172220.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值