首页
社区
课程
招聘
未解决 [求助]NtQueryInformationThread CONTEXT
2019-7-26 17:16 7989

未解决 [求助]NtQueryInformationThread CONTEXT

2019-7-26 17:16
7989
如题  HOOK NtQueryInformationThread   清空 CONTEXT结构后, 自己下的硬件断点也给清了 请问这个有什么办法来区分呢
X64 系统  目标进程32位

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

收藏
免费 1
打赏
分享
最新回复 (64)
雪    币: 712
活跃值: (121)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
whathhh 2019-7-26 17:31
2
0
怎么清空context结构啊
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
xiaofu 8 2019-7-26 18:15
3
0
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-26 18:59
4
0

上面大佬 那块的实现 方式 大约如下

根据 ThreadHandle 获取 线程 _ETHREAD 根据 _ETHREAD 结构中 第一项 即 Tcb 来获取 TrapFrame

这个结构体如下

typedef struct _KTRAP_FRAME

{

ULONG   DbgEbp;         // Copy of User EBP set up so KB will work.

ULONG   DbgEip;         // EIP of caller to system call, again, for KB.

ULONG   DbgArgMark;     // Marker to show no args here.

ULONG   DbgArgPointer;  // Pointer to the actual args 

ULONG   TempSegCs;

ULONG   TempEsp; 

ULONG   Dr0;

ULONG   Dr1;

ULONG   Dr2;

ULONG   Dr3;

ULONG   Dr6;

ULONG   Dr7;

ULONG   SegGs;

ULONG   SegEs;

ULONG   SegDs;

ULONG   Edx;

ULONG   Ecx;

ULONG   Eax;

ULONG   PreviousPreviousMode;

PEXCEPTION_REGISTRATION_RECORD ExceptionList; 

ULONG   SegFs;

ULONG   Edi;

ULONG   Esi;

ULONG   Ebx;

ULONG   Ebp;

ULONG   ErrCode;

ULONG   Eip;

ULONG   SegCs;

ULONG   EFlags;

ULONG   HardwareEsp;    // WARNING - segSS:esp are only here for stacks

ULONG   HardwareSegSs;  // that involve a ring transition.

ULONG   V86Es;          // these will be present for all transitions from

ULONG   V86Ds;          // V86 mode

ULONG   V86Fs;

ULONG   V86Gs;

} KTRAP_FRAME;

以上信息来自《寒江独钓》


而这个结构体中 包含的东西  正是我要找的, 到这里就可以了。


最后于 2019-7-29 15:18 被yyinzlf编辑 ,原因:
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-26 19:02
5
0

最后于 2019-7-27 11:08 被yyinzlf编辑 ,原因:
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-26 19:21
6
0
yyinzlf 晕晕忽忽的 这 IsFromOD 是什么鬼啊 原理给讲下呗 明白道理我可以自己实现
CDataExpander::Instance()->Get(target_thread) 这个 汗, 真搞不明白什么意思
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-26 19:53
7
0
yyinzlf 晕晕忽忽的 这 IsFromOD 是什么鬼啊 原理给讲下呗 明白道理我可以自己实现
_ETHREAD 结构体 用DBG看过了 不知道哪个是 CONTEXT 结构的指针啊
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-26 21:09
8
0
请大佬们关注一下新手  百度没资料啊  翻遍了
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-27 10:50
9
0
我相信这世界是好人多的  很多人 可能在马路上看见需要帮助的 会 毫不犹豫的 伸出援助之手  但这事怎么放到网上 见到需求帮助的 就行不通呢?
或许我的问题 在大牛看来 很菜很菜 但是正是因为不懂才问嘛  如果都和你们一样什么都懂  那还提这问题做什么 ?
最后于 2019-7-27 11:11 被yyinzlf编辑 ,原因:
雪    币: 433
活跃值: (1825)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
萌克力 2019-7-27 11:36
10
0
yyinzlf CDataExpander::Instance()->Get(target_thread) 这个 汗, 真搞不明白什么意思
...你把isfromod得判断条件改成你想要的条件就行了。
这大佬都送代码了...还问啥呢
最后于 2019-7-27 11:37 被萌克力编辑 ,原因:
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-27 11:40
11
0
萌克力 yyinzlf CDataExpander::Instance()->Get(target_thread) 这个 汗, 真搞不明白什么意思 ...
这个的问题是怎么根据 target_thread 来获取 CONTEXT 啊  他这里应该是他自己的一个方法吧, 网上也没有 根据 PETHREAD 来获取 CONTEXT的 资料啊
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-27 11:45
12
0
我大概了解的意思是 用 ObReferenceObjectByHandle 能过 传入的handle 来 获取线程的 PETHREAD 再根据 PETHREAD 来获取 线程的CONTEXT结构  现在的问题是 如何根据  PETHREAD 来获取到这个结构啊, 而且看这块代码的意思是 应该可以实现了硬件断点,但估计游戏肯定也会检测到了
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-27 12:26
13
0
看来HOOK 这块不能实现了,找找别的方法去
雪    币: 12843
活跃值: (9078)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
hzqst 3 2019-7-27 14:50
14
0
大佬都把煮熟的菜送到你嘴上了,然后你尝了一口说怎么这么咸,就吐掉了。
大佬的时间都不值钱是吧??
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-27 16:26
15
0
都说的比唱的好听, 你把这代码 仔细看看   如果CDataExpander::Instance()->Get(target_thread)  这里搞不了, 那一切都等于 是空 
一切的前题  就是在 取到 这块返回值 的情况下 才能做的,   你们都是这样说, 那你们谁能给我解释一下
CDataExpander::Instance()->Get(target_thread)  这块是怎么实现的 ? 你们谁知道 ?
而这块 正好是 这位大佬 自己 在其它地方实现的一个类? 之类的东西吧, 反正 不管是 在C 还是 C++中 你直接这样 肯定是用不了的
那么看他这里的代码我推断出 是用这样一个方法根据PETHREAD  来获取那个 线程的 CONTEXT 结构的 然后 再来和 现在的对比
但问题是 你们在网上查查, 看看 根据 _ETHREAD 来获取 线程 CONTEXT  怎么搞 ? 看看有没有。
如果你们能解释了这块 或者网上查到了相关资料  那我这站这里让你们随便打 随便骂 , 当然国外网站 我去不了  也没去
算了不吵这个了, 这问题不问了, 就当没问算了, 我不是学计算机的, 一些东西自己不明白, 可能有些话有些人感觉很无知 不可理喻
那没事 你可以不理了 我不信不懂 学还不能学了  Instance 是实例一个对像, 但这个对像的Get 是个方法吧 这些不说了
这个问题可能跑偏了, 我是很菜 很菜, 菜的让人不不屑一顾 没事,  那些怼人的, 你们当初生下来这些都理解是吧,你们很厉害
我自己可以慢慢学   其实我很纳闷 你们怼人的 字也不少啊, 有这些字问题早说清楚了吧, 他偏偏就是不说, 还非要搞莫测高深 
别怪我们无知 我们如果当时 有电脑 现在还是这样么 ? 呵呵 年龄有人能猜出来吧, 是大了40+了, 但这不能妨碍我 喜欢搞这个吧。 走了
最后于 2019-7-27 17:12 被yyinzlf编辑 ,原因:
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-27 16:30
16
0

最后于 2019-7-27 16:59 被yyinzlf编辑 ,原因:
雪    币: 6124
活跃值: (4236)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
黑洛 1 2019-7-27 17:01
17
0
yyinzlf 都说的比唱的好听, 你把这代码 仔细看看   如果CDataExpander::Instance()-& ...
喜欢****,群里给你一脚很不服气是吧?这个东西是什么你都不懂你还写驱动?想抄代码为什么不花钱买?
最后于 2019-7-27 17:49 被kanxue编辑 ,原因: 注意语气,请勿人身攻击!
雪    币: 634
活跃值: (1149)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
BDBig 2019-7-27 17:02
18
0
大佬的问题我们都不会不敢多BB
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-27 17:13
19
0
黑洛 喜欢嘴臭,群里给你一脚很不服气是吧?这个东西是什么你都不懂你还写驱动?想抄代码为什么不花钱买?
你纯扯淡 代码老子自己写的, 抄一个算不人生的, 你牛B 死了。
雪    币: 6124
活跃值: (4236)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
黑洛 1 2019-7-27 17:16
20
0
yyinzlf 你纯扯淡 代码老子自己写的, 抄一个算不人生的, 你牛B 死了。
哦 你自己写的?那你还问这种问题?取个上下文的代码都看不懂还要嘴臭?你不是five?
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-27 17:18
21
0
黑洛 哦 你自己写的?那你还问这种问题?取个上下文的代码都看不懂还要嘴臭?你不是five?
如果说你一直喜欢这样说话的话 我很同情你的生长环境
雪    币: 168
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yyinzlf 2019-7-27 17:22
22
0
至于我写不写驱动 我感觉写驱动 和用不用 C++ 无关, 我一直都是用的C  而且我学的书上 (电子工业出版  WINDOWS内核安全与驱动开发) 这里没有
我也不怎么用C++的  这不丢人吧
雪    币: 6314
活跃值: (846)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
二娃 2019-7-27 17:24
23
0
https://bbs.pediy.com/thread-246625.htm
雪    币: 6124
活跃值: (4236)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
黑洛 1 2019-7-27 17:24
24
0
yyinzlf 如果说你一直喜欢这样说话的话 我很同情你的生长环境
看看你自己说的话,要不要再把群里聊天记录截图出来?40多岁的人了,知道什么脸吗?人家截图个代码你这个不懂那个不懂,一直问问问?基础问题还要别人告诉你?什么是自学懂吗?自学都不会你长这么大活到什么东西身上去了?
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
はつゆき 2019-7-27 17:26
25
0
yyinzlf 至于我写不写驱动 我感觉写驱动 和用不用 C++ 无关, 我一直都是用的C 而且我学的书上 (电子工业出版 WINDOWS内核安全与驱动开发) 这里没有 我也不怎么用C++的 这不丢人吧
你以为自己很委屈,殊不知每个人都是这么慢慢学过来的,你问问题,别人帮你是情分 不帮你是本分,网络社会就是这么残酷。
游客
登录 | 注册 方可回帖
返回