恶意代码分析实战Lab1701

IDA -> main -> Name字符串,HGL345,很明显,这个程序我们之前分析过,特征字符串

这次的分析目的不一样,是要patch掉反虚拟机技术,从而使得代码运行起来

根据书中17.2.5反虚拟机的x86指令一节,如下指令:

sidt,sgdt,sldt,smsw,str,in(第二个操作数被设置为VX),cpuid

恶意代码通常并不运行这些指令,除非它们执行VMWare检测

在IDA的汇编中显示出来标红,可能是asm汇编嵌入C中,导致这部分代码逻辑和其他代码不一样

 

在main入口运行findAntiVM.py

from idautils import *
from idc import *

heads = Heads(SegStart(ScreenEA()), SegEnd(ScreenEA()))
antiVM = []
for i in heads:
	if (GetMnem(i) == "sidt" or GetMnem(i) == "sgdt" or GetMnem(i) == "sldt" or GetMnem(i) == "smsw" or GetMnem(i) == "str" or GetMnem(i) == "in" or GetMnem(i) == "cpuid"):
		antiVM.append(i)

print "Number of potential Anti-VM instructions: %d" % (len(antiVM))

for i in antiVM:
	SetColor(i, CIC_ITEM, 0x0000ff)
	Message("Anti-VM: %08x\n" % i)

结果如下:

Number of potential Anti-VM instructions: 3
Anti-VM: 00401121
Anti-VM: 004011b5
Anti-VM: 00401204

 

在cmd中运行程序,发现程序一直在跑起来,没有检测到

分析sidt:

sidt指令如果检测成功,该程序会立即删除自身

str指令检测成功,恶意代码将不会创建Malservice这个新服务

当sldt检测成功时,函数返回值不为0xDDCC0000,即不执行多线程操作

 

 

问题1:恶意代码使用了什么反虚拟机技术

 

问题2:运行IDApy脚本,结果是什么

 

问题3:每种反虚拟机技术成功执行后会发生什么

 

问题4:哪些技术生效,原因是什么

在我的机器上都没有生效,可以双击或cmd运行

问题5:怎么使得这些反虚拟机技术失效,从而让恶意代码运行

全部NOP即可

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值