恶意代码分析实战Lab3——01

第一步:查壳
在这里插入图片描述
显示无壳,但是根据图片信息可以看出,该程序是用汇编语言编写的
第二部步:查看函数信息
导入表只有一个函数:ExitProcess(因为是应用程序,所以不看导出函数)
在这里插入图片描述
第三步:IDA查看反汇编结果:
先查看字符串:
在这里插入图片描述
找到可以的字符串,查看交叉引用,显示无交叉引用,接下来看反汇编结果:
在这里插入图片描述
定位到关键函数,直接跳转过去,反编译失败,修改堆栈失败,采用动态调试的方式进行进一步的分析:
这里会遇到一个问题,就是在动态调试的过程中,会发现,再调试过程中,会出现访问地址为00000000的异常,导致程序崩溃,而程序本身又没有,异常处理函数,所以猜测可能是运行的平台不对(直接运行程序,也会崩溃),换XP系统再次尝试,事实证明XP上边可以跑起来,拖到XP上边进行详细分析:

OD详细分析:

1使用OD进行详细分析的时候,将文件附加进去之后,会发现在程序刚开始的时候会进行大量的异或和其他的运算,这里应该是解密代码,
举个例子:下边这个代码段的主要工作就是解密出要调用的API函数,然后循环执行这个过程,在解密之后调用API函数完成指定的任务:
在这里插入图片描述
解密后得到的API函数:
在这里插入图片描述
这个解密过程,是循环进行的,当揭秘完之后继续执行下一步操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行IsNTAdmin,检查当前用户是不是管理员用户,如果是返回True,反之 返回False,
在这里插入图片描述
创建互斥量:并且判断互斥量之前是否存在,如果已经存在退出程序.
在这里插入图片描述
获取系统System32目录的路径:
在这里插入图片描述
拼接目标路径:
在这里插入图片描述
路径比较,比较当前的运行路径是不是在系统目录下,如果是,退出程序
在这里插入图片描述
打开源文件:
在这里插入图片描述
获取源文件大小:
在这里插入图片描述
申请一块文件大小的空间
在这里插入图片描述
将文件读取到,刚才申请的内存空间里边:
在这里插入图片描述
关闭句柄,删除源文件
在这里插入图片描述
创建一个新的文件,文件名字为:vmx32to64.exe ,在System32路径下
在这里插入图片描述
把之前存储在内存空间里边的数据写入到新建的文件中去:
在这里插入图片描述
接下来的操作就是对注册表的操作:包括以下几个步骤:
1、打开目标注册表项
2、设置目标注册表项的值
3、关闭注册表的句柄
在这里插入图片描述
设置注册表项的值,关闭句柄;
在这里插入图片描述
根据以上对于注册表的操作,可以知道,该程序将自己加入注册表的启动项
创建互斥体:(第二个互斥体)
在这里插入图片描述
加载DLL模块(ws2_32):这个时候 应该意识到,这个病毒程序将会产生恶意的网络连接
在这里插入图片描述
获取网络链接的相关函数,本程序通过循环来完成这个工作:
在这里插入图片描述
初始化;
在这里插入图片描述
修改字节顺序:
在这里插入图片描述
接下来的操作就是一系列的socket函数的操作
在这里插入图片描述
之后就是一直重复这个操作(没重复一次,调用一次sleep函数,也就是说每隔一段时间就与指定的URL产生网络链接)

总结

1、在静态查看字符串信息的时候,七十九可以大致所定该恶意程序的主要活动
2、在碰到不能反编译的时候(先修改栈帧,如果修改不好),尝试动态调试
3、动态调试的过程中,注意要点,碰到加解密的函数直接跳过即可,重点是看解密之后的结果是什么
4、这个程序虽然在查壳的时候没有壳,但是在实际动态调试的过程中,感觉前边的一系列解密指令以及实现原理和壳很类似,但是如果不是必须的话,加解密的函数直接跳过查看解密之后的结果
5、动态调试的过程中,碰到在调试过程中,访问00000000这类的非法地址的时候。如果程序本生也没有异常处理函数,这个时候要想一下,是不是运行平台的问题,换一个运行平台尝试一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值