能力值:
( LV2,RANK:10 )
|
-
-
2 楼
碰到和你一样的问题 不过我是x64进程 我是直接到 RtlDispatchException 头部去干的.然后判断堆栈返回值是 kiuser层的 _asm { push rax mov rax, dwStackAddr cmp qword PTR DS : [rsp+0x08], rax pop rax jnz label mov dword PTR DS : [rdx + 0x30], CONTEXT_FULL //flg mov qword PTR DS : [rdx + 0x48], 0 //dr0 mov qword PTR DS : [rdx + 0x50], 0 //dr1 mov qword PTR DS : [rdx + 0x58], 0 //dr2 mov qword PTR DS : [rdx + 0x60], 0 //dr3 mov qword PTR DS : [rdx + 0x70], 0 //dr7 label: mov qword ptr ss : [rsp + 18], rbx push rbp push rsi push rdi push r12 push r13 push r14 push r15 mov rax, RtlDispatchException add rax, 0x10 jmp rax }
没用 这我已经清0了 还是检测到的 说明不是自己产生seh异常检测dr值的 1.NTGetThreadContext 处理了 没效果 2.Wow64GetThreadContext 这个可以忽略 进程是64位 这个API无法使用的 目标线程必须32位才可以 32位的 Wow64GetThreadContext 是调用 NTGetThreadContext 如果你32位的 处理一个 NTGetThreadContext 就好 64位 Wow64GetThreadContext 调用是 NtQueryInformationThread
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
好好学习,天天向上
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
guotouck
碰到和你一样的问题 不过我是x64进程 我是直接到 RtlDispatchException 头部去干的.然后判断堆栈返回值是 kiuser层的
_asm
{
push rax
m ...
我调试的也是x64程序,而且确定是在VEH里被检测DRx寄存器。所以要想办法过掉...
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
如果是VEH 那你遍历VEH 直接去函数里边搞死不就好了.
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
guotouck
如果是VEH 那你遍历VEH 直接去函数里边搞死不就好了.
想过这个办法,但不好分析,而且他的VEH代码段处理过,不能改写。还有CRC校验。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
我怎么感觉你和我一样的 是hy 吗 这个我看了 没veh啊 最多有seh链表
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
我想问下你们最后是怎么解决的
|
|
|