前言

样本分析过程思路来源:套娃式的FormBook家族样本对抗部分分析
本文仅扩充一些分析过程中省略的技术细节,适合分析小白食用

使用到的工具

dnspy-release-win32
de4dot
包括中间分析文件

分析

根据dnspy反编译的结果,可以看到具有大量的混淆:

将样本使用de4dot解混淆:

PE1

入口点和绝大数使用C#编写的PE Loader一样,为运行一个窗口,加载类0中的KeysOrderedAcrossPartitions string对象将该string对象进行url解码,该对象是保存在资源之中,将解码后的资源进行load,调用其Buta导出方法

编辑类方法获取程序集(记得保存后退出重新打开程序集,如果不这样的话,调试的箭头实际上是指向原来的代码的,代码实际上没有变化)

对应的C#代码:将URL解码的字节流输出到文件

public void method_1()
{try{Stream stream = new FileStream("C:\\Users\\ysnb\\Desktop\\test.dll", FileMode.OpenOrCreate, FileAccess.Write);byte[] array = HttpServerUtility.UrlTokenDecode(Class0.KeysOrderedAcrossPartitions);stream.Write(array, 0, array.Length);}catch{Thread.GetDomain().Load(HttpServerUtility.UrlTokenDecode(Class0.KeysOrderedAcrossPartitions)).GetTypes()[0].GetMethod("Buta").Invoke(null, this.qqqqqqqqqqqqqqqqqqqqqqqqqqqqq);}
}

PE2

同样使用de4dot解混淆,找到buta方法,可以看到是一个死循环,整体case的顺序为default、6、4;然后退出进程

为了能够跟踪dll调用,我们需要将dll程序集合并到PE1的程序集,右键域合并程序集选择de4dot处理过的PE2即可(记得保存文件后退出,在ns0中可以看到Jarico类),使用相同的参数调用Buta方法

Buta中有一个sleep,可以注释掉跳过

会将资源中的cXRsF进行读取后解密调用dll导出方法Kuchi解压缩,得到一个PE文件

还是同样的方法,编辑类将字节流输出到文件

之后会无参加载这个PE文件,第二阶段结束

PE3

使用de4dot去混淆。在main函数之前会先初始化一些环境、初始化一些静态类的静态变量。其中第二个类会解密获取一些配置字符串和解密资源得到一个PE文件,资源名叫做”UxllYqyI”。

解密函数1:先将“NAzjGQJblQU”转为unicode字符串数组bytes,后取出资源文件中最后一个字符亦或112赋值为num2,然后将资源文件中每个字符亦或上num2再亦或之前的bytes中的对应字符bytes[num],num<= bytes的长度

解密函数2:一个简单的循环亦或,解密函数2完成后才能得到真正的PE文件

右键保存至文件即可


process hollowing修改.text段,将刚刚解密的PE文件的Text段对重启的进程替换空间中的.text段

某个三层壳保护的FormBook样本提取相关推荐

  1. 如何解决恶意APK中常见的Native代码加壳保护

    导语:在分析恶意软件时偶然会发现受Native代码加壳保护的APK,本文将介绍如何解决恶意APK中常见的Native代码加壳保护. 在分析恶意软件时偶然会发现受Native代码加壳保护的APK,大多数 ...

  2. JAVA加壳保护之JarProtector的使用小记

    JAVA加壳保护之JarProtector的使用小记 一.关于JarProtector JarProtector 工具下载链接 二.使用过程小记 1.工具下载&工具搭建 2.工具使用 3.工具 ...

  3. 新发的日常小实验——使用.NET Reactor对.NET程序进行加壳保护(反编译、加壳、混淆)

    文章目录 一.前言 二.关于.Net Rector 三..Net Rector下载 四..Net Rector的简单使用 1.主界面 2.选择程序及(.exe) 3.Quick Settings(快速 ...

  4. 网易云加密--Android安卓移动应用程序加密加壳保护方案防破解防逆向分析防游戏外挂

    网易云加密--Android安卓移动应用程序加密加壳保护方案防破解防逆向分析防游戏外挂 一.服务简介 网易云加密为网易公司旗下产品,致力于为移动应用程序提供专业保护方案,让加固变得更简单,一键搞定.目 ...

  5. 逆向OD分享-过检测插件-可过VMP等壳保护检测

    很多新手在入门逆向的时候一般都是用的吾爱OD.吾爱OD现在已经很久没有更新了,新手使用此OD破解一般过不去VMP壳的保护,因此需要一个过检测OD来辅助破解,这里我分享一个我自己用的OD 希望能对你们有 ...

  6. 全国大学生信息安全竞赛三等奖virusTotal论文展示

                                                            基于API调用行为的二进制通用脱壳方法 注:本人去年参赛的作品,欢迎大家对不足之处提出宝 ...

  7. 木马病毒隐身穿墙术解密之修改特征码和加壳

    木马病毒隐身穿墙术解密之修改特征码和加壳 作者:比特网 | 比特网 本文关键词:安全 病毒 木马 现在,木马病毒在各种安全防范措施的拦截之下,依然没有任何减少的迹象,甚至还在向更多的方向发展.在防范木 ...

  8. 由浅至深,谈谈.NET混淆原理 -- 五(MaxtoCode原理),六(其它保护方法)

    新一代NET代码保护工具 MaxtoCode 的原理简介 MaxtoCode作为新一代保护工具,他有绝对优于目前所有NET代码保护工具的强度,是目前最保护强度最高的解决方案.但它也有缺点,最大的缺点即 ...

  9. 什么是壳 - 脱壳篇01

    什么是壳 - 脱壳篇01 让编程改变世界 Change the world by program 壳 在自然界中,植物用壳来保护种子,动物用壳来保护身体,我们人类没有壳,但我们有衣服,房子也起到了壳的 ...

最新文章

  1. PHP+Mysql数据库操作简类
  2. Java 性能优化系列之3.2[JVM调优] --- JIT即时编译
  3. WEB渗透之对于开了3389远程连接不上的总结
  4. Hadoop pipes设计原理
  5. python秒数转化为时间用户jianpang_Python中文转为拼音
  6. Cobar分布式关系型数据库中间件的简单应用
  7. [APP] Android 开发笔记 001-环境搭建与命令行创建项目
  8. 安全套接层Secure Sockets Layer,SSL
  9. 牛客网 在线编程 局部最小值位置
  10. C++ int与string的转化
  11. 【OS学习笔记】四 什么是虚拟机
  12. Debian 10 使用 rz sz 命令
  13. Sloth演示程序及源代码发布
  14. 彩色二维码可识别性比较
  15. 字节跳动校招题目——找零问题
  16. 大厂程序员裸辞,全职接单一个月的感触!
  17. 机器学习算法工程师到底应该学哪个编程语言?
  18. python虚拟环境——pipenv
  19. 【Kubernetes系列】Pod
  20. 程序员的逆袭之路---从沉迷游戏到入职腾讯的全过程

热门文章

  1. 大数据,并非越大越好?
  2. java mssql jdbc_spring配置mssql的jdbc驱动
  3. 2. Vue 的应用方式
  4. Java 函数优雅之道
  5. 理解WEIBO源码(一)
  6. 用Python绘制表白代码
  7. LBS应用的兴趣点与名称搜索
  8. OpenCV图像特征匹配
  9. NDSS加州交通学校课程线上100%及批准
  10. 一站式WPF--Window(一)