首页
社区
课程
招聘
[原创]让OD不靠INT3调试
发表于: 2010-12-5 11:49 13079

[原创]让OD不靠INT3调试

2010-12-5 11:49
13079
dbSTI        db 0FBh

MyWaitForDebugEvent proc uses esi lpDebugEvent,dwMilliseconds
       
        invoke WaitForDebugEvent,lpDebugEvent,dwMilliseconds
        mov esi, lpDebugEvent
        assume esi:ptr DEBUG_EVENT
        .if [esi].dwDebugEventCode == EXCEPTION_DEBUG_EVENT &&\
                [esi].u.Exception.pExceptionRecord.ExceptionCode == EXCEPTION_PRIV_INSTRUCTION
                mov [esi].u.Exception.pExceptionRecord.ExceptionCode, EXCEPTION_BREAKPOINT
        .endif
        ret
       
MyWaitForDebugEvent endp

        local tempbuf[5]:BYTE
       
comment*
004197AD    |. C645 F3 CC     mov byte ptr [ebp-D],0CC                 ;  INT 3
00418CA4    |. 81FA CC000000  cmp edx,0CC                           ;  INT 3
00418D4F    |. 68 CC000000    push 0CC                              ;  INT 3
00418D06    |. 68 CC000000    push 0CC                              ;  INT3
*
       
        invoke WriteProcessMemory,-1,004197ADh+3,offset dbSTI,1,NULL
        invoke WriteProcessMemory,-1,00418CA4h+2,offset dbSTI,1,NULL
        invoke WriteProcessMemory,-1,00418D4Fh+1,offset dbSTI,1,NULL
        invoke WriteProcessMemory,-1,00418D06h+1,offset dbSTI,1,NULL
       
comment*
00439618   . 68 14574D00    push 004D5714                         ; |pDebugEvent = OllyICE.004D5714
0043961D   . E8 E85B0700    call <jmp.&KERNEL32.WaitForDebugEvent>; \WaitForDebugEvent
00439622   . 85C0           test eax,eax
*

        lea eax, tempbuf
        mov ecx, offset MyWaitForDebugEvent
        sub ecx, 0043961Dh+1
        sub ecx, 4
        mov DWORD ptr[eax], ecx
        invoke WriteProcessMemory,-1,0043961Dh+1,eax,4,0

把OD写内存的BUF(INT 3)换成了sti,,并且HOOK了WaitForDebugEvent伪造消息可以达到不用INT3调试的目的,当然完全不用INT 3还有很多事情要做,但这段代码可以对抗低级anti debug,特别是检测CC的
由于用的是硬编码,也不放编译好的东东上来了,还有为了避免,,部分代码没发出来

[课程]Linux pwn 探索篇!

收藏
免费 7
支持
分享
最新回复 (15)
雪    币: 768
活跃值: (515)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
2
Mark 学习~~
2010-12-5 12:14
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
避免啥?避免啥?
2010-12-5 12:20
0
雪    币: 65
活跃值: (118)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
看看如何让OD不靠INT3调试~
2010-12-5 13:59
0
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
5
所以要封杀int1
2010-12-5 21:04
0
雪    币: 34
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
哦也哦也哦也
2010-12-5 21:34
0
雪    币: 1683
活跃值: (674)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Mark Mark
2010-12-5 22:11
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
8
反调试是一门高深的学问,需要充电。
2010-12-5 23:48
0
雪    币: 213
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
MARK~~
2010-12-6 10:00
0
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好方法!!
2010-12-6 13:49
0
雪    币: 263
活跃值: (17)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
看看学习。。
2010-12-6 19:45
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
int1是为了防止单步吗?
2010-12-7 07:12
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
sod无敌于天下
2010-12-7 08:36
0
雪    币: 197
活跃值: (82)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
Mark学习
2010-12-7 08:46
0
雪    币: 125
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
Mark学习
2011-5-7 16:57
0
雪    币: 29
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
不错。帮顶。
2011-5-13 02:39
0
游客
登录 | 注册 方可回帖
返回
//