首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

小弟我的Delphi 难题

2012-10-14 
我的Delphi 难题!function NewNtResumeThread(hThread:CardinalPreviousSuspendCount:PULONG):Cardinals

我的Delphi 难题!
function NewNtResumeThread(hThread:Cardinal;PreviousSuspendCount:PULONG):Cardinal;stdcall;
type
  TNewNtResumeThread=function (hThread:Cardinal;PreviousSuspendCount:PULONG):Cardinal;stdcall;
begin
if vspas then
  begin
  vspas:=False;
  htd:=InjectTo(String(curfile), Shared^.localdll+'main.dll');
  curfile:='';
  //WaitForSingleObject(htd,INFINITE );
  end;
  Hook[6].UnHook;
  Result:=TNewNtResumeThread(Hook[6].BaseAddr)(hThread,PreviousSuspendCount);
  Hook[6].Hook;
end;

为了hook住控制台程序,在上面加入了WaitForSingleObject(htd,INFINITE );但加入这句后,不是控制台程序则运行时不能正常运行,运行时,在插入的线程结束后就自己退出了!也没有错误提示!
不加WaitForSingleObject则可以,但hook不住控制台程序或不含GUI的程序!
我想要的是能hook住所有的程序创建,现在就剩下这个问题搞不定!
请大家帮我写下,指下,问题出在哪?


[解决办法]
路过,学习
[解决办法]
楼主加了WaitForSingleObject(htd,INFINITE );后到底有没有实现你想的功能啊,没看明白
[解决办法]
InjectTo 楼主是想注入DLL吧


[解决办法]
NtResumeThread 函数不是创建进程才调用, 你在哪里做的判断?

[解决办法]
你要注入的DLL怎么写的, 有没做避免重复注入的处理
[解决办法]
vspas 这个条件不知道你怎么判断的,感觉不对
你把自己都注入了, 要注入的反倒没注入? 

热点排行