记一次MBR锁机病毒分析
有一天,在机缘巧合之下我获得了一个锁机软件(是多巧合阿喂!),然后兴高采烈的把它拖入了虚拟机里蹂躏(>_<!)。
很巧,软件有虚拟机检测。。。

Emmmm好吧,随便过一下。。。
我用的虚拟机是VMware12,网上查到了一段过检测的代码:
isolation.tools.setVersion.disable = "TRUE"
isolation.tools.getVersion.disable = "TRUE"
把上面两行加到虚拟机配置文件结尾,保存然后重新打开虚拟机即可。
好了,这次程序直接运行了起来。

靠!连一点暗示都不给,直接重启的嘛!这个人好坏好坏的,都不稍稍伪装下!
幸亏做了快照备份。。赶紧还原虚拟机,下面就开始简单分析一下这个程序的行为吧!
当然,少不了表姐的PeDoll~这时,表姐C/S的软件架构就很好的解决了测试机重启的问题~表白表姐~
好了,具体怎么抓的实在太简单,这里我就不写了,也就一个脚本的事,不耽误大家时间了。我们只看最后。
从PeDoll里保存下来两个512字节的数据文件,我断定这一定是这个智障软件写入到MBR的内容(废话嘛!)。其中一个很明显是锁机的,另一个可能是我虚拟机原始的MBR。看到这里谢天谢地。。至少这软件知道把原来的数据保存下来,这样就代表还原不是不可能拉!
在分析之前,我把虚拟机还原了一遍,又抓了一次数据。结果表明这丫两次写入的数据一模一样!诶,都不加个随机密码之类的吗!
好了,下面是这款软件写入到MBR的内容。

恩,这样乱七八糟的是要我怎么看嘛!还好,我有nasm! 于是,我随手从官网下载了nasm的二进制文件。就下面这货。

其中我们只用到ndisasm.exe这个程序来反汇编我们的MBR文件。最后来让我们看看结果~

嗯,,这回看着顺眼多了。把结果保存到文件中,我们来仔细分析下吧。
00000000 E90000 jmp 0×3
00000003 8CC8 mov ax,cs
00000005 8ED8 mov ds,ax
00000007 8ED0 mov ss,ax
00000009 8EC0 mov es,ax
0000000B BC0001 mov sp,0×100
0000000E BDED7C mov bp,0x7ced ;;;提示字符串偏移
00000011 BBED7C mov bx,0x7ced
00000014 E8B000 call 0xc7 ;;;计算字符串长度
00000017 89C1 mov cx,ax ;;;cx=字符串长度
00000019 B80113 mov ax,0×1301
0000001C BB0C00 mov bx,0xc ;;;页号0,黑底红字
0000001F B200 mov dl,0×0
00000021 CD10 int 0×10 ;;;打印提示字符串
00000023 B800B8 mov ax,0xb800
00000026 05A000 add ax,0xa0
00000029 8ED8 mov ds,ax ;;; ds=0xb8a0
0000002B 31C9 xor cx,cx ;;;初始化cx
0000002D 31DB xor bx,bx ;;;初始化bx
0000002F 31C0 xor ax,ax ;;;初始化ax
00000031 CD16 int 0×16 ;;;等待输入密码
00000033 3C08 cmp al,0×8 ;;;退格
00000035 7413 jz 0x4a
00000037 3C0D cmp al,0xd ;;;回车
00000039 741B jz 0×56
0000003B B402 mov ah,0×2
0000003D 8807 mov [bx],al
0000003F 886701 mov [bx+0x1],ah
00000042 81C30200 add bx,0×2
00000046 41 inc cx
00000047 E9E5FF jmp 0x2f
0000004A 81EB0200 sub bx,0×2 ;;;退格键按下
0000004E 49 dec cx
0000004F 31C0 xor ax,ax
00000051 8907 mov [bx],ax
00000053 E9D9FF jmp 0x2f
00000056 8CC8 mov ax,cs ;;;回车键按下
00000058 8EC0 mov es,ax
0000005A 31DB xor bx,bx
0000005C BEDA7C mov si,0x7cda ;;;密码字符串偏移
0000005F 2E8A0ED97C mov cl,[cs:0x7cd9]
00000064 B500 mov ch,0×0
以上参考了链接http://slab.qq.com/news/tech/1293.html,有兴趣的可以自己去看看。
经分析,这个MBR文件跟上面链接中的应该是同一种,特征完全一致,我只是写了一点注释方便大家对照(顺便学习一下汇编,嘿嘿嘿)。
最后得出密码的十六进制是C6C6BDE2C4E3C2E8B1C6A8BAA8DEA4A2(嗯,我就不翻译了),所以最后困扰我的就是这个密码要怎么输入?经研究发现有人说用ALT+小键盘数字来输入,不过我没有小键盘(求好心人赞助。。。),试了其他方法也没有成功,这里希望能有大佬指教一下~
最后一个不算结束的结束吧。经(xiao)此(da)一(xiao)战(nao)之后,我的功力又有了不小的提升。以后还是要多练练手才能不生疏阿。
此次用到的程序文件我全都打包放到了附件中(点击原文下载),感兴趣的小伙伴可以下载研究,欢迎交流~
记一次MBR锁机病毒分析的更多相关文章
- Android最新锁屏病毒分析及解锁
一.情况简介 从去年开始PC端的敲诈者类病毒在不断的爆发,今年年初的时候手机上也开始出现了敲诈者之类的病毒,对这类病毒很无语也是趋势,因为很多时候病毒的产生是和金钱利益相关的.前天去吾爱破解论坛病 ...
- android黑科技系列——修改锁屏密码和恶意锁机样本原理分析
一.Android中加密算法 上一篇文章已经介绍了Android中系统锁屏密码算法原理,这里在来总结说一下: 第一种:输入密码算法 将输入的明文密码+设备的salt值,然后操作MD5和SHA1之后在转 ...
- Android版本的"Wannacry"文件加密病毒样本分析(附带锁机)
一.前言 之前一个Wannacry病毒样本在PC端肆意了很久,就是RSA加密文件,勒索钱财.不给钱就删除.但是现在移动设备如此之多,就有一些不法分子想把这个病毒扩散到移动设备了,这几天一个哥们给了一个 ...
- Android最新敲诈者病毒分析及解锁(11月版)
一.样本信息 文件名称:久秒名片赞,(无需积分s)(2)(1)(1).apk 文件大小:1497829字节 文件类型:application/jar 病毒类型:Android.CtLocker 样本包 ...
- [FreeBuff]Trojan.Miner.gbq挖矿病毒分析报告
Trojan.Miner.gbq挖矿病毒分析报告 https://www.freebuf.com/articles/network/196594.html 竟然还有端口转发... 这哥们.. 江民安全 ...
- Redisson 实现分布式锁的原理分析
写在前面 在了解分布式锁具体实现方案之前,我们应该先思考一下使用分布式锁必须要考虑的一些问题. 互斥性:在任意时刻,只能有一个进程持有锁. 防死锁:即使有一个进程在持有锁的期间崩溃而未能主动释放锁, ...
- apple iphone 3gs 有锁机 刷机 越狱 解锁 全教程(报错3194,3014,1600,短信发不出去等问题可参考)
以自身经历列步骤如下:(基本思路就是刷6.1.6,越狱,降级基带,解锁) 一.准备工作 1.下载3gs 6.1.6官方固件.地址:http://act.feng.com/wetools/index.p ...
- ReentrantLock之非公平锁源码分析
本文分析的ReentrantLock所对应的Java版本为JDK8. 在阅读本文前,读者应该知道什么是CAS.自旋. 由于ReentrantLock的公平锁和非公平锁中有许多共同代码,本文只会对这两种 ...
- 记录腾讯云中矿机病毒处理过程(重装系统了fu*k)
刚想学学kafka,登录与服务器看看把,谁知ssh特别慢,很奇怪,我以为是我网速问题,断了wifi,换了网线,通过iterm想要ssh root@x.x.x.x,但是上不去? 就tm的很奇怪了,登录腾 ...
随机推荐
- 迷你MVVM框架 avalonjs 沉思录 第1节 土耳其开局
#cnblogs_post_body p{ text-indent:2em; margin-top: 1em; } 正如一切传说的开端那样,有一远古巨神开天辟地,然后就是其他半神喧宾夺主.我们对最巨贡 ...
- redis客户端执行命令没反应
问题:redis-cli连接客户端后,执行命令没有反应 解决方法:通过指定一个开启守护进程的配置文件来启动服务,redis-server ../redis.conf 说明:redis.conf是我 ...
- 02-SSH综合案例:需求分析(后台)
1.1.7 用户模块:(后台) 不用添加了,添加的话在前台就注册了. 查询所有用户: 修改用户信息: 删除用户信息: 1.1.8 一级分类:(后台) 主要都还是增删改查的操作 查询所有一级分类: ...
- R_CNN
https://blog.csdn.net/briblue/article/details/82012575 背景本篇论文的题目是 <Rich feature hierarchies for a ...
- acer笔记本禁用或关闭触摸板
acer笔记本禁用或关闭触摸板 如果启用或停用AspireOne的触摸板? 如果您希望启用或停用触摸板,请同时按下功能键(Fn)key和F7键.屏幕上会显示触摸板是否已启用或已禁用.
- 滑动窗口的中位数 · Sliding Window Median
[抄题]: 给定一个包含 n 个整数的数组,和一个大小为 k 的滑动窗口,从左到右在数组中滑动这个窗口,找到数组中每个窗口内的中位数.(如果数组个数是偶数,则在该窗口排序数字后,返回第 N/2 个数字 ...
- C++ std::thread
std::thread Defined in header class thread The class thread represents a single thread of execution. ...
- 查看binlog的简单方法!
今天学到一个牛逼的东西,不用打开binlog文件就可以查看binlog里的event事件. 命令为:show binlog events in 'mysql-bin.000001' from 4 li ...
- AngularJs2.0
AngularJs2.0中文官网站发布了. 官网地址:https://angular.cn/ 官网点击任何中文地方都可以显示英文原文,中文文档暂时只有 TypeScript的,JavaScript和d ...
- 【转】Defunct进程 僵尸进程
在测试基于 DirectFB+Gstreamer 的视频联播系统的一个 Demo 的时候,其中大量使用 system 调用的语句,例如在 menu 代码中的 system("./play&q ...