逆向实战 1#去除流氓弹窗和浏览器主页绑定

逆向实战 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跟进至长跳转,随后跟随跳转

image-20211223085020207

到达OEP

用od插件或者LordPE把脱壳后程序dump出来

去除弹窗

想要去除弹窗,首先要知道弹窗是如何产生的

弹窗产生的类型主要为消息框弹窗浏览器弹窗

浏览器弹窗产生方法

主要可能由以下系统API产生

  • ShellExecuteA/W
  • WinExec
  • CreateProcessA/W
消息框弹窗产生方法
  • MessageBoxA/W
浏览器弹窗解决方法
  • 方法一 在C32Asm等文件查看软件中,查找浏览器打开的链接对应的(ASCII 或 UNICODE)字符,然后将对应内容填充为00,这个方法可以对应绝大部分浏览器弹窗问题逆向实战 1#去除流氓弹窗和浏览器主页绑定_第1张图片

  • 方法二 对于少部分顽固浏览器弹窗而言,弹窗的地址是经过加密算法加密后进行保存的(可能性不大),此时可以在OD调试时,按下ctrl + G,然后跳转至程序调用这些系统API的位置下断点,随后让程序运行起来,在调用API时查看参数,确认是否广告弹窗来源

    逆向实战 1#去除流氓弹窗和浏览器主页绑定_第2张图片

    在确认广告来源后,可以把调用函数的指令及前面的压栈过程用NOP指令填充,也可以把调用的整个过程的第一条指令改为retn指令

案例二

案例二行为分析法

这个案例会有两个广告,一个是打开20s后会出现一个无法关闭的小窗,并且在使用界面内有一个嵌入式广告,在打开的同时还会把浏览器的主页绑定为特定网页

看到这里大多数人已经血压升高了吧

案例二脱壳

使用案例的方法追踪esp进行脱壳 但是我失败了,还是手艺不精 :- (

实际上,这种方法找到的OEP是没有问题的,但是不知道为什么脱壳不完全,可能是dump工具的原因,PEiD浅层查壳发现已经脱壳完毕,但深度查壳后发现还有ASPACK壳残留,故使用脱壳机进行脱壳,

去除弹窗

这个弹窗的去除在脱壳完毕后显得尤为简单,将脱壳后程序拖进resource hacker,打开对话框选项,把对应的弹窗大小置零或者把对应资源直接删除即可

逆向实战 1#去除流氓弹窗和浏览器主页绑定_第3张图片

去除主页绑定

主页绑定方法

毫无疑问,还是通过系统API来实现此功能,这次出场的API分别是

  • RegCreateKeyExA/W

  • RegOpenKeyExA/W

  • RegDeleteKeyExA/W

修改方法

可以把调用函数的指令及前面的压栈过程用NOP指令填充,也可以把调用的整个过程的第一条指令改为retn指令

复现资源下载

你可能感兴趣的:(逆向学习,逆向,脱壳,弹窗)