吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3520|回复: 12
收起左侧

[调试逆向] Windows 基于调试器引擎缺陷引发的调试陷阱

  [复制链接]
魔弑神 发表于 2021-9-27 10:38
本帖最后由 魔弑神 于 2021-9-27 10:40 编辑

众所周知在AMD64环境上,32的程序,我们可以使用CS段切换至x64环境,可以执行x64指令 0x33段选择器(天门) - 恶意软件技术 (malwaretech.com)

当然切换环境后,也是能在调试器里正常工作的,如果手动中断在环境里,调试器引擎可能需要支持x64指令,否则无法正常工作


那么我们正常运行,应该怎么样才能被检测呢, 这就要说个特殊的指令,int3  int 3 (KiBreakpointTrap)


为什么说是特殊呢,因为配合切cs可以达到出其不意的效果


在正常环境下 切cs后使用int3,会得到一个STATUS_BREAKPOINT异常,如果没有注册异常接管,会崩溃。


如果在不支持(x64引擎)的调试器里运行,则什么都不会发生,但STATUS_BREAKPOINT异常依旧会有,内核会分发这个异常 但调试器好像不会接收到这个异常,程序正常工作


至于为什么会发生这个情况 一个是调试器汇编引擎的问题,(可能)以及int3的特性 ContextFrame.Rip -= 1; ,两个集中一起就会发生这种情况


当然像ICEBP UD2等指令不会发生这种情况


[Asm] 纯文本查看 复制代码
push 0x33
call Label1
Label1:
add dword [esp], 0x05
retf 
int3 
call Label2
Label2:
mov dword [esp+0x04], 0x00000023
add dword [esp], 0x0D
retf 


测试调试器: x32dbg,OllyDbg,windbg。 都会引发这种情况


关于反制的方法目前有更换调试器引擎

内核处理要判断cs环境

(SegCs & 0xfff8)== 3 * 16 && WoW64Process != NULL

即可


更新内容:其实就是内核分发异常的时候没有判断wow64执行x64代码,从而没有对齐堆栈地址,引发后续的一系列问题

x64 Rsp =Rsp ;

wow64 Rsp =Rsp & 0xfffffff0UI64;



欢迎评论探究,我只是大概的分析

来自我博客的一篇文章

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
longling + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 魔弑神 发表于 2021-9-28 20:58
本帖最后由 魔弑神 于 2021-9-28 21:11 编辑
无瑕黑心肠 发表于 2021-9-28 20:36
也就是说不管是在哪个环境,都会触发STATUS_BREAKPOINT异常,最终都会回到你注册的异常去接管处理,那这个 ...

调试环境下 int3不会触发你注册的异常,但是内核异常正常分发,只是你r3接收不到这个异常而已
正常环境 就正常int3异常

你可以看int3内核的异常分发 我文章最后说了是什么问题引发的这种情况
无瑕黑心肠 发表于 2021-9-28 20:36
也就是说不管是在哪个环境,都会触发STATUS_BREAKPOINT异常,最终都会回到你注册的异常去接管处理,那这个调试陷阱指的是哪个地方?
还是说在调试环境下,调试器会抛弃这个异常,从而导致你的异常接管没接收这个STATUS_BREAKPOINT异常?
penz 发表于 2021-9-27 12:58
schip 发表于 2021-9-27 15:31
这个很细节,学习了
luckysky 发表于 2021-9-27 18:35
某游戏就是这样做内存crc校验
longling 发表于 2021-9-27 22:25
谢谢楼主分享        
cjc3528 发表于 2021-9-28 08:48
这块内容不是很懂,来学习下,谢谢分享
hszt 发表于 2021-9-28 10:09
有例子吗,自己写了一个,编译后正常都不能执行
 楼主| 魔弑神 发表于 2021-9-28 10:55
hszt 发表于 2021-9-28 10:09
有例子吗,自己写了一个,编译后正常都不能执行

正常本身就不能执行,因为会触发INT3异常,你必须注册异常处理,接管这个异常就行了
wangxiaohu104 发表于 2021-9-28 20:37
大佬,好厉害,学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 20:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表