宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 7012|回复: 1

[原创] TP双击调试

[复制链接]

该用户从未签到

没事去看雪 发表于 2013-5-9 17:47:53 | 显示全部楼层 |阅读模式

欢迎您注册加入!这里有您将更精采!

您需要 登录 才可以下载或查看,没有账号?注册

x
1: 先用VirtualKD连接虚拟机,然后进入游戏

2: kd> bp KdDisableDebugger         (对KdDisableDebugger下断)

3: kd> eb KdDisableDebugger 0xc3                (直接修改函数头,让其返回,按F10)

返回后结果:
ee0abfca a16ccb0bee      mov     eax,dword ptr [TesSafe+0x17b6c (ee0bcb6c)]
ee0abfcf 8b0d68cb0bee    mov     ecx,dword ptr [TesSafe+0x17b68 (ee0bcb68)]
ee0abfd5 56              push    esi
ee0abfd6 8b7028          mov     esi,dword ptr [eax+28h]
ee0abfd9 57              push    edi
ee0abfda 8b782c          mov     edi,dword ptr [eax+2Ch]
ee0abfdd 33f1            xor     esi,ecx
ee0abfdf 33f9            xor     edi,ecx
ee0abfe1 eb4b            jmp     TesSafe+0x702e (ee0ac02e)
ee0abfe3 803d6d820bee00  cmp     byte ptr [TesSafe+0x1326d (ee0b826d)],0
ee0abfea 7516            jne     TesSafe+0x7002 (ee0ac002)
ee0abfec 688a4d6e43      push    436E4D8Ah
ee0abff1 6876426e57      push    576E4276h
ee0abff6 e873caffff      call    TesSafe+0x3a6e (ee0a8a6e)
ee0abffb c6056d820bee01  mov     byte ptr [TesSafe+0x1326d (ee0b826d)],1
ee0ac002 85ff            test    edi,edi
ee0ac004 7404            je      TesSafe+0x700a (ee0ac00a)
ee0ac006 ffd7            call    edi                          //edi=KdDisableDebugger
ee0ac008 eb24            jmp     TesSafe+0x702e (ee0ac02e)       //返回后直接跳转
ee0ac00a 803d6e820bee00  cmp     byte ptr [TesSafe+0x1326e (ee0b826e)],0
ee0ac011 751b            jne     TesSafe+0x702e (ee0ac02e)
ee0ac013 6812010000      push    112h
ee0ac018 68e64d6e43      push    436E4DE6h
ee0ac01d 6873426e57      push    576E4273h
ee0ac022 e865caffff      call    TesSafe+0x3a8c (ee0a8a8c)
ee0ac027 c6056e820bee01  mov     byte ptr [TesSafe+0x1326e (ee0b826e)],1
ee0ac02e 803e00          cmp     byte ptr [esi],0                            //跳转至此,判断[esi] >= 0     (esi为KdDebuggerEnabled可通过dd     KdDebuggerEnabled查看)   
ee0ac031 75b0            jne     TesSafe+0x6fe3 (ee0abfe3)          //第一处需要修改的地方 改为je
ee0ac033 5f              pop     edi
ee0ac034 5e              pop     esi
ee0ac035 c3              ret



4.kd> eb TesSafe+0x7031 0x74

5.kd> g
    还会断下,断下之后按F10

ee084112 a16c4b09ee             mov     eax,dword ptr [TesSafe+0x17b6c (ee094b6c)]
ee084117 8b402c                     mov     eax,dword ptr [eax+2Ch]
ee08411a 3305684b09ee        xor     eax,dword ptr [TesSafe+0x17b68 (ee094b68)]
ee084120 7404                        je      TesSafe+0x7126 (ee084126)
ee084122 ffd0                        call    eax                                //call KdDisableDebugger
ee084124 eb24                      jmp     TesSafe+0x714a (ee08414a)
ee084126 803d720209ee00  cmp     byte ptr [TesSafe+0x13272 (ee090272)],0
ee08412d 751b                    jne     TesSafe+0x714a (ee08414a)
ee08412f 6882010000          push    182h
ee084134 68e64d6e43         push    436E4DE6h
ee084139 6873426e57         push    576E4273h
ee08413e e849c9ffff            call    TesSafe+0x3a8c (ee080a8c)
ee084143 c605720209ee01  mov     byte ptr [TesSafe+0x13272 (ee090272)],1
ee08414a 8b0d640209ee    mov     ecx,dword ptr [TesSafe+0x13264 (ee090264)]
ee084150 85c9                    test    ecx,ecx                                                                            //u ecx = KiDebugRoutine
ee084152 740f                    je      TesSafe+0x7163 (ee084163)
ee084154 a1680209ee      mov     eax,dword ptr [TesSafe+0x13268 (ee090268)]
ee084159 85c0                    test    eax,eax                                                                            //u eax = KdpStub
ee08415b 7406                    je      TesSafe+0x7163 (ee084163)         //第二处需要修改的地方 改为jmp
ee08415d 3901                    cmp     dword ptr [ecx],eax


ee084163 c3                      ret


伪代码
if(KiDebugRoutine != null && KdpStub != null)
{
    KiDebugRoutine  = KdpStub;        //正常情况下 KiDebugRoutine  = KdpTrap
}

6.kd> eb TesSafe+0x715f 0xeb






总结(使用下面3条命令就行):
eb KdDisableDebugger 0xc3
eb TesSafe+0x7031 0x74
eb TesSafe+0x715f 0xeb




  • TA的每日心情
    开心
    2013-6-9 11:35
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    346022142 发表于 2013-5-11 22:07:06 | 显示全部楼层
    用VirtualKD 本来就能双机调试了  为何还要去修改呢   亲   
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2025-5-7 07:01 , File On Powered by Discuz! X3.49

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