首页
社区
课程
招聘
[分享]第3题 crackMe 解题思路分享
发表于: 2017-10-28 15:36 3825

[分享]第3题 crackMe 解题思路分享

2017-10-28 15:36
3825
发现这题,好几个地方都有反调试手段。还有没有加怪异的壳。

例如: 

int sub_A01190()
{
  int v0; // edx@1
  int v1; // ecx@1
  char v3; // [sp+Ch] [bp-CCh]@1
  int v4; // [sp+D0h] [bp-8h]@1

  memset(&v3, 0xCCu, 0xCCu);
  v4 = -1;
  v4 = sub_9FD2E4("ollyice.exe");
  if ( v4 == -1 )
  {
    v4 = sub_9FD2E4("idag.exe");
    if ( v4 == -1 )
    {
      v4 = sub_9FD2E4("ollydbg.exe");
      if ( v4 == -1 )
      {
        v4 = sub_9FD2E4("peid.exe");
        if ( v4 == -1 )
        {
          v4 = sub_9FD2E4("softice.exe");
          if ( v4 == -1 )
          {
            v4 = sub_9FD2E4("lordpe.exe");
            if ( v4 == -1 )
            {
              v4 = sub_9FD2E4("importrec.exe");
              if ( v4 == -1 )
              {
                v4 = sub_9FD2E4("w32dsm89.exe");
                if ( v4 == -1 )
                  v4 = sub_9FD2E4("windbg.exe");
              }
            }
          }
        }
      }
    }
  }
  return sub_9FDE51(v1, v0);
}

把IDA改名和改窗口名称,然后用IDA进行动态跟踪调试,


我们要解决让函数来到这里的条件。

memcmp下断点,然后段下来后,发现在内存中其实是明文对比。


本来没有把握,尝试在论坛上提交,发现成功。

算法部分,暂时还没有逆向。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 79
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
您好,请问把"IDA改名和改窗口名称"中更改窗口名称是如何实现的,也就是如何更改调试器在任务管理器中的进程名来实现绕过?
2017-12-18 21:06
0
游客
登录 | 注册 方可回帖
返回
//