首页
社区
课程
招聘
[原创]win7 x64内核调试函数逆向还原C代码,自建调试体系
2020-6-10 20:53 15791

[原创]win7 x64内核调试函数逆向还原C代码,自建调试体系

2020-6-10 20:53
15791

一、前言
网上公开的自建调试体系大都是基于wrk xp的,其中mengwuji的为win7 x86,想把该项目用于x64,于是自给自足陆陆续续花了一个月时间成功在win7 x64 sp1上跑起来,该项目参考了前面所述开源代码,在看雪白嫖了这么多干货,不敢藏私,取之于看雪开源于看雪。

 

二、项目概述
采用Vs2019+WDK,提供完整的解决方案,下载即可编译运行。注意事项:
1、PsGetNextProcessThread DbgkDebugObjectType这两个常用的函数、变量采用特征码定位,其余采用解析pdb符号定位函数地址

 

2、采用InlinHook替换以下内核函数:
NtDebugActiveProcess
NtCreateDebugObject
NtRemoveProcessDebug
NtWaitForDebugEvent
NtDebugContinue
DbgkExitProcess
DbgkExitThread
DbgkCopyProcessDebugPort
DbgkForwardException
DbgkMapViewOfSection
DbgkUnMapViewOfSection
DbgkClearProcessDebugObject
DbgkCreateThread
DbgkDebugObjectType-调试对象类型
DbgkpQueueMessage-这换这个的原因是由于偷懒没有重写DbgkpPostModuleMessages,而这个函数内部有调用DbgkpQueueMessage
3、基于win7 x64不负责过PG,有需要的项目里带了老v的时光倒流过pg代码.
4、
图片描述
DebugPort除了在函数内部使用的还需要替换这几处的偏移,我只是做了简单处理把DebugPort移位到ExitTime,这种方案不保险,因为EPROCESS里的其他未使用的成员也可能被列入关照对象,在x64这样干的反调试驱动估计少,为了完美解决可以参考看雪大老xiaofu的这篇帖子扩充EPROCESS结构体https://bbs.pediy.com/thread-246625.htm,使用这种方法也有缺陷,只对之后的新进程有效,使用之前需要创建进程回调记录新加载的进程,自己维护判断进程EPROCESS是否经过扩充。
三、其他
1、由于异常相关函数不能windbg下断调试,嫌麻烦没有处理,只是简单的在KiDispatchException里改了DebugPort偏移,后面有时间会把异常相关的一起处理掉
2、由于在代码里面直接对PEB里的BeingDebugged调试标志写False,所以在进程附加的时候不会被断下。

 

管杀不管埋,蓝屏概不负责!
其他的自己参照代码改吧


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
点赞12
打赏
分享
最新回复 (26)
雪    币: 433
活跃值: (1805)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
萌克力 2020-6-10 21:22
2
0
沙发
雪    币: 182
活跃值: (576)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
柒雪天尚 2020-6-10 22:17
3
0
就是嫖了一下mengwuji呗
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luskyc 2020-6-10 23:54
4
0
谢谢分享,花了不少时间吧
雪    币: 726
活跃值: (2662)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tmflxw 2020-6-11 00:10
5
0
yy虫子yy 谢谢分享,花了不少时间吧
技术不到家,花了一个月
雪    币: 1790
活跃值: (2927)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
拍拖 2 2020-6-11 08:50
6
0
支持。
雪    币: 52
活跃值: (2189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
实都 2020-6-11 09:11
7
0
这尼玛全是体力活啊  感谢楼主
雪    币: 6
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
三千羽杀净 2020-6-11 09:41
8
0
F5都按烂了 终于等来了
雪    币: 20
活跃值: (77)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_团 2020-6-11 10:30
9
0
前排支持下。。。
雪    币: 5162
活跃值: (4459)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
gamehack 2020-6-11 10:51
10
0
这个看着就好历害,感谢分享,收藏一波
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ZwCopyAll 2020-6-11 15:55
11
0
牛逼
雪    币: 19
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xiaohucode 2020-6-14 18:49
12
0
感谢分享!
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kakasasa 2020-6-14 20:50
13
0
mark  3q
雪    币: 2124
活跃值: (4176)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
默NJ 2020-6-14 21:46
14
0
mark
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
冰雄 2020-6-16 17:06
15
0
楼主有玩过X64内核重载吗
雪    币: 310
活跃值: (1917)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
niuzuoquan 2020-6-17 11:54
16
0
mark
雪    币: 726
活跃值: (2662)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tmflxw 2020-6-18 19:49
17
0
Ps:  看了下已经有150多次下载了,不得不说一句,源码里面有处坑,有几处需要判断进程是否为64位进程,是的话就写入64位数据否则写入32位数据,而源码里面的把这步判断忽略了,遇到32位进程的时候会写入64位数据造成覆盖其他成员。
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_靖~live 2020-6-19 17:58
18
0
大佬重写X64的NtReadVirtualMemory 为什么会卡死
雪    币: 75
活跃值: (164)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gaojunxin 2020-7-1 10:00
19
0
借鉴代码,开始搞win10x64
雪    币: 75
活跃值: (164)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gaojunxin 2020-7-1 19:21
20
0

在 Windows Vista 版本的 WDK 之前,用于驱动程序开发的主要头文件为 Wdm.h、Ntddk.h 和 Ntifs.h,它们包含很多重复声明。
从 Windows Vista 版本的 WDK 开始,Wdm.h、Ntddk.h 和 Ntifs.h 将按层次结构来组织并且不包含重复信息。上层的文件将包含下层的文件。每个函数和结构声明仅出现一次。
Ntifs.h 包含 Ntddk.h,而 Ntddk.h 又包含 Wdm.h。下图显示了此结构。

在这里插入图片描述

最后于 2020-7-1 19:21 被gaojunxin编辑 ,原因:
雪    币: 3
活跃值: (466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
拉闸太子 2020-8-10 14:40
21
0
来个 老弟
雪    币: 1036
活跃值: (532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
闲人_ 2020-9-1 02:05
22
0
Mark
雪    币: 1531
活跃值: (3330)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小希希 2020-9-2 11:26
23
0
不错,感谢分享
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_榆一 2021-12-15 13:55
24
0
tmflxw Ps: 看了下已经有150多次下载了,不得不说一句,源码里面有处坑,有几处需要判断进程是否为64位进程,是的话就写入64位数据否则写入32位数据,而源码里面的把这步判断忽略了,遇到32位进程的时候会 ...
哪几处要判断
雪    币: 284
活跃值: (1126)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
baggiowo 2022-4-7 08:06
25
0
太感谢了
游客
登录 | 注册 方可回帖
返回