前言

样本来源Twitter,之前的文章已经完整分析过一个类似的DLL样本,这次做个简单记录。

样本分析

样本信息如下:

DLL文件共有40个导出函数:

导出函数内容基本一致,恶意代码都在DllMain函数中实现:

执行后首先获取当前模块基址并解析PE文件:

然后通过Hook IAT(导入地址表)地址执行恶意功能函数:

备注:这里多了一个Hook操作,此前样本是直接读取资源数据加载执行的。

获取”LOGS”资源数据,申请缓冲区后跳转到Shellcode执行:

Shellcode执行后会通过多了Loop指令边执行边解密后续代码:

调试的时候会有很多这样的循环代码结构,不用单步跟踪直接在循环结束的地方下断F9运行就可以:

或者顺着代码一直往下寻找像这样的动态CALL指令调用,快速定位关键代码:

解密完成后Shellcode会动态调用API创建线程关联服务主函数:(线程参数就是服务控制函数地址)

然后从”C:\Windows\Temp\gh943h.tmp”文件中读取数据:
备注:正常情况下该文件会包含经过加密的Shellcode数据,但是由于该文件由其它模块组件释放,如果只有当前DLL样本的话是无法获取后续载荷的。
这里就不往下分析了,后续的操作可以参考之前的分析文章

总结

分析Shellcode的时候可以在关键的地方多打几个快照,然后对几个常用API函数下断,根据当前环境上下文大胆猜测后续可能执行的功能细心求证,这样可以节省时间加快分析效率。

IOCS

MD5:3aac297222bd691edb2b9c3ccb5b7e4c

最新文章

  1. UILAbel 设置了attributedText 后省略号不显示
  2. 优化SqlServer--数据压缩
  3. 求二叉树的深度和宽度[Java]
  4. linux 远程 windows 命令:rdesktop vs windows mstsc
  5. Xampp 添加 SSL
  6. Firefox浏览器设置字符编码格式
  7. 1051 Wooden Sticks
  8. 【甘道夫】HBase基本数据操作的详细说明【完整版,精绝】
  9. java_IO读写模版
  10. 微信小程序环境搭建
  11. HDU 4085 Steiner树模板称号
  12. c++ Constructor FAQ 继续
  13. CHD 2015迎新杯题解
  14. class path resource [config.xml] cannot be opened because it does not exist
  15. Git版本管理荟萃
  16. TypeScript 异步代码类型技巧
  17. JavaScript 版数据结构与算法(二)队列
  18. pandas小记:pandas高级功能
  19. Socket编程实践(6) --TCP服务端注意事项
  20. Spring MVC(二)基于标注的MVC

热门文章

  1. Android版本历史
  2. SSD1306 屏幕使用-Micropython
  3. centos NTP时间同步
  4. C++11之线程库
  5. vim多视窗操作
  6. 【Windows】Microsoft Store 应用列表
  7. 如何让一个 div 左右各空一定距离然后 div 占满剩下的宽度?
  8. 5-6:实现多窗口之异常(AttributeError: 'list' object has no attribute 'click')
  9. C# List 分页代码
  10. 在Vue中实现app拍照-选取本地图库-图片上传成功后预览