FSD's Inline Hook & EAT modify check Completed

aap打开其他app 使用intent 通过某个app打开另一个app 立即下载

 

 瞎折腾个半天,太菜, 之前也没怎么搞过检测程序,于是匆匆逆了下几个无壳的ARK,结合R3和R0,加上自己的一些总结,胡弄了个DEMO. 目前仅仅是遍历检测ntoskrnl.exe' EAT(没加SSDT), 对于fastfat.sys/ntfs.sys/disk.sys等模块还没有检测,不过弄起来也很快, 支持对未导出函数 、Push+ret 等的HOOK检测,不过很脆弱,后期继续加强检测算法,eg:非分页内存,多级跳,XX...

 

<1.> 文件系统有几个模块:ntfs.sys/fastfat.sys 、atapi.sys、disk.sys(无分发例程) ...

检测思路如下:
驱动加载(还原一些HOOK),将系统的部分重要模块(eg.ntoskrnl/disk.sys/...)拷贝到TMP目录中
分析PE文件,重定位后获得各个模块的Origal dispath address,保存至全局变量中.R3在scan时发
IOCTL(随机)得到这些原始地址,和当前的内存地址对比分析,结合一些引擎和算法,得到inline hook
的情况.

效果如图:

ps: 调试中发现:
1. 有些时候发IOCTL,自定义函数不会执行,因为此时不是系统进程.即使attach到Winlogon.exe等
系统进程,再调用某些函数,依然不行.具体原因俺也不是很清楚,于是乎只好在DriverEntry处调用
某些自定义函数...

2. 遇到错误,要学会快速的锁定出错位置,逐渐缩小搜索范围...总之,调试过程中也能提高积累不少
经验(不过VS 2005中 偶基本只会F5->F9/F10 =.-|)

----------------------------------------------------------------------------------------------------------

<2.> 玩了几天游戏,又写了点儿代码,增加了对ntoskrnl' EAT Modify的检测,思路很简单,遍历内存中该模块的EAT,和PE重定位后的进行比较. 地址不相同,即使EAT HOOK,显示出来即可:

<3.> 接着就是遍历每个进程的IAT,对其中一些重要的DLL进行检测,是否存在IAT HOOK,思路同上,只是效率问题,还有就是要确保所有的隐藏DLL得揪出来;遍历其他模块[eg.sys]的IAT...

<4.> INT系列、ObJect hook、attached Device等等

 

 

 

有些时候发IOCTL,自定义函数不会执行,因为此时不是系统进程.即使attach到Winlogon.exe等
系统进程,再调用某些函数,依然不行.具体原因俺也不是很清楚,

attach到winlogon和不attach有什么区别?

倒是开个SystemThread(PsCreateSystemThread)在SystemThread里面执行会有区别

 

tem 进程貌似是不能 attach 的. 会产生 INVALID_PROCESS_ATTACH_ATTEMPT 的 bugcheck

另外, original dispatch routine 是从 DriverEntry 中获得的吗?

 

从PE文件搜索即可,然后重定位.

对于IAT,扫描起来就简单了

 

APP_download APP开发的下载部分代码,从服务器上下载文件并存储到手机SD卡中的实现代码。 立即下载

相关推荐

PCIe Electrical PHY(4)-PCIE SPEC第8章指标讲解

1.1 PCIE TX SPEC TX主要关心两类参数,一类是Voltage Parameters,一类是Jitter Parameters。 其中Voltage相关参数主要关心不同preset下差分电压幅度的准确性。以及共模电压的稳定性。 PCIE spec中对Jitter相关的参数测量定义如下: 分为两大类:DDJ(Data dependent Jitter)和UJ(Uncorrelated ...

maxwell2ic的博客 5951

Windows驱动学习(六)-- FSD钩子

教程参考自:https://www.bilibili.com/video/av26193169/?p=8 代码地址:https://github.com/G4rb3n/Windows-Driver/tree/master/MT_FSDHook 1. 概述 FSD钩子是一种较实用的过滤方法,对比于上一章的添加键盘过滤设备,这种方法更显得简单高效。 2. 驱动编写 2.1 驱动入口函数 入口函数简单明...

安全杂货铺 2748

树莓派4B串口舵机控制全攻略:从pigpio库安装到Python脚本调试

本文详细介绍了如何在树莓派4B上通过pigpio库和Python脚本实现串口舵机的精确控制。从硬件串口配置、pigpio库安装到舵机通信协议解析和Python脚本开发,提供了完整的解决方案和调试技巧,适用于机械臂控制等实际项目应用。

k8s6orchestrator的博客 430

FSD HOOK与SSDT HOOK恢复简单思路

FSD 解释: File System Driver文件系统驱动程序,分为本地FSD和远程FSD。 (1) 本地FSD:允许用户访问本地计算机上的数据 ——本地FSD负责向I/O管理器注册自己,当开始访问某个卷时,I/O管理器调用FSD来进行卷识别。 ——完成卷识别后,本地FSD创建一个设备对象以表示所装载的文件系统。 ——I/O管理器通过卷参数块(VPB)在存...

weixin_34292924的博客 401

WPF插件架构-如何动态加载封装好的第三方DLL的界面

插件架构中如何自动加载第三方DLL中的UI界面

lg24k的博客 1882

[LVGL]:MACOS下使用LVGL模拟器

[LVGL]:MACOS下使用LVGL模拟器

LINKKEEE的博客 2456

note : IRP hook on R0

IRP hook 以FSD Hook 为例, Hook和UnHook的操作, 在DeviceIoControl中响应. Hook 处理 /// @file Fsd.h /// @brief FSD(\\FileSystem\\Ntfs) 处理 #ifndef __FSD_H__ #define __FSD_H__ #include #include "

博客标题不能为空 1957

整车无线布置的综述

车载无线功能日益丰富,涵盖5G、GNSS、V2X等多种技术,布置需兼顾性能与美观。车顶是理想位置,鲨鱼鳍、后视镜等集成方案可优化空间。需考虑射频电缆损耗、GNSS天线视角、V2X全向覆盖等关键因素。整车测试需适应高频段需求,通过链路预算和互补天线设计优化信号。不同车型需定制方案,并注意抗干扰和多频段兼容性。(149字)

Godspeed_zwh的博客 1858

简单的INLINE HOOK检测

/*  @desc:目前只检测最简单的两种inline hook,对IAT HOOK,CALL HOOK和深层次的INLINE HOOK没检测。  @desc:最好的恢复方法是先恢复IAT HOOK,然后从函数所在文件中提取函数机器码与内存中对比,不同则恢复之  @param1[in]:dwProc:函数地址 */ bool IsProcHooked(DWORD dwProc) {

cackeme的专栏 4373

阿里平头哥与华为芯片的比较

阿里平头哥与华为芯片代表了中国AI芯片领域的两种典型发展路径:平头哥通过兼容CUDA生态快速切入市场,以较低成本提供接近国际水平的AI算力;华为则坚持全栈自研路线,构建从芯片到框架的完整技术体系,更注重供应链安全和自主可控。从短期来看,平头哥PPU在单卡性能参数上全面超越昇腾910B,接近英伟达H20水平,且成本优势明显,有望在云服务和互联网应用领域取得更大市场份额。而华为昇腾则凭借全栈自研和端边云协同优势,在政企市场和科研领域更具竞争力。

shao.bing的专栏 3998

stackelberg博弈_博弈论、多智能体、强化学习(随便记点东西)

多智能体应用场景:已实现:游戏AI。正在努力:UAV,物资运输,快递分发,交通系统。未来:社会学,预测群体行为,城市区域合作,国际关系。博弈论基本定义:玩家集合: 策略集合: 收益函数: 囚徒困境:两智能体矩阵博弈坦白抵赖坦白1,13,0抵赖0,32,2占优策略与最佳应对:上表中两者均具有占优策略,即无论如何都应该选坦白。那么构造下表。坦白抵赖坦白1,13,0抵赖0,12,2对于玩家一来说,坦白...

weixin_39611722的博客 2997

Win64 驱动内核编程-17. MINIFILTER(文件保护)

MINIFILTER(文件保护) 使用HOOK来监控文件操作的方法有很多,可以在SSDT上HOOK一堆和FILE有关的函数,也可以对FSD进行IRPHOOK,不过这些方法既不方便,也不安全。微软推荐的文件操作过滤方法是使用过滤驱动,在VISTA之后,推荐使用MINI...

墨鱼菜鸡 593

c#算法(5)—最小二乘法(二次曲线拟合)

最小二乘法——二次曲线拟合

qq_34059233的博客 1659

几种钩子类型

1.函数钩子:可以向被注入线程插入木马代码2.系统API钩子,通过给系统的API附加上一段小程序,达到监视甚至控制应用程序对API的调用。3.输入地址表(IAT)钩子,用另一个函数的地址替换DLL输入函数的地址4.中断分配表(IDT)钩子,替换中断分配表中中断服务程序(ISR)的入口地址5.IO请求包函数表(IRP)钩子,替换IRP函数表的一些表项来达到隐藏目的,如文件.网络端口.注册表项等。6....

inuo2011的博客 2053

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

FSDHOOK恢复

WCHAR DriverName[] = L"\\FileSystem\\ntfs"; WCHAR DriverPath[] = L"\\??\\C:\\WINDOWS\\system32\\drivers\\ntfs.sys"; RestoreFSDMajorRoutine(&DriverName, &DriverPath, IRP_MJ_CREATE); //函数名: Resto

125096 720

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

NTFS FSD HOOK

NTFS FSD HOOKNTSTATUS FSDHookControl( IN BOOLEAN IsHook ) { NTSTATUS status = STATUS_SUCCESS; UNICODE_STRING uNTFS = {0}; PDRIVER_OBJECT NTFS = NULL; RtlInitUnicodeString( &uNTFS, L"\\Fi

Lycorisradiata 692

文件系统fsd hook (一)原理

要知道FSDHook原理,首先我们必须了解什么是FSD,也就是FileSystem。我们电脑上的文件系统ntfs.sys,他有个设备\FileSystem\Ntfs,这个设备是用IoCreateDevice创建,跟我们写驱动的时候一样,那么我们可以通过这个设备,来对ntfs做一些操作,跟ntfs驱动进行一些通信。我们来看IDA分析: //这个就是我们以前的代码,创建一个通信设备 RtlI...

weixin_30602505的博客 318

fsd hook里获取文件全路径

NTSTATUS MyFsdCreate(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp){PDRIVER_DISPATCH        RealDispatch;NTSTATUS                    ntStatus;NTSTATUS                    status;PFILE_OBJECT             

1306

r0下FSD inline hook防删除

只拦截了Ntfs.sys上的,FastFat同Ntfs。感觉更像是一个inline hook的例子 呵呵 :)引用:/*                By 炉子[0GiNr]                http://hi.baidu.com/breakinglove_                http://0ginr.com*/typedef NTSTATUS (*pfnD

1721

fsd inline hook

这是一段未完成的代码 本来我打算用它来隐藏文件的 可是具体写隐藏文件函数的位置上出现了问题 现在正在思考中 把它发出了主要的目的其实是求助啦 不过我在网上找了好久相关的代码 却没找到 于是发上来跟大家分享一下代码:#include "ntddk.h"typedef BOOLEAN BOOL;typedef unsigned long DWORD;typedef DWOR

1336

R0 下 FSD inline Hook 防删除

<br />/*<br />                By 炉子[0GiNr]<br />                http://hi.baidu.com/breakinglove_<br />                http://0ginr.com<br />*/<br />typedef NTSTATUS (*pfnDrvDispath)(<br />                                  IN PDEVICE_OBJECT        DeviceOb

Rootkit ﹏ 1053

对付kernel / fsd inline hook/ssdt hook

<!-- if (!document.phpAds_used) document.phpAds_used = ,; phpAds_random = new String (Math.random()); phpAds_random = phpAds_random.substring(2,11); document.write ("<" + "script

1072

导出表钩子之EAT HOOK解析

EAT HOOK与IAT HOOK原理是一样的,都是通过修改PE来达到HOOK的目的。只是EAT HOOK是从来源入手而IAT HOOK则是从自身入手。 讲一下大体思路。 1. 通过IMAGE_OPTIONAL_HEADER.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress找到导出表的地址(注意这里是RVA要加上ImageBa...

輚至消亡 3512
上一篇: AddSection
下一篇: 某同学的inline hook检测程序简单逆向分析
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值