您的位置:程序门 -> delphi -> windows sdk/api



hook api-之進程保護


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


hook api-之進程保護[已结贴,结贴人:takdick]
发表于:2007-04-18 10:16:30 楼主
hook   api-之進程保護
http://www.98exe.net/article/c/2006-04-05/1504.html
在網上看到了這一篇文章,按提供的源碼編譯一下該dll,發現裡面用到的processhandletoid,processidtofilename和postext函數代碼沒有附上,請問如何解決?或有沒有其他方法能達到同樣的效果?dll代碼如下:
library   dll;
uses
  windows,   sysutils,     classes;

const
prg_name   =   'ddos.exe ';

var   terminateprocessnext   :   function   (processhandle,   exitcode:   dword)   :   bool;   stdcall;
ntterminateprocessnext   :   function   (processhandle,   exitcode:   dword)   :   dword;   stdcall;


{$r   *.res}
function   thisisourprocess(processhandle:   dword)   :   boolean;
var   pid   :   dword;
arrch   :   array   [0..max_path]   of   char;
begin
pid   :=   processhandletoid(processhandle);
result   :=   (pid   <>   0)   and   processidtofilename(pid,   arrch)   and
(postext(prg_name,   arrch)   >   0);
end;    

function   terminateprocesscallback(processhandle,   exitcode:   dword)   :   bool;   stdcall;    
begin    
if   thisisourprocess(processhandle)   then    
begin    
result   :=   false;    
setlasterror(error_access_denied);    
end    
else    
result   :=   terminateprocessnext(processhandle,   exitcode);    

end;    

function   ntterminateprocesscallback(processhandle,   exitcode:   dword)   :   dword;   stdcall;    
const   status_access_denied   =   $c0000022;    
begin    
if   thisisourprocess(processhandle)   then    
begin    
result   :=   status_access_denied    
end    
else    
result   :=   ntterminateprocessnext(processhandle,   exitcode);    
end;    

begin
if   getversion   and   $80000000   =   0   then    
hookapi(   'ntdll.dll ',   'ntterminateprocess ',   @ntterminateprocesscallback,   @ntterminateprocessnext)
else   hookapi( 'kernel32.dll ',   'terminateprocess ',   @terminateprocesscallback,   @terminateprocessnext);    
end.
发表于:2007-04-18 11:14:161楼 得分:0
帮顶
发表于:2007-04-18 15:23:312楼 得分:0
帮顶
发表于:2007-04-18 20:50:573楼 得分:10
这段代码用了mad的全局hook,你所说的函就是其里面的,你用百度“全局hook”
发表于:2007-04-18 20:57:264楼 得分:0
頂下,好久沒去看上興了。
发表于:2007-04-18 21:54:395楼 得分:50
去我的空间里看看吧,有的,详细代码:http://hi.baidu.com/woshihaoge

里面有个“delphi下调用api   hook”

里面谈的是api钩子技术,主要例子用的是createprocess这个api函数
如果要实现进程保护,你可以把他改成api钩子对terminateprocess函数进行挂钩实现,以前我做过的,祝您好运
发表于:2007-04-18 21:55:406楼 得分:0
补充一下,以后可以多多交流
qq:89255913         msn:zhiliposui8@hotmail.com
发表于:2007-04-19 08:40:127楼 得分:0
up
關注ing...
发表于:2007-04-19 09:15:368楼 得分:10
这是mad   hookcode
不过偶用自己的方法,mad是好用却没代码,还是自己的实际d
发表于:2007-04-22 15:34:539楼 得分:0
弄了幾天,還是毫無頭緒,能否給段源碼呢,謝謝.
发表于:2007-04-23 16:32:1610楼 得分:0
up...
发表于:2007-04-23 17:37:1011楼 得分:30
用hook拦截createprocess等api就可以了,我已经实现了,不过这样的东西会和np冲突,至今没解决:(
发表于:2007-04-23 17:57:0712楼 得分:0
np是什麼?
能否共享一下源碼呢?
我的郵箱:takdick@netvigator.com
謝謝.
发表于:2007-04-24 16:54:2513楼 得分:0
np是nprotect,现在网游大都用此来防破解,防外挂,没有源码:)


快速检索

最新资讯
热门点击