X86逆向7:特殊窗体的破解思路
本章我们来看两个案例,这两个案例同样使用爆破的方式破解,但是与其他的程序不同,这个程序没有弹窗,提示成功或失败使用的是图片或是一个类似图片的窗体,本章将学习两个新的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.运行后,窗体上的按钮会变为可点击状态,此时在爆破即可。
X86逆向7:特殊窗体的破解思路的更多相关文章
- X86逆向1:软件破解入门课【课件下载】
从本节课开始,我将带领小白入门学习软件破解的相关内容,大佬绕过,以后将会定期更新从最基本的破解知识点开始学习,由简单到复杂循序渐进,难度会逐步提高. 为了防止版权方面的争议,我将自行编写一些破解案例来 ...
- X86逆向5:破解程序的自效验
在软件的破解过程中,经常会遇到程序的自效验问题,什么是自效验?当文件大小发生变化,或者MD5特征变化的时候就会触发自效验暗装,有些暗装是直接退出,而有些则是格盘蓝屏等,所以在调试这样的程序的时候尽量在 ...
- JetBrains全家桶破解思路(最新更新:2019-04-17)
JetBrains全家桶破解思路(以DataGrip为例) 2019-04-17 add new key 2019-01-24 add new key and code 2018-12-24 add ...
- Android程序破解思路
Android程序的一般分析与破解流程 1.如何寻找突破口是分析一个程序的关键.错误提示信息左右一般是程序验证逻辑的核心代码. 2.错误提示是android程序的字符串资源,字符串有可能硬编码到源码中 ...
- Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)
Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...
- 人工智能计算器AI Calculator 3.3.0 具体破解思路&教程
人工智能计算器AI Calculator 3.3.0 具体破解思路&教程 [文章标题]:人工智能计算器AI Calculator 3.3.0 具体破解思路&教程 [文章作者]: Eri ...
- X86逆向3:通过修改关键CALL破解
软件逆向第一课中我们通过爆破的方式直接破解了程序的登录限制,但这一种方式很不合理,因为你只是破解了登录这一处的验证,如果程序内部还有其他的验证那么你需要再次爆破第二个验证,显然这种方式是很烦人的,如果 ...
- X86逆向9:通过关键常量破解
本章将讲解一下关于关键全局变量的一些内容,关键的全局变量对于软件的破解非常的有用,找到了关键全局变量并改写它同样可以完成完美爆破一个程序,这里我将使用CM小例子来讲解搜索关键变量的一些技巧,最后我们来 ...
- URL helper 逆向破解思路+详细过程 利用messagebox破解
先了解一下软件的运行: 打开后是这样的,要注册 随便输入假注册码,看他怎么响应: 会弹出一个信息窗(massageBox)提示注册失败.到这里就行了,关掉,然后用OD打开,按F9跑起来: 这里输入假码 ...
随机推荐
- QList和QVector等容器的区别
QList和QVector等容器的区别. 1.大多数情况下可以用QList.像prepend()和insert()这种操作,通常QList比QVector快的多.这是因为QList是基于index标签 ...
- Nginx在Linux安装详解及问题处理
Linux编译安装 1.nginx 依赖于prce库,要先安装pcre. #yum install prce pcre-devel 2.下载解压nginx #cd /usr/local/src/ #w ...
- 带你体验Android自定义圆形刻度罗盘 仪表盘 实现指针动态改变
带你体验Android自定义圆形刻度罗盘 仪表盘 实现指针动态改变 转 https://blog.csdn.net/qq_30993595/article/details/78915115 近期有 ...
- HttpClient提交数据
用代码模拟浏览器的行为 * 轻量级的开源的框架 * Android在6.0 23 以后移除了httpclient ,所以开发中用的少了 * 编写步骤: 1. 打开浏览器 2. 输入网址 3. 敲回车 ...
- mongodb操作二
{ "_id" : ObjectId("5d4d74e1685764420c4f9337"), "createTime" : ISODate ...
- DISCUZ论坛各大功能模块入口文件介绍
index.php 首页入口文件,这个文件相信大家都不陌生,小编就不具体介绍了. forum.php 论坛入口文件 portal.php 门户入口文件 group.php 群组入口文件 home.ph ...
- Linux学习—yum命令(转载)
yum简介 yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 基於RPM包管理,能够从指定的服务器自动 ...
- —Entity Framework实例详解
Entity Framework Code First的默认行为是使用一系列约定将POCO类映射到表.然而,有时候,不能也不想遵循这些约定,那就需要重写它们.重写默认约定有两种方式:Data Anno ...
- LCTF (easy-100)
先安装跑一下,不知道为啥我这里模拟器打不开,传到手机上就可以.如下图. 一个输入框,一个按钮,随便输入提示no. 放入JEB反编译. 可以看到有6个Class.大体看一遍,b和e应该和解题无关,在类a ...
- 计蒜客 —— 字符串p型编码
给定一个完全由数字字符('0','1','2',…,'9')构成的字符串 strstr,请写出 strstr 的 pp 型编码串. 例如:字符串122344111可被描述为“1个 1.2 个 2.1 ...