首页
社区
课程
招聘
[旧帖] hook NtQuerySystemInformation 进程结构里是空的怎么办 delphi码 0.00雪花
发表于: 2015-11-23 00:53 6100

[旧帖] hook NtQuerySystemInformation 进程结构里是空的怎么办 delphi码 0.00雪花

2015-11-23 00:53
6100
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 2096
活跃值: (1872)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先执行一次old 然后你在看看有没有这个结构
2015-11-23 08:55
0
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
WIN7上没有这个结构了吗
2015-11-24 00:47
0
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
怎么弄呀
2015-11-27 01:40
0
雪    币: 8188
活跃值: (2857)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
5
function  NewNtQuerySystemInformation(
    SystemInformationClass : SYSTEM_INFORMATION_CLASS;
    SystemInformation : PVOID;
    SystemInformationLength : ULONG;
    ReturnLength : PULONG
  NTSTATUS; stdcall;
type
   TNewNtQuerySystemInformation= function (
   SystemInformationClass : SYSTEM_INFORMATION_CLASS;
   SystemInformation : PVOID;
    SystemInformationLength : ULONG;
    ReturnLength : PULONG
  NTSTATUS; stdcall;

var
pSystemProcesses,prev:PSYSTEM_PROCESSES;
begin
Hook[53].UnHook;

Result:= TNewNtQuerySystemInformation(Hook[53].BaseAddr)(SystemInformationClass,SystemInformation,SystemInformationLength,ReturnLength);
if SystemInformationClass= SystemProcessesAndThreadsInformation && Result then


  begin
   pSystemProcesses := PSYSTEM_PROCESSES(SystemInformation);

    while true do
    begin
    //ShowMessage(IntToStr(pSystemProcesses^.ProcessId));这里输出进程ID全部为0,hook到了程序里的调用不应该为0的呀,这代码没申请内存还是怎么回事
      if (pSystemProcesses^.ProcessId = GetCurrentProcessId) then       begin

        if (pSystemProcesses^.NextEntryDelta)=0 then
        begin

          Prev^.NextEntryDelta:= pSystemProcesses^.NextEntryDelta;
        end else
        begin
         Prev^.NextEntryDelta:=0;
        end;
        break;
      end;
      if (pSystemProcesses^.NextEntryDelta = 0) then break;
      Prev:=pSystemProcesses;
      pSystemProcesses := PSYSTEM_PROCESSES(ULONG(pSystemProcesses) + pSystemProcesses^.NextEntryDelta);
    end;
  end;                        

Result:= TNewNtQuerySystemInformation(Hook[53].BaseAddr)(SystemInformationClass,SystemInformation,SystemInformationLength,ReturnLength);

//Result := 0;
// ShowMessage(IntToStr(Result));
Hook[53].Hook;
end;
2015-11-27 08:26
0
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
Result>0   还是0 是不是  pSystemProcesses := PSYSTEM_PROCESSES(SystemInformation);没申请内存呀还是什么原因
2015-11-27 20:52
0
游客
登录 | 注册 方可回帖
返回
//