首页
社区
课程
招聘
[原创]对抗OD内存断点
发表于: 2007-9-28 21:08 21094

[原创]对抗OD内存断点

2007-9-28 21:08
21094

10月11号提前版,纪念“堕落天才”这个ID注册一周年。

   (标题看起来可能很诱人,内容却很简单,希望你不会太失望)

1,OD内存断点原理
   A,内存访问断点,OD将目标内存所在的页面(范围圆整为1000h的倍数)设置为PAGE_NOACCESS,当被调试程序对这个内存进行任何“读、写或运行”操作时,都会触发异常。
   B,内存写入断点,OD将目标内存所在的页面(范围圆整为1000h的倍数)设置为PAGE_EXECUTE_READ,当被调试程序对这个内存进行“写”操作时触发异常。
   (原来都不是传说中的PAGE_GUARD?太惊讶了。)   

2,反OD内存断点原理
   要知道OD可以通过VirtualProtectEx改变内存页面属性,我们当然也可以修改,这样我们就可以发现内存断点或使其失效。
3,代码1

.386
.model flat,stdcall
option casemap:none

include windows.inc
include kernel32.inc
include user32.inc

includelib kernel32.lib
includelib user32.lib


.data
szAppName  db "Anti memory break point - By 堕落天才",0
szText     db "Hi,try to set a memory break point here!",0
szFound    db "A memory break point was found!",0

.data?
dwOldProtect dd ?

.code     
     
_start:                       
      
     invoke lstrlen,addr szText
     inc eax 
              
     invoke VirtualProtect,addr szText,eax,PAGE_READWRITE,addr dwOldProtect   
     
     .if eax == FALSE
         
          invoke GetLastError 
          .if eax == ERROR_NOACCESS
            
             invoke MessageBox,NULL,addr szFound,addr szAppName,MB_OK
             jmp @ExitMain
                         
          .endif
         
     .endif  
     
     invoke MessageBox,NULL,addr szText,addr szAppName,MB_OK     
     
  @ExitMain:     
     invoke ExitProcess,0       
     
     
end _start  

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (25)
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
2
不好意思,我坐天才的沙发,坐着学习
2007-9-28 21:15
0
雪    币: 47147
活跃值: (20445)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
希望看到更多的烂文
2007-9-28 21:44
0
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
不公平啊
我很久以前就发过了
http://bbs.pediy.com/showthread.php?t=18469
有原理也有代码
为什么不给我精华
请kanxue明示
2007-9-28 22:09
0
雪    币: 47147
活跃值: (20445)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
原来南蛮妈妈早就发现这个原理了,那帖以前没看到,论坛精华9会补收进来的。
2007-9-28 22:30
0
雪    币: 293
活跃值: (110)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
6
汗一个,早知就不献丑了。抢了南蛮妈妈的精华。
2007-9-28 23:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我也打算发一份,换一个精华。
2007-9-28 23:12
0
雪    币: 280
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
天才兄,我对你那篇SSDT HOOK对抗inline hook的文章有个疑问,你帮我解决一下吧,我把问题发到那贴上面了。
2007-9-28 23:27
0
雪    币: 191
活跃值: (345)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
9
虽然简单,但简单的有道理,呵呵,支持一下。
2007-9-29 13:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
支持一下支持一下支持一下
2007-9-29 14:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这地方怎么不深入一下,最好写个专题
2007-9-29 17:50
0
雪    币: 226
活跃值: (15)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
给你的精华开个追悼会。
2007-9-29 18:36
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
一年就有这水平,不错
2007-9-29 21:01
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
14
简单的才是好的。~~~你觉得简单,我们可不觉得简单
2007-9-30 15:55
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
15
努力学习中...
2007-10-2 22:42
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
16
你顾着看周日八点档,所以不给精华
2007-10-3 10:27
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
学习了,谢谢
2007-10-6 16:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
有道理支持你
[QUOTE]
[/QUOTE]
2007-10-10 23:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
good!!
2007-10-11 10:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
支持楼主发帖
2007-10-11 10:59
0
雪    币: 224
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
21
一年前,我也是什么也不懂
但是一年后,我仍然还是什么也不懂
但是在这一年间,学会了几款游戏~~~
2007-11-21 21:38
0
雪    币: 224
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
22
真是不明白
为什么代码一样,结果完全不一样呢????
狂晕中!!!
2007-11-21 21:43
0
雪    币: 213
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
简单,但是有效,呵呵
2007-12-5 20:18
0
雪    币: 1657
活跃值: (291)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
24
支持,看雪很长时间了,刚注册的时候,自己垃圾就没发什么,后来,就没再来了(做了某论坛的总版),直到现在才来!(现在退了,让新人上了)。我的这类知识,很多都是大大们教的,还有就是从咱看雪偷偷学的。只学不说话,因为,有一次说话,太尴尬!当时,咱很菜的~~~:)。
2007-12-6 11:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
学习,支持....
2008-1-20 19:10
0
游客
登录 | 注册 方可回帖
返回
//