逆向实战 1#去除流氓弹窗和浏览器主页绑定
文章目录
- 逆向实战 1#去除流氓弹窗和浏览器主页绑定
- 环境 & 工具
- 案例一
- 案例一行为分析
- 案例一脱壳
- 去除弹窗
- 浏览器弹窗产生方法
- 消息框弹窗产生方法
- 浏览器弹窗解决方法
- 案例二
- 案例二行为分析法
- 案例二脱壳
- 去除弹窗
- 去除主页绑定
- 主页绑定方法
- 修改方法
- 复现资源下载
环境 & 工具
- win xp 32位 (还没学到处理ASLR等问题,而且懒得配环境,只能说ASLR一生之敌!)
- 吾爱破解版ollydbg(大佬亲手调教)
- PEiD(或别的查壳工具如exeinfope)
- ImportREC
- LordPE
- Restorator
案例一
案例一行为分析
案例一主要行为:
- 启动后,自动打开网页
- 弹出消息窗口
- 在启动20s、40s后,各打开一个网页
案例一脱壳
通过查壳工具发现程序加UPX壳
尝试手脱
UPX是压缩壳,F8发现此时只有ESP寄存器值变红,说明程序正要为解压程序申请栈帧
于是选中esp,右键在数据窗口中跟随
输入command:hr 0x12FFA4,在栈的ESP处增加硬件断点,当解压程序执行完毕时,为了堆栈平衡,esp将重新指向这个地址,此时解压程序返回的目标地址就是程序的入口点OEP(original entry point)
直接点击运行,程序停下时到达OEP附近
F8跟进至长跳转,随后跟随跳转
到达OEP
用od插件或者LordPE把脱壳后程序dump出来
去除弹窗
想要去除弹窗,首先要知道弹窗是如何产生的
弹窗产生的类型主要为消息框弹窗和浏览器弹窗
浏览器弹窗产生方法
主要可能由以下系统API产生
- ShellExecuteA/W
- WinExec
- CreateProcessA/W
消息框弹窗产生方法
- MessageBoxA/W
浏览器弹窗解决方法
-
方法一 在C32Asm等文件查看软件中,查找浏览器打开的链接对应的(ASCII 或 UNICODE)字符,然后将对应内容填充为00,这个方法可以对应绝大部分浏览器弹窗问题
-
方法二 对于少部分顽固浏览器弹窗而言,弹窗的地址是经过加密算法加密后进行保存的(可能性不大),此时可以在OD调试时,按下
ctrl + G
,然后跳转至程序调用这些系统API的位置下断点,随后让程序运行起来,在调用API时查看参数,确认是否广告弹窗来源在确认广告来源后,可以把调用函数的指令及前面的压栈过程用NOP指令填充,也可以把调用的整个过程的第一条指令改为retn指令
案例二
案例二行为分析法
这个案例会有两个广告,一个是打开20s后会出现一个无法关闭的小窗,并且在使用界面内有一个嵌入式广告,在打开的同时还会把浏览器的主页绑定为特定网页
看到这里大多数人已经血压升高了吧 😄
案例二脱壳
使用案例的方法追踪esp进行脱壳 但是我失败了,还是手艺不精 :- (
实际上,这种方法找到的OEP是没有问题的,但是不知道为什么脱壳不完全,可能是dump工具的原因,PEiD浅层查壳发现已经脱壳完毕,但深度查壳后发现还有ASPACK壳残留,故使用脱壳机进行脱壳,
去除弹窗
这个弹窗的去除在脱壳完毕后显得尤为简单,将脱壳后程序拖进resource hacker,打开对话框选项,把对应的弹窗大小置零或者把对应资源直接删除即可
去除主页绑定
主页绑定方法
毫无疑问,还是通过系统API来实现此功能,这次出场的API分别是
-
RegCreateKeyExA/W
-
RegOpenKeyExA/W
-
RegDeleteKeyExA/W
修改方法
可以把调用函数的指令及前面的压栈过程用NOP指令填充,也可以把调用的整个过程的第一条指令改为retn指令