学习札记
记对“白加黑”恶意样本的分析
通常“白加黑”是通过两项及以上文件配合达成的,恶意的dll去捆绑一个正常的exe程序来激活dll文件,由于在windows程序设计中会把一些功能放dll里执行,并不会验证其身份的真实性,从而达到利用。
当解压的时候发现有三个文件,而解压后发现只有两个文件,打开隐藏项目显示,发现dat。
而这个所谓的截图类型为lnk,后缀名却是bmp,利用工具进一步查看分析。
发现是利用windows rundll32.exe 来调用这个reg.dll 利用工具开启对rundll32.exe的监控,并启动截图bmp.lnk
可以发现这个截图bmp的文件调用顺序进有一半分析,查看进程发现有新进程QQgame的出现,找到文件夹对这些文件进行动态分析,查看数字签名后发现有的MD5值是相同的或是并不具有数字签名,经过过滤以及判断得到初步黑白文件的区分,接下来对HD_Comm进行分析。
发现upx字符以及导出表怀疑有壳,使用upx 进行脱壳,脱壳后拖入IDA,从字符串开始分析(shift F12)。
在这里先找到了config.dat 再之前的隐藏文件夹以及通过动态分析找到的文件夹内都有这个config.dat,对其使用交叉引用(ctrl x)。
通过对函数调用的分析可以发现这里打开了文件后,又去获得这个文件的大小、进程句柄、以及它的分配空间,紧接着下边调用了一个函数。
p8
打开发现这里的循环体类似解密,往上有个除法操作,那么再往上去寻找eax,发现这里的赋值是由arg_8决定的。
p9
找到arg_8,返回p8的位置 从调用函数网上看可以发现这里的入栈操作,最后得到的参数是18h也就是十六进制的18。
那么就大概可以知道p9里循环体的大致解密过程了,先用十六进制的18除以十六进制的9后得到余数18,再用这个余数加上0x8,及dl的值为十六进制的20,尝试手工解密得到本体。
!小彩蛋 !
事在人为,路在人走。
END

