系统 : Windows xp

程序 : 某游戏客户端

程序下载地址 :不提供

要求 : 脱去压缩壳

使用工具 : OD & PEID & LordPE & Import REC

被感染客户端中的是Ramint蠕虫病毒,感染速度非常快,危害相当大。建议在虚拟机环境下进行逆向分析。

相关资料:

Ramnit(W32.Ramnit)的初始形态是蠕虫病毒,首次出现于2010年,激进的自繁殖策略使其得到迅速传播。一旦入侵计算机,该病毒就会找出本地硬盘和移动硬盘上所有的EXE、DLL、HTM和HTML文件,通过自身副本感染这些文件。 

本文参考了这篇帖子的12L回复:

会有一个新段位 rmnet的sfx段
取现在EP地址-(【EP+】得到的偏移数)= 原始OEP 动态劫持脱壳
EP处直接粘贴该二进制
E8 5D ED 2B AD 6C 1C FF E0 静态脱壳
先提取rmnet区段数据。然后取得 EP+328数据用ep减即可。。。然后删除rmnet区段。

客户端入口点在病毒区段,其内容为:

 >                pushad
E8 call
5D pop ebp
8BC5 mov eax, ebp
81ED 326F0120 sub ebp, 20016F32
0062200F 2B85 sub eax, dword ptr [ebp+]
4C720120 mov dword ptr [ebp+2001724C], eax
0062201B B0 mov al,
0062201D 9E740120 xchg byte ptr [ebp+2001749E], al
3C cmp al,
0F85 DE020000 jnz

按照帖子回复所说静态修改代码,其内容变为:

 >                pushad
E8 call
5D pop ebp
83ED sub ebp,
0062200A 2BAD sub ebp, dword ptr [ebp+]
896C24 1C mov dword ptr [esp+1C], ebp
popad
FFE0 jmp eax

以上指令找出了oep的位置,并直接跳转进入oep。也就是说,根本不用分析病毒行为,我们直接绕过它就可以。

脱壳时,运行到客户端真正的oep再完整转存内存映像,并在重建输入表的时候选择正确的oep,那么病毒代码就并不会执行。

紧接上部,jmp eax之后来到了程序的upx壳部分:

0060D080                  pushad
0060D081 BE mov esi,
0060D086 8DBE 00C0E8FF lea edi, dword ptr [esi+FFE8C000]
0060D08C push edi
0060D08D 83CD FF or ebp, FFFFFFFF
0060D090 EB jmp short 0060D0A2
0060D092 nop
0060D093 nop
0060D094 nop
0060D095 nop
0060D096 nop
0060D097 nop
0060D098 8A06 mov al, byte ptr [esi]
0060D09A inc esi
0060D09B mov byte ptr [edi], al
0060D09D inc edi
0060D09E 01DB add ebx, ebx
0060D0A0 jnz short 0060D0A9
0060D0A2 8B1E mov ebx, dword ptr [esi]

单步执行pushad之后,esp指向0012FFA4 ,键入命令hr 12FFA4下硬件断点,F9运行程序断在此处:

0060D207    8D4424        lea     eax, dword ptr [esp-]
0060D20B 6A push
0060D20D 39C4 cmp esp, eax
0060D20F ^ FA jnz short 0060D20B
0060D211 83EC sub esp, -
0060D214 - E9 93D9EFFF jmp 0050ABAC

直接在60D214出下断,跟入真正的oep:

0050ABAC                  push    ebp
0050ABAD 8BEC mov ebp, esp
0050ABAF 6A FF push -
0050ABB1 90C35100 push 0051C390
0050ABB6 60D65000 push 0050D660
0050ABBB :A1 mov eax, dword ptr fs:[]
0050ABC1 push eax
0050ABC2 : >mov dword ptr fs:[], esp
0050ABC9 83EC sub esp,
0050ABCC push ebx
0050ABCD push esi
0050ABCE push edi
0050ABCF E8 mov dword ptr [ebp-], esp
0050ABD2 FF15 A8B15100 call dword ptr [51B1A8] ; kernel32.GetVersion

此时单击菜单Debug->hardware breakpoints删除之前设置的硬件断点。

打开LordPE选择客户端程序并单击右键选择“完整转存”。

保存dump文件之后,再打开输入表重建工具Import REC附加到客户端程序。

填写OEP为“10ABAC”,依次单击“自动查找IAT”、“获取输入表”,最后,单击“修复转存文件”,选中之前的dump文件,则脱壳成功。

刀锋上前行!绕过Ramint蠕虫病毒直接脱壳的更多相关文章

  1. [转帖]Docker Hub上镜像发现挖矿蠕虫病毒,已导致2000台主机感染

    Docker Hub上镜像发现挖矿蠕虫病毒,已导致2000台主机感染 https://www.kubernetes.org.cn/5951.html 本来想说可以用 official版本的镜像 但是一 ...

  2. Trick蠕虫病毒来袭!幕后主使竟是一名高中生“黑客”!

    黑客一直是美国电影中的重要元素,很多经典大片中都有黑客的身影,如战争游戏.黑客帝国等.电影中黑客总是神通广大.行侠仗义,<战争游戏>中的年轻黑客大卫•莱特曼利用黑客技术避免引爆核武器,&l ...

  3. srv.exe蠕虫病毒~

    你是否在电脑使用过程中遇到过这样的问题: 1.文件运行后,同目录下会出现一个原名 srv.exe的文件 2.文件运行后会把浏览器打开 3.电脑上的html文件末尾会增加一大堆东西 完了,电脑中了srv ...

  4. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过

    Kali Linux Web 渗透测试视频教程—第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...

  5. CTF---Web入门第二题 上传绕过

    上传绕过分值:10 来源: Justatest 难度:易 参与人数:5847人 Get Flag:2272人 答题人数:2345人 解题通过率:97% bypass the upload 格式:fla ...

  6. 实验吧_程序逻辑问题(代码审计)&上传绕过

    一开始我先随便输入了几个账号名字进行测试,发现当输入的账号名为admin时会发生报错 经过测试果然是一个注入点 当拿到admin密码后发现根本没用,没办法另寻他路 审查元素时发现提示index.txt ...

  7. WannaCry勒索比特币蠕虫病毒解决方案

    WannaCry ransomware used in widespread attacks all over the world Customer Guidance for WannaCrypt a ...

  8. Window应急响应(二):蠕虫病毒

    0x00 前言 ​ 蠕虫病毒是一种十分古老的计算机病毒,它是一种自包含的程序(或是一套程序),通常通过网络途径传播,每入侵到一台新的计算机,它就在这台计算机上复制自己,并自动执行它自身的程序. 常见的 ...

  9. 服务器中了蠕虫病毒Wannamine2.0小记

    近期用户反馈某台服务器总感觉性能不是很好存在卡顿,于是今天远程上去分析. 打开任务管理器发现CPU使用率非常低,内存使用也在接受范围内(10/64G).不过我有一个偏好就是不喜欢用系统自带的任务管理器 ...

随机推荐

  1. 使用webpack打包ThinkPHP的资源文件

    使用webpack打包ThinkPHP的资源文件 利用自己的空余时间一直在维护http://www.wx2share.com这个小网站,全是一个人在弄,由于只租得起虚拟空间,所以后台采用了简单方便的T ...

  2. Anliven - 解决问题的一些方法

    How to resolve the problem? 获取基本的相关信息(后续处理问题的基础)  在怎样的背景环境下?发生了怎样的问题? 如果无法清楚地辨别或陈述问题的基本信息,那么,此时要面对的将 ...

  3. Java魔法堂:解读基于Type Erasure的泛型

    一.前言 还记得JDK1.4时遍历列表的辛酸吗?我可是记忆犹新啊,那时因项目需求我从C#转身到Java的怀抱,然后因JDK1.4少了泛型这样语法糖(还有自动装箱.拆箱),让我受尽苦头啊,不过也反映自己 ...

  4. React Native版本升级的正确姿势

    基于React Native(简称:RN)的APP也发布了三个版本了,RN由于两周就会发布一版从最开始项目用的0.29到最近的0.37,做为一个开源项目来说更新真是跟坐火箭般快速,当然对于我们使用的人 ...

  5. visual studio 2015.3 downloads

    https://www.visualstudio.com/zh-hans/downloads/ visual studio 2015.3 downloads http://download.micro ...

  6. 使用WebKit.net加载HTML编辑器

    关于webkit.net使用请看这里http://www.cnblogs.com/linyijia/p/4045333.html nicedit编辑器请到这里下载http://www.nicedit. ...

  7. Visual Studio 技能GET

    常用快捷键 自动生成头部注释 代码片段 NuGet Team Foundation 常用的VS快捷键 查看与设置快捷键 一般在菜单里面我们直接就可以看到一些功能的快捷键.另外,可以依次通过 菜单栏-工 ...

  8. ASP.NET Core 发布至Linux生产环境 Ubuntu 系统

    ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...

  9. Linux下的C编程实战

    Linux下的C编程实战(一) ――开发平台搭建 1.引言 Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性.而近年来, Linu ...

  10. Winform控件重写

    Winform控件重写 因为最近的项目中越来越多的遇到了比较特殊的一些控件,有时候我们自己封装一下可能更加方便我们的使用,下面是我们项目中用到的,简单做一个记录. TextBox控件重写 主要的控制代 ...