流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4443回复:26

谁有暴力搜索4G空间,高效点的代码!

楼主#
更多 发布于:2002-06-21 21:26
偶写了一个用异常处理的方法!又慢又不稳定!
谁有跟好的解决方案!!

最新喜欢:

baoyibao99baoyib...
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-01 20:09
下面的例子是直接搜索KERNEL32。DLL的地址,用SEH不过对于汇编来说无所谓,只要2秒即可。
.586
.model flat, stdcall
option casemap :none  ; case sensitive
include \\masm32\\include\\windows.inc
include \\masm32\\include\\kernel32.inc
include \\masm32\\include\\user32.inc
includelib \\masm32\\lib\\kernel32.lib
includelib \\masm32\\lib\\user32.lib
;---------------------------------下面是上面用到的宏,我的mac.h比较长,就不贴了-----
    ddd    MACRO Text                        ;define data in .data section
        local name                  ;This and other can be used as: ddd(\"My god!\")
        .data                  ;isn\'t cool?
            name    db Text,0
        .code
        EXITM <addr name>  
    ENDM

  CTEXT MACRO y:VARARG                    ;This is a good macro
        LOCAL sym
    CONST segment
        IFIDNI <y>,<>
            sym db 0
        ELSE
            sym db y,0
        ENDIF
    CONST ends
        EXITM <OFFSET sym>
    ENDM

    m2m MACRO M1, M2                          ;mov is too boring sometimes!
      push M2
      pop  M1
    ENDM
  
;;--------------
per_xHandler        proto C :DWORD,:DWORD,:DWORD,:DWORD

.data
sztit  db \"Search Kernel Address\",0
AddrKernel32 dd ?
aKernel32 db \'Kernel32.dll的地址是:%x\',0
text db 100 dup(?)

;;-----------------------------------------
    .CODE
_Start:
        ;--------------------------
        ;install xhnadler
        ;-----------------------------------------
assume  fs:nothing
        push    offset per_xHandler
        push    fs:[0]
        mov    fs:[0],esp

mov edi,7fff0000h
Next:
        add edi,10000h
cmp edi,0ffff0000h
jnb Exit
assume edi:ptr IMAGE_DOS_HEADER
        cmp [edi].e_magic,IMAGE_DOS_SIGNATURE
jnz Next
mov esi,edi
assume esi:ptr IMAGE_DOS_HEADER
        add esi, [esi].e_lfanew
assume esi:ptr IMAGE_NT_HEADERS
        cmp [esi].Signature,IMAGE_NT_SIGNATURE
jnz Next
add esi,4      ;esi指向IMAGE_FILEHEADER
assume esi:ptr IMAGE_FILE_HEADER
        test [esi].Characteristics,2000h
jz Next       ;不是DLL文件
add esi,14h
add esi,60h    ;ESI指向EXPORT TABLE
mov esi,dword ptr[esi] ;ESI指向IMAGE-EXPORT-DIRECTORY
add esi,edi
add esi,4*3;指向DLL名字的指针
mov esi,dword ptr[esi]
add esi,edi
cmp dword ptr[esi],4e52454bh
jnz Next
        mov AddrKernel32,edi
invoke wsprintf,addr text,addr aKernel32,AddrKernel32
invoke MessageBoxA,0,addr text,addr sztit,MB_OK

        ;--------------------------
        ;uninstall xhnadler
        ;-----------------------------------------
    Exit:  
    pop fs:[0]
    add esp,4
    invoke    ExitProcess,0
;-----------------------------------------        
;异常处理句柄1,处理除法异常错误
per_xHandler PROC C pExcept:DWORD,pFrame:DWORD,pContext:DWORD,pDispatch:DWORD
        pushad
        MOV    ESI,pExcept
MOV    EDI,pContext
ASSUME  ESI:PTR EXCEPTION_RECORD
ASSUME  EDI:PTR CONTEXT
        TEST    [ESI].ExceptionFlags,1
        JNZ    @cantdo1
        TEST    [ESI].ExceptionFlags,6
        JNZ    @unwind1
        CMP    [ESI].ExceptionCode,0c0000005H
        JNZ    @cantdo1

        add  [edi].regEdi,10000h
        POPAD
    MOV  EAX, ExceptionContinueExecution
        RET

@unwind1:
        invoke    MessageBox,0,CTEXT(\"state: unwinding in xhandler1...\"),addr sztit,0
@cantdo1:
        POPAD
        MOV    EAX,ExceptionContinueSearch
    RET
per_xHandler ENDP
end _Start


非常感谢你的回复!!!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-01 20:03
我知道了你没有用异常处理呀
------------------------------------------------------------------------------
怎么可能呀,当然用了。API倒是没用

用了异常还COPY赶啥,直接搜索不是来得快点吗?

我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2002-06-28 20:01
下面的例子是直接搜索KERNEL32。DLL的地址,用SEH不过对于汇编来说无所谓,只要2秒即可。
.586
.model flat, stdcall
option casemap :none  ; case sensitive
include \\masm32\\include\\windows.inc
include \\masm32\\include\\kernel32.inc
include \\masm32\\include\\user32.inc
includelib \\masm32\\lib\\kernel32.lib
includelib \\masm32\\lib\\user32.lib
;---------------------------------下面是上面用到的宏,我的mac.h比较长,就不贴了-----
    ddd    MACRO Text                        ;define data in .data section
        local name                  ;This and other can be used as: ddd(\"My god!\")
        .data                  ;isn\'t cool?
            name    db Text,0
        .code
        EXITM <addr name>  
    ENDM

  CTEXT MACRO y:VARARG                    ;This is a good macro
        LOCAL sym
    CONST segment
        IFIDNI <y>,<>
            sym db 0
        ELSE
            sym db y,0
        ENDIF
    CONST ends
        EXITM <OFFSET sym>
    ENDM

    m2m MACRO M1, M2                          ;mov is too boring sometimes!
      push M2
      pop  M1
    ENDM
  
;;--------------
per_xHandler        proto C :DWORD,:DWORD,:DWORD,:DWORD

.data
sztit  db \"Search Kernel Address\",0
AddrKernel32 dd ?
aKernel32 db \'Kernel32.dll的地址是:%x\',0
text db 100 dup(?)

;;-----------------------------------------
    .CODE
_Start:
        ;--------------------------
        ;install xhnadler
        ;-----------------------------------------
assume  fs:nothing
        push    offset per_xHandler
        push    fs:[0]
        mov    fs:[0],esp

mov edi,7fff0000h
Next:
        add edi,10000h
cmp edi,0ffff0000h
jnb Exit
assume edi:ptr IMAGE_DOS_HEADER
        cmp [edi].e_magic,IMAGE_DOS_SIGNATURE
jnz Next
mov esi,edi
assume esi:ptr IMAGE_DOS_HEADER
        add esi, [esi].e_lfanew
assume esi:ptr IMAGE_NT_HEADERS
        cmp [esi].Signature,IMAGE_NT_SIGNATURE
jnz Next
add esi,4      ;esi指向IMAGE_FILEHEADER
assume esi:ptr IMAGE_FILE_HEADER
        test [esi].Characteristics,2000h
jz Next       ;不是DLL文件
add esi,14h
add esi,60h    ;ESI指向EXPORT TABLE
mov esi,dword ptr[esi] ;ESI指向IMAGE-EXPORT-DIRECTORY
add esi,edi
add esi,4*3;指向DLL名字的指针
mov esi,dword ptr[esi]
add esi,edi
cmp dword ptr[esi],4e52454bh
jnz Next
        mov AddrKernel32,edi
invoke wsprintf,addr text,addr aKernel32,AddrKernel32
invoke MessageBoxA,0,addr text,addr sztit,MB_OK

        ;--------------------------
        ;uninstall xhnadler
        ;-----------------------------------------
    Exit:  
    pop fs:[0]
    add esp,4
    invoke    ExitProcess,0
;-----------------------------------------        
;异常处理句柄1,处理除法异常错误
per_xHandler PROC C pExcept:DWORD,pFrame:DWORD,pContext:DWORD,pDispatch:DWORD
        pushad
        MOV    ESI,pExcept
MOV    EDI,pContext
ASSUME  ESI:PTR EXCEPTION_RECORD
ASSUME  EDI:PTR CONTEXT
        TEST    [ESI].ExceptionFlags,1
        JNZ    @cantdo1
        TEST    [ESI].ExceptionFlags,6
        JNZ    @unwind1
        CMP    [ESI].ExceptionCode,0c0000005H
        JNZ    @cantdo1

        add  [edi].regEdi,10000h
        POPAD
    MOV  EAX, ExceptionContinueExecution
        RET

@unwind1:
        invoke    MessageBox,0,CTEXT(\"state: unwinding in xhandler1...\"),addr sztit,0
@cantdo1:
        POPAD
        MOV    EAX,ExceptionContinueSearch
    RET
per_xHandler ENDP
end _Start
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-28 08:29
我知道了你没有用异常处理呀
------------------------------------------------------------------------------
怎么可能呀,当然用了。API倒是没用
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-27 21:38
啊!我知道了你没有用异常处理呀!!写病毒我看行不通吧!!如果用API ReadProcessMemory也行,金山游侠就用这个!!
用异常可慢了!!一般是几M/秒吧!!可能是偶的机子慢了点吧!! :D :D
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-27 21:08
我搜2G空间几秒而已
------------------------------------------------------------------------
夸张了一点,呵呵。这么快是因为没做额外的事情
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-06-27 20:50
我发现4K的条速度还是不快,可是比以前快了!
你是用VC写的吗?我发现如果不用汇编级调试是不可能通过的!用
VC不适合写这东西!它是用寄存器变量的,异常处理修改地址内容是不行的!非得找出变量使用的寄存器,修改掉才行!不然就进入死循环了
------------------------------------------------------------------------------------------
呵呵,你希望的块是多快?我搜2G空间几秒而已。
你是搜本进程空间的话,可先分配一个Buffer,memcpy4K的内容后在buffer里找你要的东西。copy失败就下一个4K...
VC写这东西没什么不好呀.
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-06-27 20:20
它的办法是有特殊性的,只需搜部分。


不用API可以搜的非常快,我试了我开始说的4k4k得跳过,非常快,你试试。

另外,NT架构下的病毒可以直接用NativeAPI而无需函数地址。

我发现4K的条速度还是不快,可是比以前快了!
你是用VC写的吗?我发现如果不用汇编级调试是不可能通过的!用
VC不适合写这东西!它是用寄存器变量的,异常处理修改地址内容是不行的!非得找出变量使用的寄存器,修改掉才行!不然就进入死循环了!
谢谢你的在吃回复!!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-06-26 13:15
它的办法是有特殊性的,只需搜部分。


不用API可以搜的非常快,我试了我开始说的4k4k得跳过,非常快,你试试。

另外,NT架构下的病毒可以直接用NativeAPI而无需函数地址。
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-06-26 13:02
要写病毒就用上面的例子!写程序的话就用API好了!就算解决问题了吧!!
谢谢大家的关心和支持,来者有分!!!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-06-26 12:58
有太多的不存在页!就会产生N多异常
-----------------------------------------------------------------------
可以先Query在读取。
另外,你是不是try块里直接狂读呀,如果是发现一页第一个DWORD就有异常,直接跳过此页,似乎没那么慢呀。


你这也是个好方法!但可靠性不高!对部分系统可能不行!
我用的是98+2K
我在nsfocus看到了这个虽然不能解决4G搜索但还是用用的!他省掉了很多的异常!!
void shellcodefn()
{
   int         *except[3];
   FARPROC     procgetadd=0;
   char        *stradd;
   int         imgbase,fnbase,i,k,l;
   HANDLE      libhandle;
   _asm {
     jmp          nextcall
     getstradd:   pop    stradd
                  lea    EDI,except
            mov    eax,dword ptr FS:[0]
            mov    dword ptr [edi+0x08],eax
            mov    dword ptr FS:[0],EDI
    }
    except[0]=0xffffffff;
    except[1]=stradd-0x07;
/* 保存异常结构链和修改异常结构链,SHELLCODE接管异常 */

    imgbase=0x77e00000;
/* 搜索KERNEL32.DLL 的起始其实地址 */

         call getexceptretadd
   }
/* 得到异常后的返回地址 */
   for(;imgbase<0xbffa0000,procgetadd==0;){
       imgbase+=0x10000;
/*  模块地址是64K为单位,加快速度*/
       if(imgbase==0x78000000) imgbase=0xbff00000;
/*  如果到这还没有搜索到,那可能是WIN9X系统 */
       if(*( WORD *)imgbase==\'ZM\'&& *(WORD *)
       (imgbase+*(int *)(imgbase+0x3c))==\'EP\'){
/* 模块结构的模块头 */
         fnbase=*(int *)(imgbase+*(int *)(imgbase+0x3c)+0x78)+imgbase;
         k=*(int *)(fnbase+0xc)+imgbase;
         if(*(int *)k ==\'NREK\'&&*(int *)(k+4)==\'23LE\'){
/* 模块名 */
             libhandle=imgbase;
/* 得到模块头地址,就是模块句柄 */
             k=imgbase+*(int *)(fnbase+0x20);
             for(l=0;l<*(int *) (fnbase+0x18);++l,k+=4){
                   if(*(int *)(imgbase+*(int *)k)==\'PteG\'&&*(int *)(4+imgbase+*(int *)k)==\'Acor\'){
/* 引出名 */
                   k=*(WORD *)(l+l+imgbase+*(int *)(fnbase+0x24));
                   k+=*(int *)(fnbase+0x10)-1;
                   k=*(int *)(k+k+k+k+imgbase+*(int *)(fnbase+0x1c));
                   procgetadd=k+imgbase;
/* API地址 */
                   break;
             }
          }
        }
    }
}
// 搜索KERNEL32。DLL模块地址和API函数 GetProcAddress地址
// 注意这儿处理了搜索页面不在情况。

   _asm{
       lea edi,except
          mov eax,dword ptr [edi+0x08]
       mov dword ptr fs:[0],eax
   }
/* 恢复异常结构链 */


if(procgetadd==0) goto  die ;
/* 如果没找到GetProcAddress地址死循环 */
  die: goto die  ;

  _asm{

getexceptretadd:   pop  eax
             push eax
             mov  edi,dword ptr [stradd]
             mov dword ptr [edi-0x0e],eax
             ret
/* 得到异常后的返回地址,并填写到异常处理模块 */

/* 异常处理模块 */
errprogram:         mov eax,dword ptr [esp+0x0c]
             add eax,0xb8
             mov dword ptr [eax],0x11223344 //stradd-0xe
/* 修改异常返回EIP指针 */
             xor eax,eax              //2
/* 不提示异常 */
             ret                  //1
/* 异常处理返回 */
execptprogram:     jmp errprogram              //2 bytes stradd-7
nextcall:          call getstradd              //5 bytes
   }
}
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-06-26 12:48
有太多的不存在页!就会产生N多异常
-----------------------------------------------------------------------
可以先Query在读取。
另外,你是不是try块里直接狂读呀,如果是发现一页第一个DWORD就有异常,直接跳过此页,似乎没那么慢呀。
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-06-26 12:44
我看了ReadProcessMemory他也调用了其他的API
-------------------------------------------------------------------------
你用的是98?2000?
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-06-26 12:40
流氓兔的意思是仿照ReadProcessMemory来构造自己的函数。我看了一下,ReadProcessMemory->ntdll!NtReadVirtualMemory->内核服务例程,而内核服务例程预处理后就KeAttachProcess,并直接repz movsd,地址无效怎办?其实它也用的是结构化异常处理。
hoho,搞不懂“又慢又不稳定”怎会?

我看了ReadProcessMemory他也调用了其他的API偶看这条路是行不通了!
搜索一俩个地址看不效率,要对整个4G空间搜索就慢了!有太多的不存在页!就会产生N多异常!!哪就慢了。
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-06-26 12:39
那ReadProcessMemory从哪里来
-------------------------------------------------------------------------
在NT/2000下,直接用int2e好了,几句话而已,病毒使用完全可以;9x下也类似用未公开的VxdCall。XP用sysenter这个似乎不必,我在别人的XP上仍可用int2e。总的来说,要有几个版本是个大缺点。
Nouk
驱动中牛
驱动中牛
  • 注册日期2001-08-22
  • 最后登录2006-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-06-26 10:03
我说的是 USER API
ReadProcessMemory
 

ccc
ReadProcessMemory->ntdll!NtReadVirtualMemory
ReadProcessMemory->VxD Service.
That\'s the user mode wrapper.
So I say kernel function.
Becaz u says u need to analysis it....
Taiwan's Driver Developer
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-06-26 09:12
流氓兔的意思是仿照ReadProcessMemory来构造自己的函数。我看了一下,ReadProcessMemory->ntdll!NtReadVirtualMemory->内核服务例程,而内核服务例程预处理后就KeAttachProcess,并直接repz movsd,地址无效怎办?其实它也用的是结构化异常处理。
hoho,搞不懂“又慢又不稳定”怎会?
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-06-26 09:01
我说的是 USER API
ReadProcessMemory
 

霍藿,高见,人家正是要搜API的地址,那ReadProcessMemory从哪里来?
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-06-25 21:43
我说的是 USER API
ReadProcessMemory
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
上一页
游客

返回顶部