首页
社区
课程
招聘
[原创]游戏保护代码BUG之检查调试
2019-2-15 01:00 5404

[原创]游戏保护代码BUG之检查调试

2019-2-15 01:00
5404
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);


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

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