首页
社区
课程
招聘
[原创]使用模拟器进行x64驱动的Safengine脱壳+导入表修复
发表于: 2019-2-7 11:21 24335

[原创]使用模拟器进行x64驱动的Safengine脱壳+导入表修复

2019-2-7 11:21
24335

近日闲的蛋疼发现一款某地外挂被火绒爆勒索,本来准备安排一哈它的勒索功能

 结果发现sys直接明文存放在exe里,我也懒得花钱,遂dump之





IDA看了下发现是Safengine Shielden v2.4.0.0




直接加载sys后发现往afd.sys挂了一个注册表回调,回调入口是跳板



由于驱动直接加载会返回C0000001导致立刻被卸载,无法直接dump


于是改用模拟器加载并在真实DriverEntry处dump整个sys内存:


经过调试发现Safengine保护的驱动会使用DriverObject->DriverSection进行PsLoadedModuleList的遍历并修复导入表


如果在模拟器中给上假的 DriverSection会导致SE访问到非法内存




于是我们给模拟器补上自己伪造的 PsLoadedModuleList和 DriverSection :




DriverObject.DriverSection = (PVOID)m_DriverLdrEntry;

补完后可以正常执行到真实入口点,可以看到这个sys执行的第一次API是RtlInitUnicodeString



我们定义代码从加壳sys的.sedata/.vmp节执行到.text 或INIT 就算进入真实入口点
bool bIsUnknownSection = (0 == memcmp((char *)SectionHeader[i].Name, ".text\0\0\0", 8) 
|| 0 == memcmp((char *)SectionHeader[i].Name, "INIT\0\0\0\0", 8)) ? false : true;

bool bIsUnknownSection = (0 == memcmp((char *)SectionHeader[i].Name, ".text\0\0\0", 8) 
|| 0 == memcmp((char *)SectionHeader[i].Name, "INIT\0\0\0\0", 8)) ? false : true;

if(currentModule == ctx->m_ImageBase && ctx->m_IsPacked && !ctx->m_ImageRealEntry)
{
	FakeSection_t *section = NULL;
	if (ctx->FindSectionByAddress(address, &section) && !section->IsUnknownSection)
	{
		ctx->m_ImageRealEntry = address;
	}
}

if(currentModule == ctx->m_ImageBase && ctx->m_IsPacked && !ctx->m_ImageRealEntry)
{
	FakeSection_t *section = NULL;
	if (ctx->FindSectionByAddress(address, &section) && !section->IsUnknownSection)
	{
		ctx->m_ImageRealEntry = address;
	}
}

至此,我们可以完整dump出刚刚进入真实入口点时的加壳驱动

virtual_buffer_t imagebuf(ctx.m_ImageEnd - ctx.m_ImageBase);

uc_mem_read(uc, ctx.m_ImageBase, imagebuf.GetBuffer(), ctx.m_ImageEnd - ctx.m_ImageBase);

FILE *fp = fopen("dump.sys", "wb");

fwrite(imagebuf.GetBuffer(), ctx.m_ImageEnd - ctx.m_ImageBase, 1, fp);

fclose(fp);

virtual_buffer_t imagebuf(ctx.m_ImageEnd - ctx.m_ImageBase);

uc_mem_read(uc, ctx.m_ImageBase, imagebuf.GetBuffer(), ctx.m_ImageEnd - ctx.m_ImageBase);

FILE *fp = fopen("dump.sys", "wb");

fwrite(imagebuf.GetBuffer(), ctx.m_ImageEnd - ctx.m_ImageBase, 1, fp);

fclose(fp);

对比加壳sys和dumpsys可以发现 safengine使用了代码自修改





从区段自带可写入属性就可以看出这一点




[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-2-7 11:24 被hzqst编辑 ,原因:
上传的附件:
收藏
免费 12
支持
分享
打赏 + 3.00雪花
打赏次数 2 雪花 + 3.00
 
赞赏  demoscene   +1.00 2019/02/10 精品文章~
赞赏  junkboy   +2.00 2019/02/07 感谢分享~
最新回复 (30)
雪    币: 2435
活跃值: (725)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
表哥安排!
2019-2-7 11:23
0
雪    币: 5734
活跃值: (1737)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
表哥牛批
2019-2-7 11:31
0
雪    币: 7921
活跃值: (4659)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
高深莫测 ,此贴必火
2019-2-7 12:46
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
5
厉害
2019-2-7 13:10
0
雪    币: 1085
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bxb
6
大过年的,不好好过年非要研究代码,表哥新年快乐!
2019-2-7 13:19
0
雪    币: 123
活跃值: (316)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
大表哥你好,大表哥再见

,看不懂
2019-2-7 13:24
0
雪    币: 231
活跃值: (2631)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
牛b
2019-2-7 14:00
0
雪    币: 3277
活跃值: (1992)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这类技术贴碉堡了。
2019-2-7 15:23
0
雪    币: 6314
活跃值: (952)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
表哥牛批
2019-2-7 19:56
0
雪    币: 2605
活跃值: (5058)
能力值: ( LV9,RANK:225 )
在线值:
发帖
回帖
粉丝
11
表哥(楼上都这么称呼,我也跟个风)安排得明明白白!
最后于 2019-2-9 22:35 被天水姜伯约编辑 ,原因:
2019-2-9 22:34
0
雪    币: 739
活跃值: (3390)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
12
真牛批!
2019-2-11 10:52
0
雪    币: 351
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
楼主厉害了
2019-2-11 15:52
0
雪    币: 221
活跃值: (2306)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
楼主厉害了
2019-2-11 20:50
0
雪    币: 284
活跃值: (3579)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
15
Unicorn PE 666
2019-2-12 00:14
0
雪    币: 293
活跃值: (287)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
表哥牛的一批
2019-2-12 11:29
0
雪    币: 73
活跃值: (923)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
看的迷迷糊糊的,Mark下,回头仔细看
2019-2-12 11:42
0
雪    币: 228
活跃值: (115)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
18
太溜了
2019-2-13 00:07
0
雪    币: 5299
活跃值: (3689)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
19
学习了
2019-2-13 07:14
0
雪    币: 1266
活跃值: (1307)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
大佬,你那个标题写着反汇编器的软件是啥啊?分享吗
2019-2-17 23:40
0
雪    币: 62
活跃值: (971)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
22
我能在ImageNotify中dump sys的内存吗?
2019-3-28 19:51
0
雪    币: 171
活跃值: (514)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
sudami 厉害[em_63]
我擦,惊现大米~~
2019-11-20 13:23
0
雪    币: 4711
活跃值: (4224)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
nb 膜拜 大黄狗
2019-11-25 23:33
0
雪    币: 1129
活跃值: (2731)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
这是真的牛皮
2019-12-3 09:19
0
游客
登录 | 注册 方可回帖
返回
//