逆向之修改系统DLL判断并删除窗体

CreateWindowsEx介绍

逆向之修改系统DLL判断并删除窗体逆向之修改系统DLL判断并删除窗体

逆向流程

查看该程序运行状态

逆向之修改系统DLL判断并删除窗体
逆向之修改系统DLL判断并删除窗体
是一个有双窗体带注册**码的一个软件 我们点Register才能跳出第二个窗口 太麻烦了 我们想个办法直接跳出第二个窗口
导入od之后程序很长很复杂
逆向之修改系统DLL判断并删除窗体

然后我们设置内存访问断点

内存访问断点的优势就是 只要内存一访问该程序就会断下来
逆向之修改系统DLL判断并删除窗体
我们在这里断下了五个JMP,在这里对每个JMP设置普通断点 逐个分析其功能 取消我们为跳转到此处而设置的内存断点
逆向之修改系统DLL判断并删除窗体

替换创建NAG窗体代码

逆向之修改系统DLL判断并删除窗体
我们想到我们可以把创建第一个NAG窗体的JMP给替换为第二个注册窗体
修改并保存为2222
逆向之修改系统DLL判断并删除窗体
我们发现它的功能变为了 打开程序马上跳出两个窗体 而不是点击注册 跳出第二个窗体
修改函数可能会多次调用而导致与我们想象中的不同
我们想第二个方法 修改系统DLL 我们断系统的API点 创建窗体的函数为 CreateWindowExA

找到对应窗体名的断点

逆向之修改系统DLL判断并删除窗体
逆向之修改系统DLL判断并删除窗体
逆向之修改系统DLL判断并删除窗体
我们发现该函数来自于系统的DLL 我们可修改该DLL 进行操作
程序调用DLL优先当前目录 我们把系统该DLL复制到与该程序相同目录下
逆向之修改系统DLL判断并删除窗体
我们还是回到刚才的断点
逆向之修改系统DLL判断并删除窗体
我们通过修改第一个窗体的Style就可删除第一个窗体
如CreateWindowsEx介绍中的一样
修改Style=40000000就可隐藏了第一个窗体

修改并添加代码

我们反汇编窗口中跟随该函数
逆向之修改系统DLL判断并删除窗体
我们往下找一段空代码 来进行我们的系统DLL修改
逆向之修改系统DLL判断并删除窗体
逆向之修改系统DLL判断并删除窗体
调试了半天终于成功 代码后面也添加了注释 合二为一了 接下来可以记录一下 如何在程序中找到**码

代码与最终结果

逆向之修改系统DLL判断并删除窗体
逆向之修改系统DLL判断并删除窗体