能力值:
( LV2,RANK:10 )
|
-
-
26 楼
期待后文.....
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
佩服 + 学习
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
仔细学习中,努力....
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
仔细学习中,努力.....
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
仔细学习中,努力.
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
感谢楼主分享,确实很精彩
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
感谢楼主分享,确实很精彩...
|
能力值:
( LV2,RANK:10 )
|
-
-
33 楼
太精彩了,内容很丰富阿,我觉得LZ做完后可以出份chm~~
|
能力值:
( LV2,RANK:10 )
|
-
-
34 楼
收进我的看雪学院电子书 学习。
|
能力值:
( LV5,RANK:60 )
|
-
-
35 楼
很精彩 顶下
|
能力值:
( LV2,RANK:10 )
|
-
-
36 楼
感谢LZ,写的非常精要。
3.12里面写的红色药丸,其实就是黑客帝国里面尼奥得到的突破矩阵幻象的药丸。
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
多谢您的文章,对我帮助很大,您辛苦了!!!
|
能力值:
( LV9,RANK:150 )
|
-
-
38 楼
每次更新了,我都来看看,
|
能力值:
( LV3,RANK:20 )
|
-
-
39 楼
很强大,学习了..........
|
能力值:
( LV2,RANK:140 )
|
-
-
40 楼
ding~~
期待A系列~~
|
能力值:
(RANK:410 )
|
-
-
41 楼
在忙点别的事情.等忙完的再把这里补完.
|
能力值:
(RANK:1130 )
|
-
-
42 楼
这里也能换名字?
|
能力值:
(RANK:410 )
|
-
-
43 楼
呵呵.终于与国际成功接轨.成功更换马甲.
海风没打算换一个? 否则写的程序,老外看到的名字都是questionmark.
|
能力值:
(RANK:1130 )
|
-
-
44 楼
[QUOTE=;]...[/QUOTE]
不懂E文,走不了国际路线
|
能力值:
(RANK:410 )
|
-
-
45 楼
(Y).目前他们都用google来pediy.
所以最近常见 hai feng yue ying
|
能力值:
(RANK:1130 )
|
-
-
46 楼
google出来的结果是:fengyue
太丑了
|
能力值:
(RANK:410 )
|
-
-
47 楼
还不错.google翻译的结果 ....很浪漫. 浪漫=romantic=风花雪月.
|
能力值:
( LV2,RANK:10 )
|
-
-
48 楼
3Q~学习中...
|
能力值:
( LV6,RANK:90 )
|
-
-
49 楼
眼前一亮,收藏学习
|
能力值:
( LV2,RANK:140 )
|
-
-
50 楼
[QUOTE=shellwolf;494991]反调试技巧总结-原理和实现
-------------------------------------------------------------------------------------------------------
2008.8.7 shellwolf
一、 前言
...
2.14 FD_DebugObject_NtQueryObject();
如前面所描述的,当一个调试活动开始,一个"debug object"被创建,同也相应产生了一个句柄。我们可以查询这个调试对象列表,并检查调试对象的数量,以实现调试器的检测。
HMODULE hModule = GetModuleHandle("ntdll.dll");
PNtQueryObject NtQueryObject;
NtQueryObject = (PNtQueryObject)GetProcAddress(hModule,"NtQueryObject");
if(NtQueryObject==NULL)
return false;
unsigned char szdbgobj[25]=
"\x44\x00\x65\x00\x62\x00\x75\x00\x67\x00\x4f\x00\x62\x00\x6a\x00\x65\x00\x63\x00\x74\x00\x00\x00";
unsigned char *psz=&szdbgobj[0];
...[/QUOTE]
我居然用肉眼认出这szdbgobj[25]是"DebugObject".
|
|
|