大夫 发表于 2013-8-4 09:42:35

TP的debugport的另一种过法。

继上一次过掉双击调试之后,利用它的思想,又相继过掉了那几个函数和debugport。刚才在虚拟机里面,OD加载之后,有模块,可下段,没又sx非法之类报错。但是过了一会游戏退出了。不知道是不是跟我虚拟机配置不够有关?总之能调试附加,给我这新人一大信心。

开始说debugport的过法。看了以前好多帖子,都是修改TP,最近,有人也是修改TP,另外pass crc校验。我不会找crc校验,希望有大牛来指点我一下。于是另外想了一种办法。
先上反汇编代码:

b0dc627e 895c3804      mov   dword ptr ,ebx
b0dc6282 8b3dc472ddb0    mov   edi,dword ptr
b0dc6288 8b7f1c          mov   edi,dword ptr
b0dc628b 0379b8          add   edi,dword ptr
b0dc628e 33c0            xor   eax,eax
b0dc6290 ab            stos    dword ptr es:
b0dc6291 ab            stos    dword ptr es:
b0dc6292 8b3dc472ddb0    mov   edi,dword ptr
b0dc6298 8b7f04          mov   edi,dword ptr
b0dc629b 0379b8          add   edi,dword ptr
b0dc629e 33c0            xor   eax,eax
b0dc62a0 8707            xchg    eax,dword ptr //这里清0

一处清零的地方。我从上面跟下来,发现,debugport的偏移0xbc让他存在了一个局部变量中。

那么,跟到这个局部变量赋值的地方。


b0e6XXXX 0f85d2000000    jne   TesXXXX+0x783c (b0e6XXXX)
b0e6XXXX 8b4508          mov   eax,dword ptr
b0e6XXXX c74004bc000000mov   dword ptr ,0BCh//这里赋值。
b0e6XXXX c7400c30010000mov   dword ptr ,130h
b0e6XXXX c74010a0010000mov   dword ptr ,1A0h
b0e6XXXX c7004c020000    mov   dword ptr ,24Ch
b0e6XXXX c740141c010000mov   dword ptr ,11Ch

这段代码大体意思,判断当前系统版本。然后会给一些偏移。。。别的不管,我只管0xbc

然后,我可以在b0e6XXXX c7400c30010000mov   dword ptr ,130h
下硬件断点。然后HOOK INT1 中断。然后悄无声息的将eax+4的内容改为别的。我发现118这个偏移不错。

然后。。。。某P开始疯狂对这个地址清0.

好了。想法就是这样。(之前有人说到律师函之类,所以锁了一些修饰。希望不会引火。)
上代码:

下硬件断点。
    __asm
    {
      mov eax,hookaddr
      mov DR0,eax
      mov eax,2
      mov DR7,eax
    }



void __declspec (naked) My_Kitrap1()
{
    _asm
    {   
      //保存环境;
      pushfd
      pushad
      mov ebx,eax
      mov ecx,XxxPBASE
      add ecx,0x7774
      mov eax,dr0
      cmp eax,ecx
      jne jmpoldtrap01
      mov eax,dr6
      and eax,1
      cmp eax,1
      jne jmpoldtrap01
      mov word ptr ,0x118
      mov eax,0
      mov dr0,eax
      popad
      popfd
      iretd
jmpoldtrap01:
      popad
      popfd
      push0
      mov   word ptr ,0
      jmp originalkitrap1addrjmpaddr
    }
}

大体 就这样吧。
页: [1]
查看完整版本: TP的debugport的另一种过法。