12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 224|回复: 0

Windows 基于调试器引擎缺陷引发的调试陷阱

[复制链接]

282

主题

282

帖子

574

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
574
发表于 2022-1-28 20:54:44 | 显示全部楼层 |阅读模式
众所周知在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 0x33call Label1Label1:add dword [esp], 0x05retf int3 call Label2Label2:mov dword [esp+0x04], 0x00000023add dword [esp], 0x0Dretf

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


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

内核处理要判断cs情况

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

即可


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

x64 Rsp =Rsp ;

wow64 Rsp =Rsp & 0xfffffff0UI64;



接待评论探究,我只是大概的分析

来自我博客的一篇文章

来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-4-27 02:34 , Processed in 0.125000 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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