能力值:
( LV12,RANK:570 )
在线值:

|
-
-
2 楼
你反汇编一下kernel32.dll找到isdebuggerpresent函数,它的代码前两行就是获得地址.你自己看看,我在哥家,手头没有工具.
|
能力值:
( LV13,RANK:530 )
|
-
-
3 楼
你把代码注入进去执行。无论如何都可以得到了。
|
能力值:
( LV12,RANK:450 )
在线值:
|
-
-
4 楼
77E6F5A1 ; BOOL IsDebuggerPresent(void)
77E6F5A1 public _IsDebuggerPresent@0
77E6F5A1 _IsDebuggerPresent@0 proc near
77E6F5A1 mov eax, large fs:18h
77E6F5A7 mov eax, [eax+30h]
77E6F5AA movzx eax, byte ptr [eax+2]
77E6F5AE retn
77E6F5AE _IsDebuggerPresent@0 endp
|
能力值:
( LV2,RANK:150 )
在线值:
|
-
-
5 楼
我知道了,谢谢了大家
|
能力值:
( LV9,RANK:170 )
|
-
-
6 楼
c++的,我的cooldumpper是这么取fs的实际地址的,不知道是否对lz有帮助
CONTEXT Context;
LDT_ENTRY SelEntry;
BOOL bOk = false;
Context.ContextFlags = CONTEXT_FULL | CONTEXT_DEBUG_REGISTERS;
bOk = ::GetThreadContext(hThread, &Context);
ASSERT(bOK);
bOk = GetThreadSelectorEntry(hThread, Context.SegFs, &SelEntry);
ASSERT(bOk);
DWORD dwFSBase = ( SelEntry.HighWord.Bits.BaseHi << 24) |
(SelEntry.HighWord.Bits.BaseMid << 16) |
SelEntry.BaseLow;
更多的调试api的说明 可以看看这篇文章
http://blog.csdn.net/hackwaly/archive/2007/03/26/1542075.aspx
|
能力值:
( LV2,RANK:150 )
在线值:
|
-
-
7 楼
[QUOTE=;]...[/QUOTE]
多谢6楼的兄弟,要的就是你的这个方法。。。。。。
|
|
|