mozhongzhou 发表于 2024-9-2 21:58

《吾爱破解培训第二课:实战去广告、弹窗及主页锁定》全流程记录

本帖最后由 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压入堆栈的数据会被率先用到。

# 写在最后

**感谢所有无私分析的坛友**:

- 感谢所有在论坛中无私分享和分析的朋友们,你们的贡献使得知识得以传播和共享。

**本文只是对吾爱破解教程的流程记录**:

- 本文仅是对吾爱破解教程的流程记录,算是一个比较老的教程了,希望对大家有所帮助。

所有虚拟机、测试工具、测试软件均可在官网论坛和"可能用到的链接"中下载

aimei217 发表于 2024-9-3 08:51

看到“去广告”,虽然“0”基础,俺还是耐着性子看完了,感谢技术大佬分享的好文,这么多字,这么多图,需要费时费力地码字、上传贴图,楼主是一个极有逻辑的思维的技术猿,强烈支持!!{:1_921:}

princekins 发表于 2024-9-3 10:21

asd957919953 发表于 2024-11-3 19:42

11月我按教程来操作一遍

ayx2012 发表于 2024-9-2 22:01

感谢分享 楼主辛苦

sadffg 发表于 2024-9-2 22:34

感谢分享,有时间学习一下。

_小白 发表于 2024-9-2 23:22

确实是很好的新手教程

loading666 发表于 2024-9-2 23:30

感谢分享

LQ789 发表于 2024-9-2 23:43

谢谢大佬,收藏学习,希望进步

chinalihao 发表于 2024-9-3 00:16


感谢分享

十二月的枫叶 发表于 2024-9-3 00:17

抽空学习一下,谢谢分享

maomaoxiyu 发表于 2024-9-3 00:36

谢谢分享

ljsans 发表于 2024-9-3 00:36

感谢楼主,这下看懂了{:1_921:}
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 《吾爱破解培训第二课:实战去广告、弹窗及主页锁定》全流程记录