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

  • Post author:
  • Post category:其他




CreateWindowsEx介绍


在这里插入图片描述



逆向流程



查看该程序运行状态

在这里插入图片描述

在这里插入图片描述

是一个有双窗体带注册破解码的一个软件 我们点Register才能跳出第二个窗口 太麻烦了 我们想个办法直接跳出第二个窗口

导入od之后程序很长很复杂

在这里插入图片描述



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

内存访问断点的优势就是 只要内存一访问该程序就会断下来

在这里插入图片描述

我们在这里断下了五个JMP,在这里对每个JMP设置普通断点 逐个分析其功能 取消我们为跳转到此处而设置的内存断点

在这里插入图片描述



替换创建NAG窗体代码

在这里插入图片描述

我们想到我们可以把创建第一个NAG窗体的JMP给替换为第二个注册窗体

修改并保存为2222

在这里插入图片描述

我们发现它的功能变为了 打开程序马上跳出两个窗体 而不是点击注册 跳出第二个窗体

修改函数可能会多次调用而导致与我们想象中的不同

我们想第二个方法 修改系统DLL 我们断系统的API点 创建窗体的函数为 CreateWindowExA



找到对应窗体名的断点

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我们发现该函数来自于系统的DLL 我们可修改该DLL 进行操作

程序调用DLL优先当前目录 我们把系统该DLL复制到与该程序相同目录下

在这里插入图片描述

我们还是回到刚才的断点

在这里插入图片描述

我们通过修改第一个窗体的Style就可删除第一个窗体

如CreateWindowsEx介绍中的一样

修改Style=40000000就可隐藏了第一个窗体



修改并添加代码

我们反汇编窗口中跟随该函数

在这里插入图片描述

我们往下找一段空代码 来进行我们的系统DLL修改

在这里插入图片描述

在这里插入图片描述

调试了半天终于成功 代码后面也添加了注释 合二为一了 接下来可以记录一下 如何在程序中找到破解码



代码与最终结果

在这里插入图片描述

在这里插入图片描述



版权声明:本文为cx1y11原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。