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.运行后,窗体上的按钮会变为可点击状态,此时在爆破即可。
相关文章
- 短链接 url 压缩程序 Polr
- 驱动开发:DKOM 实现进程隐藏
- Nginx typecho Access denied
- 驱动开发:内核读取SSDT表基址
- 驱动开发:驱动与应用的简单通信
- 360 前端静态资源库
- 详解UDS CAN诊断:SecurityAccess Service(SID:0X27)
- WannaCry 勒索病毒
- MyBatis实现增删改查
- @EnableCaching如何一键开启缓存
- 驱动开发:恢复SSDT内核钩子
- 开局一张图,构建神奇的 CSS 效果
- 驱动开发:挂接SSDT内核钩子
- typecho 应对垃圾评论
- Windows 双宽带双网卡
- 驱动开发:WinDBG 配置内核双机调试
- typecho1.2 (18.10.23) 新窗口打开链接
- kafka单条消息过大导致线上OOM,运维连夜跑路了!
- Rime 小狼毫 五笔输入法自定义短语
- Spring Boot整合分布式搜索引擎ElasticSearch 实现相关基本操作