OD 实验(十五) - 对一个程序的逆向
2024-09-21 18:13:51
程序:
打开程序
出现一个 NAG 窗口
这是主界面
点击 Exit
程序出现 NAG 窗口,然后退出
用 PEiD 看一下
是用 VC++ 6.0 写的程序
逆向:
用 OD 载入程序
跑一下程序
出现 NAG 窗口时暂停
按 Alt+K 显示调用堆栈
这个是 MFC 的对话框,双击来到它所在的地方
下一个断点,重新跑一下程序
OD 停在了断点处
按 F8 往下走一步
NAG 窗口出现了
过了几秒就往下走了一步了
按 F9 运行
程序又停在了这个断点处
按一下 F8
主窗口出现了
点击 Exit
OD 往下走了一步
按 F9 运行
OD 又停在了断点处
按一下 F8
程序关闭的 NAG 窗口出现了
说明这个断点是三个窗口出现的地方
这个 call 语句上面有个 je 跳转指令,如果执行跳转的话,将跳过这个 call 语句
如果这个 je 跳转指令第一次执行跳转,第二次不执行跳转,第三次执行跳转,就会只显示主界面不显示 NAG 窗口
可以用到条件判断,设一个变量 i,如果 i 等于 2 的话就不执行跳转,i 等于 1 或 3 的话就执行跳转
按 Alt+M 显示内存窗口,查看程序的 PE 头结构
双击进入 data 段
找到一块没数据的地方
先测试一下这块地方在程序运行的时候会不会被影响到
右键 -> 断点 -> 硬件访问 -> Byte,关注这一个字节
重新跑一下程序,程序运行过程中没有停在该断点处,说明程序运行过程中没有对该字节区域造成影响
接下来在代码块区域找一个空白的地方
接下来使用 OD 的一个插件 NonaWrite 进行修改
在 NonaWrite 上写汇编代码
0x437D6E 为要修改的地址
下面为要修改的语句
写完之后点击“汇编”
然后把 je 跳转指令改为 jmp
保存文件,运行程序
没有了 NAG 窗口,只有主窗口
最新文章
- c# winform 动态画矩形 矩形大小可以拖动
- 【BZOJ-3589】动态树 树链剖分 + 线段树 + 线段覆盖(特殊的技巧)
- EMV技术学习和研究(转)
- IceGrid负载均衡部署 z
- 线程初步了解 - <;第一篇>;
- 技术回归01-Windows内存分配工具
- CSS:用Less实现栅格系统
- linux下如何删除文件夹?
- iOS中 UITextView文本视图 技术分享
- OC语言(四)
- 在c:forEach与s:iterator里面使用if标签判断当前位置是否为2的倍数
- Linux期中架构
- C# 操作redis
- JS,Jquery获取各种屏幕的宽度和高度(转载)
- List泛型集合
- Ramda函数式编程之PHP
- PHP之引用
- Linux 安装 mysql 数据库
- 王之泰201771010131《面向对象程序设计(java)》第一周学习总结
- python中的matplotlib的一些基础用法
热门文章
- IOS 的本地通知
- 【剑指offer】10A--求裴波那切数列的第n项,C++实现
- from sklearn.datasets import make_classification创建分类数据集
- TCP/IP 必知必会的十个问题
- 字符编码:ASCII,Unicode和UTF-8
- 实例-系数可配置的fir滤波器
- 自定义vue全局组件use使用(解释vue.use()的原理)
- Docker生态会重蹈Hadoop的覆辙吗?
- (新)解决php版本ueditor中动态配置图片URL前缀(imageurlprefix)的方法
- JVM内存管理之垃圾搜集器精解(让你在垃圾搜集器的世界里耍的游刃有余)