首页
论坛
课程
招聘
雪    币: 188
活跃值: 活跃值 (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝

[调试逆向] [系统底层] [商业保护] [虚拟机保护] [其他内容] [原创]游戏保护代码BUG之检查调试

2019-2-15 01:00 2654

[调试逆向] [系统底层] [商业保护] [虚拟机保护] [其他内容] [原创]游戏保护代码BUG之检查调试

2019-2-15 01:00
2654
GAME驱动检查调试。
从几年前我就看了下,今天看还是这个样。

BOOLEAN 检查调试器(ULONG a1, LONG a2, SHORT a3, PBOOLEAN a4, LONG a5, LONG a6, LONG a7)
{
  BOOLEAN result;
  if ( 启动保护 )
  {
    if ( 启动检查调试器 )
    {
      a4 = KdDebuggerEnabled();
      if ( (ULONG)KdDebuggerEnabled() <= 启动保护
        || (a1 = 启动保护 + (UINT)启动检查调试器,
            (ULONG)KdDebuggerEnabled() >= 启动保护 + (ULONG)(UINT)启动检查调试器) )
      {
        黑名单解密扫描(a1, (UINT)启动检查调试器, 启动保护, a2, a3, (INT)KdDebuggerEnabled(), a5, a6, a7);
      }
    }
    if ( 启动保护 )
    {
      if ( 启动检查调试器 )
      {
        if ( (ULONG)KdDisableDebugger() <= 启动保护
          || (a1 = 启动保护 + (UINT)启动检查调试器, (ULONG)KdDisableDebugger() >= a1) )
        {
          黑名单解密扫描(a1, (UINT)启动检查调试器, 启动保护, a2, a3, (INT)a4, a5, a6, a7);
        }
      }
    }
  }
  while ( TRUE )
  {
    result = (UINT)((INT *)KdDebuggerEnabled() == 0 ? 0 : 1);
    if ( !result )
      break;
    KdDisableDebugger();
  }
  return result;
}

修改以下一处就会很神奇的直接过调试
1.while ( TRUE ) 改为 while ( FALSE )
2.result = (UINT)((INT *)KdDebuggerEnabled() == 0 ? 0 : 1); 改为 result = (UINT)((INT *)KdDebuggerEnabled() == 0 ? 0 : 0);



[公告]看雪论坛2020激励机制上线了!多多参与讨论可以获得积分快速升级?

最新回复 (6)
雪    币: 2116
活跃值: 活跃值 (103)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
syser 活跃值 2019-2-15 06:32
2
0
你都强行改Patch了 你管这叫BUG???
雪    币: 4749
活跃值: 活跃值 (93)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
friendanx 活跃值 2019-2-15 09:35
3
0
逆的这么仔细
雪    币: 1889
活跃值: 活跃值 (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
柒雪天尚 活跃值 2019-2-15 10:18
4
0
你都强行改Patch了 你管这叫BUG??? 
雪    币: 3660
活跃值: 活跃值 (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
老牜lyh 活跃值 2019-2-15 12:30
5
0
不错,,是这么玩的。这样最好
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_吴,21点。 活跃值 2019-11-28 11:46
6
0
雪    币: 40
活跃值: 活跃值 (37)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
killpy 活跃值 2 2019-11-28 17:18
7
0
你这调试伪代码 是哪个游戏的 怎么分析的
游客
登录 | 注册 方可回帖
返回