看流星社区

 找回密码
 注册账号
查看: 2519|回复: 0

TP的debugport的另一种过法。

[复制链接]

该用户从未签到

发表于 2013-8-4 09:42:35 | 显示全部楼层 |阅读模式
继上一次过掉双击调试之后,利用它的思想,又相继过掉了那几个函数和debugport。刚才在虚拟机里面,OD加载之后,有模块,可下段,没又sx非法之类报错。但是过了一会游戏退出了。不知道是不是跟我虚拟机配置不够有关?总之能调试附加,给我这新人一大信心。

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

b0dc627e 895c3804        mov     dword ptr [eax+edi+4],ebx
b0dc6282 8b3dc472ddb0    mov     edi,dword ptr [TesXXXX+0x132c4 (b0dd72c4)]
b0dc6288 8b7f1c          mov     edi,dword ptr [edi+1Ch]
b0dc628b 0379b8          add     edi,dword ptr [ecx-48h]
b0dc628e 33c0            xor     eax,eax
b0dc6290 ab              stos    dword ptr es:[edi]
b0dc6291 ab              stos    dword ptr es:[edi]
b0dc6292 8b3dc472ddb0    mov     edi,dword ptr [TesXXXX+0x132c4 (b0dd72c4)]
b0dc6298 8b7f04          mov     edi,dword ptr [edi+4]
b0dc629b 0379b8          add     edi,dword ptr [ecx-48h]
b0dc629e 33c0            xor     eax,eax
b0dc62a0 8707            xchg    eax,dword ptr [edi]//这里清0

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

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


b0e6XXXX 0f85d2000000    jne     TesXXXX+0x783c (b0e6XXXX)
b0e6XXXX 8b4508          mov     eax,dword ptr [ebp+8]
b0e6XXXX c74004bc000000  mov     dword ptr [eax+4],0BCh//这里赋值。
b0e6XXXX c7400c30010000  mov     dword ptr [eax+0Ch],130h
b0e6XXXX c74010a0010000  mov     dword ptr [eax+10h],1A0h
b0e6XXXX c7004c020000    mov     dword ptr [eax],24Ch
b0e6XXXX c740141c010000  mov     dword ptr [eax+14h],11Ch

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

然后,我可以在b0e6XXXX c7400c30010000  mov     dword ptr [eax+0Ch],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 [ebx+4],0x118
      mov eax,0
      mov dr0,eax
      popad
      popfd
      iretd
jmpoldtrap01:
      popad
      popfd
      push  0
      mov   word ptr [esp+2],0
      jmp originalkitrap1addrjmpaddr
    }
}

大体 就这样吧。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-25 03:04

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

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