Safengine Shielden v2.3.7.0 驱动脱壳 您所在的位置:网站首页 自动脱壳软件 Safengine Shielden v2.3.7.0 驱动脱壳

Safengine Shielden v2.3.7.0 驱动脱壳

2024-01-01 13:29| 来源: 网络整理| 查看: 265

前言:

   之前找工作的时候,注意到有个公司找windows驱动开发/逆向工程师,所以他们公司产品里面应该包含有驱动程序(呐,必须的学习一波)。首先,安装他们公司的相关产品,然后找到里面的驱动文件;一看驱动文件几百k,应该是加壳了(Safengine Shielden v2.3.7.0)。如下图:

脱壳过程:

   文件丢进ida里面发现没法看,脱壳当然是不会脱壳的。嗯,先把驱动跑起来吧。创建服务,启动服务;驱动成功跑起来了。驱动程序运行之后,对应的会有一些数据产生:1,通过winObj类似工具,可以发现在driver目录下面有一个以服务名为名称的驱动项(一个DriverObject) 2, 写过驱动程序的应该了解,DriverObject数据结构里面包含有很多数据,例如驱动名称,驱动模块地址,MajorFunction数组等;直接通过winObj查看DriverObject的资源,定位MajorFunction函数数组,惊人的发现,相关函数已经被还原了(大喜).

    既然代码已经被还原了,直接通过winDbg把相应的代码段给dump出来(.writemem 文件路径 内存起始地址 长度)。dump 文件的大小一般是原驱动文件大小的10分之一左右,如果原加壳驱动文件大小640k,实际加壳之前应该不会超过64k。

修复文件:

 dump出来的代码片段中,调用系统api的地方是加壳程序修改的,变为call 立即数等形式。不过,dump出来的文件中立即数里面保存了当前系统api的地址,然后,直接在winDbg中,输入"u api地址“,winDbg会自动识别对应的api函数名称。以上相当于修复了pe文件的导入表。

驱动利用:

 这个驱动写的就行一个马一样,太邪恶了。已知可以进行提权利用:替换进程token.如下图,在win 10 1909中:

 

 总结:

网上传闻,SE 不是强壳吗?怎么这么容易就被干了。不知道是不是加壳的人没有设置好,导致SE没有发挥应有的效果(不应该啊)。哈哈,后面分析发现该驱动逻辑写的还是可以的。

***********************************************************************************************************

后续分析发现,这个驱动应该是这样设计的,因为里面的接口都是这种模式。

在vt上的结果:

在win11 (22000. 318)上驱动无法加载,错误如下图:

2022.02.16

经测试发现,在win11上无法加载该驱动是因为开启了secure boot;如果关掉secure boot,该驱动可以被加载。(在18363,22000上测试过)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有