《吾爱破解培训第二课:实战去广告、弹窗及主页锁定》全流程记录
本帖最后由 mozhongzhou 于 2024-9-4 10:43 编辑# 前言
**目的**
记录踩坑经验,帮助他人避免同样问题。
**提示**
使用浏览器左侧目录快速导航。
**注意**
如有错误,请指正。
# 环境:
虚拟机Windows 10 企业版 LTSC
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-233.png)
# 可能用到的软件:
| 软件名称 | 类别 | 作用 |
| --------------- | ------------ | ---------------------------------------- |
| Detect It Easy| 文件分析工具 | 识别可执行文件的编译器、打包器和加壳工具 |
| Exeinfo PE | 文件分析工具 | 分析可执行文件的编译器、打包器和加壳工具 |
| PEiD | 文件分析工具 | 检测可执行文件的编译器、打包器和加壳工具 |
| x32/64dbg | 调试工具 | 调试 32 位和 64 位可执行文件 |
| C32Asm | 反汇编工具 | 反汇编和重新汇编二进制代码 |
| Restorator | 资源编辑工具 | 查看和修改可执行文件中的资源 |
| Process Monitor | 系统监视工具 | 实时监视系统文件和注册表活动 |
# 可能用到的链接
> **爱盘下载:**
> http://down.52pojie.cn/吾爱破解视频教程/吾爱破解论坛官方入门教学培训第一期/
>
> **百度网盘下载:**
> 链接: https://pan.baidu.com/s/1z9WQeYgUGxcurVD2lKfNeg提取码: e2su
# 一句话概括给软件去广告、弹窗及主页锁定的思路
> 通过逆向工程分析软件的代码和行为,找到并移除或屏蔽触发广告、弹窗和主页锁定的相关函数调用或配置。
# 例1
## 1、查壳
发现使用 UPX 加壳。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-2.png)
## 2、ASLR修复
将 exe 拖入 ASLR 修复软件,得到修复后的 `吾爱破解培训第二课实例一.exe`,原程序备份为 `吾爱破解培训第二课实例一-org.exe`。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-3.png)
如果出现 "File is a executable" 提示,表示软件无需或已修复,可跳过此步骤。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-32.png)
## 3、脱壳
### 3.1、入口断点
仅在 x32dbg 设置“入口断点”。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-6.png)
### 3.2、启动x32dbg
将 `吾爱破解培训第二课实例一.exe` 拖入 x32dbg 打开。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-5.png)
### 3.3、使用ESP定律找OEP
#### 3.3.1、步过 pushad
按 F8 步过 `pushad`,使用 ESP 定律。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-7.png)
#### 3.3.2 设置断点
在堆栈窗口找到第一行绿色地址,右键选择“断点” -> “硬件断点, 访问” -> “4 字节”。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-10.png)
#### 3.3.3、触发断点
点击断点,切换到断点界面,确保“命中”为 0。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-12.png)
按 F9 运行,命中变为 1。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-13.png)
点击 CPU 切换回来,找到大跳转 OEP。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-15.png)
#### 3.3.4、找到OEP
点击图示位置,按 F4 运行到 JMP OEP。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-16.png)
然后按 F8 步进到达 OEP。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-17.png)
### 3.4、使用 x32dbg/x64dbg 自带的 Scylla 进行 dump 和 IAT 修复
#### 3.4.1、转存Dump
按 Ctrl+I 调出 Scylla。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-18.png)
点击 Dump 栏里的 Dump,将程序命名为 `吾爱破解培训第二课实例一_dump.exe`。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-20.png)
#### 3.4.2、IAT修复
在 Scylla 设置高级 IAT 搜索,勾选后点 Accept。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-21.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-23.png)
确保 OEP 地址为 `00401876`,点击 IAT Autosearch,获取起始点 VA 和大小 Size。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-24.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-25.png)
点击 Get Imports 获取导入表,删除 Invalid 对象。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-26.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-27.png)
点击 Fix Dump,选择 `吾爱破解培训第二课实例一_dump.exe`,得到 `吾爱破解培训第二课实例一_dump_SCY.exe`。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-28.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-29.png)
#### 3.4.3、验证IAT修复是否成功
双击打开,使用查壳工具验证脱壳成功。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-30.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-31.png)
## 4、去广告
### 4.1、删除跳转功能
1. 将 `吾爱破解培训第二课实例一_dump_SCY.exe` 拖入 C32Asm。
2. 选择十六进制模式。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-33.png)
3. 按 Ctrl+F 搜索 ANSI 字符串 "http"。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-35.png)
4. 定位到 `explorer.exe`,框选并右键填充 00。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-36.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-37.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-38.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-39.png)
5. 按 F3 和 Ctrl+F3 确认删除完成。
### 4.2、删除启动广告
1. 在 C32Asm 中按 Ctrl+F 搜索 Unicode 字符串 "http"。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-40.png)
2. 定位到刚才删除位置的下方。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-41.png)
3. 框选 `http` 到 `open`,右键填充 00。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-42.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-43.png)
4. 按 Ctrl+S 保存,选择是否备份原文件。
这样就去除了启动广告。
### 4.3、删除启动弹窗
1. 用 x32dbg 调试修改后的 `吾爱破解培训第二课实例一_dump_SCY.exe`。
2. 使用搜索字符串功能,找到 "来试试我的程序啊" 的地址 `004014E7`。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-46.png)
3. 双击跳转到该地址,框选 `004014E0` 到 `004014ED`(包含 `call` 和前面的 4个 `push`)。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-47.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-48.png)
4. 右键选择二进制,用 NOP 填充(或按Ctrl+9)。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-49.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-50.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-51.png)
5. 右键 CPU 选择补丁(或按 Ctrl+P),全选并修补文件,保存为 `吾爱破解培训第二课实例一_dump_SCY_试试你的程序.exe`。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-52.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-54.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-55.png)
启动程序后,弹窗已删除。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-56.png)
### 4.4、删除启动后一段时间的广告(网址被加密过)
1. 在 x32dbg 打开 `吾爱破解培训第二课实例一_dump_SCY_试试你的程序.exe`。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-57.png)
2. 在左下角命令窗口输入以下断点命令:
- `bp ShellExecuteA`
- `bp ShellExecuteW`
- `bp WinExec`
- `bp CreateProcessA`
- `bp CreateProcessW` !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-58.png)
3. 按 F9 运行,命中 `ShellExecuteW` 断点,继续按 F9 运行。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-59.png)
4. 等待约 20 秒,命中 `WinExec` 断点,右下角堆栈窗口显示广告 URL。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-60.png)
5. 双击堆栈窗口第一行,找到 `WinExec` 的 `call` 和前面 2 个 `push`,用 NOP 填充。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-62.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-65.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-68.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-69.png)
6. 按 Ctrl+P 或右键选择补丁,全选并修补文件,保存新文件。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-71.png)
7. 继续按 F9 运行,命中 `CreateProcessA` 断点,双击堆栈界面第一行过去,找到 `call` 和前面 10 个 `push`,用 NOP 填充。!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-73.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-74.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-75.png) !(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-77.png)
8. 按 Ctrl+P 或右键选择补丁,全选并修补文件。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-78.png)
最终,得到去除所有广告的软件。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-79.png)
# 例2
直接启动 `吾爱破解培训第二课实例二.exe`,Win10 虚拟机出现三次脚本错误,可能与内置广告有关。修改主页功能未实现,可能与虚拟机版本有关,不影响后续操作。FixRES 无法解决脚本错误。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-102.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-103.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-104.png)
## 1、查壳
发现使用 ASPack 加壳。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-81.png)
## 2、ASLR修复
将 `吾爱破解培训第二课实例二.exe` 拖入 ASLR disabler,显示 "ASLR on executable is stripped" 表示修复成功。得到修复后的 `吾爱破解培训第二课实例二.exe`,原程序备份为 `吾爱破解培训第二课实例二-org.exe`。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-84.png)
## 3、脱壳
用x32dbg启动程序“吾爱破解培训第二课实例二.exe”
### 3.1、使用ESP定律找OEP
> 1. 用 x32dbg 启动程序 `吾爱破解培训第二课实例二.exe`。
> 2. 按 F8 步过 `pushad`,来到 `00409002`。
> 3. 在堆栈窗口右键绿色地址 `0019FF54`,选择“断点” -> “硬件断点,访问” -> “2 字节”。
> 4. 运行程序,命中断点。
> 5. 按 F8 直到 `00409425` 处,`return`,跳转到 OEP。
> 6. 按 F8 到达 OEP。
f8步过关键句pushad,来到00409002
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-85.png)
在堆栈窗口右键绿色地址0019FF54
断点-硬件断点,访问-2字节
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-86.png)
运行,发现刚打的断点命中
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-87.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-88.png)
f8直到00409425处,return,这里会jump到OEP
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-90.png)
f8一次便到达OEP
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-91.png)
### 3.2、IAT修复
#### 3.2.1、打开Scylla
在OEP处按ctrl+i调出x32dbg内置scylla
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-92.png)
#### 3.2.2、转存
点击dump
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-93.png)
#### 3.2.3、根据OEP自动搜索起点VA和大小Size
点击IAT Autosearch - 是
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-94.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-95.png)
#### 3.2.4、获取导入表
然后点Get Imports
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-96.png)
#### 3.2.5、优化导入表
点Show Invalid,没显示对象证明没有Invalid
suspect的对象可以不删,有时删除会造成问题
#### 3.2.6、修复转存
选择Fix Dump-”吾爱破解第二课实例二_dump.exe“-打开
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-107.png)
可以看到Scylla的Log里显示导入重建成功
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-108.png)
### 3.3、验证IAT修复是否成功
除去开始说的三个”无效脚本“外,软件没有问题
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-105.png)
三软查壳,没有问题
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-106.png)
## 4、去广告
### 4.1、删除修改主页功能
#### 4.1.1、定位API
将脱壳后的”吾爱破解培训第二课实例二 _dump_SCY.exe“用x32dbg打开
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-109.png)
点击中间靠右的“搜索字符串”,图标是Az
得到下图
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-110.png)
注意下图框选的内容,这些内容跟修改主页有关,双击004019E2进入
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-111.png)
注意这一大段从004019D0到00401AA9,使用了三种api,每个调用3次,目的是改IE浏览器的主页
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-112.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-116.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-114.png)
#### 4.1.2、分析API
RegCreateKeyW 3参数
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-119.png)
RegSetValueExW 6参数
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-120.png)
RegCloseKey 1参数
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-121.png)
#### 4.1.3、根据API参数情况来NOP
RegCreateKeyW有3个参数,于是框选3个push到Call之间的内容,ctrl+9,enter
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-123.png)
RegSetValueExW有6个参数,于是框选6个push到Call之间的内容,ctrl+9,enter
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-124.png)
RegCloseKey有1个参数,于是框选1个push到Call之间的内容,ctrl+9,enter
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-125.png)
同理
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-126.png)
同理
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-127.png)
...
成果图
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-128.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-129.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-130.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-131.png)
然后ctrl+p,全选,修补文件
命名为”吾爱破解培训第二课实例二_dump_SCY去除主页修改.exe“
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-132.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-134.png)
启动测试没有问题,至此已经实现**删除修改主页的功能**
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-135.png)
### 4.2、删除软件内部窗口广告(这个容易不小心把课程说明跳转功能误杀,注意小心谨慎)
即下图所示位置
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-137.png)
#### 4.2.1、方法一:使用Restorator.exe(这个方法不推荐)
测试发现win10虚拟机最后导出的软件**不能运行**,如果你是xp的虚拟机可以试试看
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-154.png)
先用Restorator.exe打开没有去除内置广告的一个版本”吾爱破解培训第二课实例二 _dump_SCY.exe“
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-156.png)
左侧栏选择对话框-102
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-157.png)
点击顶部栏靠右有个编辑模式,点击广告的位置的框,将右侧窗口样式里面”可见“去掉
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-160.png)
保存、导出、执行,发现出现错误,可能是虚拟机版本问题
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-155.png)
#### 4.2.2、方法二:使用C32Asm,用00去覆盖网址链接
##### 4.2.2.1、使用C32Asm打开软件
用C32Asm打开”吾爱破解培训第二课实例二_dump_SCY去除主页修改.exe“
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-138.png)
十六进制模式
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-140.png)
进来是这样
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-141.png)
##### 4.2.2.2、通过ANSI字符串搜php
ctrl+f
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-170.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-171.png)
##### 4.2.2.3、通过Unicode搜php
ctrl+f
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-172.png)
定位到php!
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-173.png)
注意框选h.t.t.p到p.h.p的内容,不要框选到explorer的地方
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-174.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-175.png)
##### 4.2.2.4、保存并测试
最后别忘了ctrl+s保存,提示你要不要保留备份,我选的否。
重新打开软件”吾爱破解培训第二课实例二 _dump_SCY去除主页修改.exe“发现内置窗口广告没有了
但是右下角的流氓窗口过一会还是会跳出来,所以等会准备搞掉它
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-153.png)
#### 4.2.3、方法三:使用x32dbg寻找网址(类似于C32asm)
##### 4.2.3.1、通过x32dbg搜索字符串功能定位网址
我将软件重命名为了”吾爱破解培训第二课实例二 _dump_SCY去除主页修改.exe“
查找字符串,注意00401C4A,他跟内置广告有关
它上面和下面的explorer.exe跟课程说明功能相关,注意不要误杀
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-169.png)
双击00401C4A过去
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-176.png)
##### 4.2.3.2、注意内存窗口ASCII的网址
双击”push 吾爱破解培训第二.403630“
注意左下角内存窗口的ASCII码
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-178.png)
右键内存窗口选择文本-扩展ASCII
这下好看多了
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-179.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-180.png)
##### 4.2.3.3、清空网址
右键,二进制编辑,填充
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-181.png)
输入00
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-182.png)
得到下图
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-183.png)
ctrl+p,修补文件,命名为“吾爱破解培训第二课实例二 *dump_SCY去除主页锁定*x32dbg去除内置广告.exe”
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-184.png)
OK
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-185.png)
### 4.3、删除软件启动一段时间弹出的窗口
思路:x32dbg+猜测API
在x32dbg左下角命令处打几个断点,猜测程序用这几个API弹出的窗口
- bp CreateWindowExA
- bp CreateWindowExW
- bp DialogBoxParamA
- bp DialogBoxParamW
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-186.png)
然后运行,命中一个断点
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-187.png)
注意:将76F719A0这个命中了的断点delete掉
再次运行,等待20s左右
发现断到76FA5070
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-188.png)
双击断点位置过去查看
观察这一块
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-189.png)
查查资料
Sleep调用1参数
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-191.png)
DialogBoxParamW调用5个参数
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-192.png)
GetModuleHandleW调用1个参数
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-193.png)
堆栈这种数据结构是后进先出(LIFO)
所以从上往下看,先干掉Sleep,1个参数,ctrl+9
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-194.png)
得到
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-195.png)
再是GetModuleHandleW,1个参数,ctrl+9 NOP掉
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-196.png)
最后是DialogboxParamW,从下往上数5个push,期间所有内容NOP掉
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-199.png)
不能多也不能少,要保证堆栈平衡
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-200.png)
最后ctrl+p导出,大功告成
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-201.png)
# 作业1(简洁)
"吾爱破解培训第二课作业一.exe"
## 1、查壳
发现使用 UPX 加壳。
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-234.png)
## 2、ASLR修复
得到修复后程序即可
## 3、脱壳
由于是UPX壳,所以直接向下找,定位到OEP
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-236.png)
快速dump+IAT修复后查壳
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-237.png)
脱壳完毕
## 4、去广告
运行脱壳后程序发现需要去除功能有四个类型
### 4.1、去掉改主页的地方
通过字符串定位到
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-247.png)
RegCreateKeyW-3参数
RegSetValueExW-6参数
RegCloseKey-1参数
改变后
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-248.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-249.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-250.png)
### 4.2、内置广告页
通过字符串定位到
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-251.png)
双击push 吾爱破解培训第二.551AB8
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-252.png)
右键第一行-在内存窗口中转到-选定的地址
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-253.png)
实现效果
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-254.png)
### 4.3、删除启动一会儿弹出网页的功能
#### 4.3.1、删除第一次弹出网页
bp ShellExecuteA; bp ShellExecuteW; bp WinExec; bp CreateProcessA; bp CreateProcessW
打了断点后运行,等待20s,中断于WinExeC
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-255.png)
双击命中的断点
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-258.png)
双击右下角堆栈窗口绿色地址的一行或者双击mov edi,edi
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-260.png)
到达后按ctrl+a分析,发现这块显然跟弹网页有关
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-261.png)
Sleep-1参数
WinExeC-2个参数
于是Ctrl+9就有了
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-262.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-263.png)
#### 4.3.2、删除第二次弹出网页
以类似的办法断点定位到CreateProcessA
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-265.png)
Sleep-1参数
CreateProcessA-10参数
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-266.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-267.png)
### 4.4、删除启动一会儿跳弹框
bp CreateWindowExA;bp CreateWindowExW;bp DialogBoxParamA;bp DialogBoxParamW
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-268.png)
命中CreateWindowExW后先不管
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-269.png)
删除CreateWindowExW断点后运行,等待20s,命中DialogBoxParamW
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-272.png)
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-274.png)
DialogBoxParamW-5参数
GerModuleHandleW-1参数
CreateThread-6参数
Sleep-1参数
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-275.png)
完成
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-276.png)
# Q1:如何猜测程序弹广告使用的API是什么?
A:使用Procmon软件,以下是简要介绍
## 1、根据经验
如果经验丰富,应该不难想到可能调用的API
## 2、善用搜索
问AI或者使用搜索引擎
举几个例子
”Windows打开软件出现弹窗可能用到什么API?"
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-232.png)
“Windows打开软件出现广告网页跳转可能用到什么API?”
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-231.png)
## 3、使用工具
例如ProcMon
以”吾爱破解培训第二课实例二 _dump_SCY.exe“未修改版为例
启动Procmon,长下面这样,准备设置要监视的程序
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-206.png)
顶部栏选择Filter过滤器或者ctrl+L
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-207.png)
进来后左边选择过滤策略为Process Name,即根据程序名,然后填入程序名
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-208.png)
点了右边Add添加再OK确认
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-209.png)
然后启动程序,注意别启动错了,监视的谁就启动谁
然后等待一会,让广告弹出来
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-210.png)
观察procmon顶部几个栏目,分别是监视程序在不同地方干的事
- 注册表相关
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-212.png)
- 文件系统相关
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-215.png)
- 网络相关
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-216.png)
- 进程和线程活动
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-217.png)
- 性能分析事件
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-219.png)
## 示例找API
### 通过52pojie网址来找
改主页要用到注册表,我们选择注册表相关活动
ctrl+f搜索52pojie,定位到的这个API是否有些眼熟?
简要展示几个调用到的API
- RegSetValue
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-222.png)
- RegOpenKey
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-224.png)
- RegQueryValue
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-223.png)
- RegCreateKey
!(https://blog.mozhongzhou.cn/wp-content/uploads/2024/09/image-225.png)
# Q2:如何得知我要将Call跟几个push替换为NOP才能保证堆栈平衡?
A:查资料,了解API要用几个参数,然后替换对应参数个数的push。注意要从上往下看,堆栈遵循后进先出LIFO,后面push压入堆栈的数据会被率先用到。
# 写在最后
**感谢所有无私分析的坛友**:
- 感谢所有在论坛中无私分享和分析的朋友们,你们的贡献使得知识得以传播和共享。
**本文只是对吾爱破解教程的流程记录**:
- 本文仅是对吾爱破解教程的流程记录,算是一个比较老的教程了,希望对大家有所帮助。
所有虚拟机、测试工具、测试软件均可在官网论坛和"可能用到的链接"中下载 看到“去广告”,虽然“0”基础,俺还是耐着性子看完了,感谢技术大佬分享的好文,这么多字,这么多图,需要费时费力地码字、上传贴图,楼主是一个极有逻辑的思维的技术猿,强烈支持!!{:1_921:} 11月我按教程来操作一遍 感谢分享 楼主辛苦 感谢分享,有时间学习一下。 确实是很好的新手教程 感谢分享 谢谢大佬,收藏学习,希望进步
感谢分享 抽空学习一下,谢谢分享 谢谢分享 感谢楼主,这下看懂了{:1_921:}