GrandCrabV2.0初步分析(一)
本帖最后由 hercs 于 2018-8-23 23:59 编辑概览
这个病毒有很多比较妖的操作,我们这次先来把他加载运行部分分析一下。
母体分析
一上来会有几个大的循环,很费时,这是为了迷惑分析员,我用od下断点跑,跑了半天没断下来,当时还以为跑飞了。。。后来看伪代码才明白。
之后就会动态获取GlobalAlloc,然后读资源,加载到分配的内存中,然后修改属性,顺便说一下这个动态获取VirtualProtect的操作是放在一个933582的循环中运行的,只有当300601次循环才会运行,其他的都是迷惑人的,这病毒太坑爹了。。。
改变属性后,便会运行解密的代码,dump一下,发现是shellcode
shellcode分析
先放od里跑一跑
通过数据跟随就会发现这些很长的数字其实就是字符串,这些操作都是动态获取api然后存到栈上。
od会在注释里给你自动显示出来动态获取的api,这里我们看见他调了VirtualAlloc,记下栈中的分配大小和返回的分配基址,我们先数据窗口跟随到分配基址处,之后发现他又会调用一个函数,运行完后分配的基址就成了一个PE文件了
后面就是内存加载了,汇编写的,看着头晕,我就不截图了。
内存加载后就会运行这个PE文件
其实后面他还会再搞个PE出来,为了不混淆,我们给排个号这个dump出来的我们就叫Dll1
Dll1分析
上来就是个解密
解密完就是加载了,这里面有个获取导出函数的函数
点进去看就会发现有个字符串比较的操作,一猜就是遍历导入表,函数操作还原如下
注释已经很清楚了我就不解释了,接下来就是调用这个导出函数了,这就要进入他解密出来的dll里分析了,还是老套路我们先dump出来,拖到ida。
Dll2分析
这个主要是反射注入,先要通过RetAddress来获得当前指令下一条指令地址,然后向上迭代直到找到PE头
然后就是运行shellcode来获取api了
然后修复复制区段
修复IAT
修复重定位
最后运行dllmain跑起来
好了,这下终于把病毒跑起来了。
学习了,谢谢分享 谢谢分享 难得发布新的知识谢谢 感谢分享!学习一下 那个pe都掏出来了,直接分析下功能? 内容 有点多,我要慢慢学,谢谢楼主分享! 谢谢分享 可不可以帮忙分析一下我的这个病毒https://www.52pojie.cn/thread-799697-1-1.html 内容 有点多,我要慢慢学,谢谢楼主分享!
页:
[1]