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

前言

目的

记录踩坑经验,帮助他人避免同样问题。

提示

使用浏览器左侧目录快速导航。

注意

如有错误,请指正。

环境:

虚拟机Windows 10 企业版 LTSC

img

可能用到的软件:

软件名称类别作用
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 加壳。

img

2、ASLR修复

将 exe 拖入 ASLR 修复软件,得到修复后的 吾爱破解培训第二课实例一.exe,原程序备份为 吾爱破解培训第二课实例一-org.exe

img

如果出现 “File is a executable” 提示,表示软件无需或已修复,可跳过此步骤。

img

3、脱壳

3.1、入口断点

仅在 x32dbg 设置“入口断点”。

img

3.2、启动x32dbg

吾爱破解培训第二课实例一.exe 拖入 x32dbg 打开。

img

3.3、使用ESP定律找OEP

3.3.1、步过 pushad

按 F8 步过 pushad,使用 ESP 定律。

img

3.3.2 设置断点

在堆栈窗口找到第一行绿色地址,右键选择“断点” -> “硬件断点, 访问” -> “4 字节”。

img

3.3.3、触发断点

点击断点,切换到断点界面,确保“命中”为 0。

img

按 F9 运行,命中变为 1。

img

点击 CPU 切换回来,找到大跳转 OEP。

img

3.3.4、找到OEP

点击图示位置,按 F4 运行到 JMP OEP。

img

然后按 F8 步进到达 OEP。

img

3.4、使用 x32dbg/x64dbg 自带的 Scylla 进行 dump 和 IAT 修复

3.4.1、转存Dump

按 Ctrl+I 调出 Scylla。

img

点击 Dump 栏里的 Dump,将程序命名为 吾爱破解培训第二课实例一_dump.exe

img

3.4.2、IAT修复

在 Scylla 设置高级 IAT 搜索,勾选后点 Accept。

img
img

确保 OEP 地址为 00401876,点击 IAT Autosearch,获取起始点 VA 和大小 Size。

img
img

点击 Get Imports 获取导入表,删除 Invalid 对象。

img
img

点击 Fix Dump,选择 吾爱破解培训第二课实例一_dump.exe,得到 吾爱破解培训第二课实例一_dump_SCY.exe

img
img

3.4.3、验证IAT修复是否成功

双击打开,使用查壳工具验证脱壳成功。

img
img

4、去广告

4.1、删除跳转功能

  1. 吾爱破解培训第二课实例一_dump_SCY.exe 拖入 C32Asm。
  2. 选择十六进制模式。img
  3. 按 Ctrl+F 搜索 ANSI 字符串 “http”。img
  4. 定位到 explorer.exe,框选并右键填充 00。img img img img
  5. 按 F3 和 Ctrl+F3 确认删除完成。

4.2、删除启动广告

  1. 在 C32Asm 中按 Ctrl+F 搜索 Unicode 字符串 “http”。img
  2. 定位到刚才删除位置的下方。img
  3. 框选 httpopen,右键填充 00。img img
  4. 按 Ctrl+S 保存,选择是否备份原文件。

这样就去除了启动广告。

4.3、删除启动弹窗

  1. 用 x32dbg 调试修改后的 吾爱破解培训第二课实例一_dump_SCY.exe
  2. 使用搜索字符串功能,找到 “来试试我的程序啊” 的地址 004014E7img
  3. 双击跳转到该地址,框选 004014E0004014ED(包含 call 和前面的 4个 push)。img img
  4. 右键选择二进制,用 NOP 填充(或按Ctrl+9)。img img img
  5. 右键 CPU 选择补丁(或按 Ctrl+P),全选并修补文件,保存为 吾爱破解培训第二课实例一_dump_SCY_试试你的程序.exe
img
img
img

启动程序后,弹窗已删除。

img

4.4、删除启动后一段时间的广告(网址被加密过)

  1. 在 x32dbg 打开 吾爱破解培训第二课实例一_dump_SCY_试试你的程序.exeimg
  2. 在左下角命令窗口输入以下断点命令:
  • bp ShellExecuteA
  • bp ShellExecuteW
  • bp WinExec
  • bp CreateProcessA
  • bp CreateProcessW img
  1. 按 F9 运行,命中 ShellExecuteW 断点,继续按 F9 运行。img
  2. 等待约 20 秒,命中 WinExec 断点,右下角堆栈窗口显示广告 URL。img
  3. 双击堆栈窗口第一行,找到 WinExeccall 和前面 2 个 push,用 NOP 填充。img img img img
  4. 按 Ctrl+P 或右键选择补丁,全选并修补文件,保存新文件。img
  5. 继续按 F9 运行,命中 CreateProcessA 断点,双击堆栈界面第一行过去,找到 call 和前面 10 个 push,用 NOP 填充。img img img img
  6. 按 Ctrl+P 或右键选择补丁,全选并修补文件。
img

最终,得到去除所有广告的软件。

img

例2

直接启动 吾爱破解培训第二课实例二.exe,Win10 虚拟机出现三次脚本错误,可能与内置广告有关。修改主页功能未实现,可能与虚拟机版本有关,不影响后续操作。FixRES 无法解决脚本错误。

img
img
img

1、查壳

发现使用 ASPack 加壳。

img

2、ASLR修复

吾爱破解培训第二课实例二.exe 拖入 ASLR disabler,显示 “ASLR on executable is stripped” 表示修复成功。得到修复后的 吾爱破解培训第二课实例二.exe,原程序备份为 吾爱破解培训第二课实例二-org.exe

img

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

img

在堆栈窗口右键绿色地址0019FF54

断点-硬件断点,访问-2字节

img

运行,发现刚打的断点命中

img
img

f8直到00409425处,return,这里会jump到OEP

img

f8一次便到达OEP

img

3.2、IAT修复

3.2.1、打开Scylla

在OEP处按ctrl+i调出x32dbg内置scylla

img

3.2.2、转存

点击dump

img

3.2.3、根据OEP自动搜索起点VA和大小Size

点击IAT Autosearch – 是

img
img

3.2.4、获取导入表

然后点Get Imports

img

3.2.5、优化导入表

点Show Invalid,没显示对象证明没有Invalid

suspect的对象可以不删,有时删除会造成问题

3.2.6、修复转存

选择Fix Dump-”吾爱破解第二课实例二_dump.exe“-打开

img

可以看到Scylla的Log里显示导入重建成功

img

3.3、验证IAT修复是否成功

除去开始说的三个”无效脚本“外,软件没有问题

img

三软查壳,没有问题

img

4、去广告

4.1、删除修改主页功能

4.1.1、定位API

将脱壳后的”吾爱破解培训第二课实例二 _dump_SCY.exe“用x32dbg打开

img

点击中间靠右的“搜索字符串”,图标是Az

得到下图

img

注意下图框选的内容,这些内容跟修改主页有关,双击004019E2进入

img

注意这一大段从004019D0到00401AA9,使用了三种api,每个调用3次,目的是改IE浏览器的主页

img
img
img

4.1.2、分析API

RegCreateKeyW 3参数

img

RegSetValueExW 6参数

img

RegCloseKey 1参数

img

4.1.3、根据API参数情况来NOP

RegCreateKeyW有3个参数,于是框选3个push到Call之间的内容,ctrl+9,enter

img

RegSetValueExW有6个参数,于是框选6个push到Call之间的内容,ctrl+9,enter

img

RegCloseKey有1个参数,于是框选1个push到Call之间的内容,ctrl+9,enter

img

同理

img

同理

img

成果图

img
img
img
img

然后ctrl+p,全选,修补文件

命名为”吾爱破解培训第二课实例二_dump_SCY去除主页修改.exe“

img
img

启动测试没有问题,至此已经实现删除修改主页的功能

img

4.2、删除软件内部窗口广告(这个容易不小心把课程说明跳转功能误杀,注意小心谨慎)

即下图所示位置

img

4.2.1、方法一:使用Restorator.exe(这个方法不推荐)

测试发现win10虚拟机最后导出的软件不能运行,如果你是xp的虚拟机可以试试看

img

先用Restorator.exe打开没有去除内置广告的一个版本”吾爱破解培训第二课实例二 _dump_SCY.exe“

img

左侧栏选择对话框-102

img

点击顶部栏靠右有个编辑模式,点击广告的位置的框,将右侧窗口样式里面”可见“去掉

img

保存、导出、执行,发现出现错误,可能是虚拟机版本问题

img

4.2.2、方法二:使用C32Asm,用00去覆盖网址链接

4.2.2.1、使用C32Asm打开软件

用C32Asm打开”吾爱破解培训第二课实例二_dump_SCY去除主页修改.exe“

img

十六进制模式

img

进来是这样

img
4.2.2.2、通过ANSI字符串搜php

ctrl+f

img
img
4.2.2.3、通过Unicode搜php

ctrl+f

img

定位到php!

img

注意框选h.t.t.p到p.h.p的内容,不要框选到explorer的地方

img
img
4.2.2.4、保存并测试

最后别忘了ctrl+s保存,提示你要不要保留备份,我选的否。

重新打开软件”吾爱破解培训第二课实例二 _dump_SCY去除主页修改.exe“发现内置窗口广告没有了

但是右下角的流氓窗口过一会还是会跳出来,所以等会准备搞掉它

img

4.2.3、方法三:使用x32dbg寻找网址(类似于C32asm)

4.2.3.1、通过x32dbg搜索字符串功能定位网址

我将软件重命名为了”吾爱破解培训第二课实例二 _dump_SCY去除主页修改.exe“

查找字符串,注意00401C4A,他跟内置广告有关

它上面和下面的explorer.exe跟课程说明功能相关,注意不要误杀

img

双击00401C4A过去

img
4.2.3.2、注意内存窗口ASCII的网址

双击”push 吾爱破解培训第二.403630“

注意左下角内存窗口的ASCII码

img

右键内存窗口选择文本-扩展ASCII

这下好看多了

img
img
4.2.3.3、清空网址

右键,二进制编辑,填充

img

输入00

img

得到下图

img

ctrl+p,修补文件,命名为“吾爱破解培训第二课实例二 dump_SCY去除主页锁定x32dbg去除内置广告.exe”

img

OK

img

4.3、删除软件启动一段时间弹出的窗口

思路:x32dbg+猜测API

在x32dbg左下角命令处打几个断点,猜测程序用这几个API弹出的窗口

  • bp CreateWindowExA
  • bp CreateWindowExW
  • bp DialogBoxParamA
  • bp DialogBoxParamW
img

然后运行,命中一个断点

img

注意:将76F719A0这个命中了的断点delete掉

再次运行,等待20s左右

发现断到76FA5070

img

双击断点位置过去查看

观察这一块

img

查查资料

Sleep调用1参数

img

DialogBoxParamW调用5个参数

img

GetModuleHandleW调用1个参数

img

堆栈这种数据结构是后进先出(LIFO)

所以从上往下看,先干掉Sleep,1个参数,ctrl+9

img

得到

img

再是GetModuleHandleW,1个参数,ctrl+9 NOP掉

img

最后是DialogboxParamW,从下往上数5个push,期间所有内容NOP掉

img

不能多也不能少,要保证堆栈平衡

img

最后ctrl+p导出,大功告成

img

作业1(简洁)

“吾爱破解培训第二课作业一.exe”

1、查壳

发现使用 UPX 加壳。

img

2、ASLR修复

得到修复后程序即可

3、脱壳

由于是UPX壳,所以直接向下找,定位到OEP

img

快速dump+IAT修复后查壳

img

脱壳完毕

4、去广告

运行脱壳后程序发现需要去除功能有四个类型

4.1、去掉改主页的地方

通过字符串定位到

img

RegCreateKeyW-3参数

RegSetValueExW-6参数

RegCloseKey-1参数

改变后

img
img
img

4.2、内置广告页

通过字符串定位到

img

双击push 吾爱破解培训第二.551AB8

img

右键第一行-在内存窗口中转到-选定的地址

img

实现效果

img

4.3、删除启动一会儿弹出网页的功能

4.3.1、删除第一次弹出网页

bp ShellExecuteA; bp ShellExecuteW; bp WinExec; bp CreateProcessA; bp CreateProcessW

打了断点后运行,等待20s,中断于WinExeC

img

双击命中的断点

img

双击右下角堆栈窗口绿色地址的一行或者双击mov edi,edi

img

到达后按ctrl+a分析,发现这块显然跟弹网页有关

img

Sleep-1参数

WinExeC-2个参数

于是Ctrl+9就有了

img
img

4.3.2、删除第二次弹出网页

以类似的办法断点定位到CreateProcessA

img

Sleep-1参数

CreateProcessA-10参数

img
img

4.4、删除启动一会儿跳弹框

bp CreateWindowExA;bp CreateWindowExW;bp DialogBoxParamA;bp DialogBoxParamW

img

命中CreateWindowExW后先不管

img

删除CreateWindowExW断点后运行,等待20s,命中DialogBoxParamW

img
img

DialogBoxParamW-5参数

GerModuleHandleW-1参数

CreateThread-6参数

Sleep-1参数

img

完成

img

Q1:如何猜测程序弹广告使用的API是什么?

A:使用Procmon软件,以下是简要介绍

1、根据经验

如果经验丰富,应该不难想到可能调用的API

2、善用搜索

问AI或者使用搜索引擎

举几个例子

”Windows打开软件出现弹窗可能用到什么API?”

img

“Windows打开软件出现广告网页跳转可能用到什么API?”

img

3、使用工具

例如ProcMon

以”吾爱破解培训第二课实例二 _dump_SCY.exe“未修改版为例

启动Procmon,长下面这样,准备设置要监视的程序

img

顶部栏选择Filter过滤器或者ctrl+L

img

进来后左边选择过滤策略为Process Name,即根据程序名,然后填入程序名

img

点了右边Add添加再OK确认

img

然后启动程序,注意别启动错了,监视的谁就启动谁

然后等待一会,让广告弹出来

img

观察procmon顶部几个栏目,分别是监视程序在不同地方干的事

  • 注册表相关
img
  • 文件系统相关
img
  • 网络相关
img
  • 进程和线程活动
img
  • 性能分析事件
img

示例找API

通过52pojie网址来找

改主页要用到注册表,我们选择注册表相关活动

ctrl+f搜索52pojie,定位到的这个API是否有些眼熟?

简要展示几个调用到的API

  • RegSetValue
img
  • RegOpenKey
img
  • RegQueryValue
img
  • RegCreateKey
img

Q2:如何得知我要将Call跟几个push替换为NOP才能保证堆栈平衡?

A:查资料,了解API要用几个参数,然后替换对应参数个数的push。注意要从上往下看,堆栈遵循后进先出LIFO,后面push压入堆栈的数据会被率先用到。

写在最后

感谢所有无私奉献的坛友

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

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

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

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

本技术内容仅供学习和交流使用,如有疑问请联系qq2014160588并注明来意。请确保在使用过程中遵守相关法律法规。任何因使用本技术内容而导致的直接或间接损失,作者概不负责。用户需自行承担因使用本技术内容而产生的所有风险和责任。请勿将本技术内容用于任何非法用途。
上一篇
下一篇