formbook脱壳记

本文为看雪论坛优秀文章
看雪论坛作者ID:大河向东流哇
formbook简介
最近看了个formbook的木马,整理了一下笔记作为学习使用。我将formbook分成两个部分,上半部分是C#部分(可以看作他的壳),下半部分是后门部分。我用2种方法获取到最终的后门,记录一下。
第一种方法
第一层 .exe


找到了关键位置,创建新对象。

最后发现这个位置并不是真正的调用第二层的地方,作用是load函数加载资源和解密资源。



出来之后继续跟:
在invoke里面可以看到调用的模块的函数。

进入模块内断下来:

第二层:

调用第三层模块的函数


第三层释放的c++

然后dump下来 就是后门部分。
第二种方法
第一层
在解密完资源之后直接在内存中用去混淆后的pe进行替换。


method_12:


这里涉及到一个知识点,如何在C#中使用内嵌资源文件。(http://t.zoukankan.com/vic_lu-p-2055613.html)
1、常用方法:pictureBox1.Image = Properties.Resources.Correct;
2、使用 ResourceManager 类的方法(该样本中使用的就是此种方法):
1)首先获取一个 ResourceManager 类的实例:
①ResourceManager resourceManager = newResourceManager("资源名称", Assembly.GetExecutingAssembly());
②ResourceManager resourceManager = newResourceManager(typeof(About));//此样本所采取的方法
③ResourceManager resourceManager = Properties.Resources.ResourceManager;
2)通过 ResourceManager 类的 GetObject() 方法:
Object target = resourceManager.GetObject("资源文件名");
3、反射法
4、资源文件读取类
1、删除原有资源

2、创建新资源,命名为Rara3

3、将新资源指向去混淆后的第二层dll

创建好的空白资源Rara3

4、因为第二层dll已经去混淆了,所以第一层里面的解密函数可以直接删掉

解密函数

右键-编辑类-删除解密部分,直接返回数组,让他怎么进来就怎么出去。

然后文件-保存模块!这步很重要,不然就白操作一通了。

这么做的目的是因为c#不能直接调dll,而第二层是带混淆的,如果想调没有混淆的dll就需要进行资源替换。
然后开始调试,在第二层入口下了断点之后发现可读性更强了。
第二层:


解密资源名:


保存好后重新调试,进入第二层dll:
第二层的目的依旧是加载并解密资源,调用第三层。


第二层各个函数的含义如下:

看雪ID:大河向东流哇
https://bbs.pediy.com/user-home-878276.htm
# 往期推荐


球分享

球点赞

球在看

点击“阅读原文”,了解更多!
[广告]赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- KaiwuDB分布式、多模融合,支持原生AI的数据库产品
- Sectigo
- 华为坚定赋能、使能伙伴 携手共赢商业市场
- CSDN 蒋涛对话阿里达摩院周靖人:魔搭社区,让天下没有难用的 AI 模型
- 突发!Google 最大数据中心发生爆炸,三名技术人员受伤
- 历史上的今天:人类登上月球;数据仓库之父诞生;Mac OS X Lion 发布
- 华人女婿小野三太成密西根大学首位亚裔校长,年薪超650万!
- 人物 | 杜建荣:安全就是等待谜底揭晓的推理现场
- 阅读代码也是一种技能
- 软件工程师安德烈·梅萨加冕 2021 世界小姐冠军
- 平均月薪 21.8k、中国开发者占比最高,揭晓 Go 语言真实现状!
- 想学习Python,这套教程再适合你不过了!
赞助链接