首页
社区
课程
招聘
delphi如何获取nt函数的服务号
发表于: 2009-12-25 14:17 3525

delphi如何获取nt函数的服务号

2009-12-25 14:17
3525
请问delphi如何获取nt函数的服务号,函数地址+1确实能拿到,但是乱了,我贴出代码,牛牛们帮忙指正下。。。

type
  TDWordArray = array [0..$FFFFF] of DWORD;
  TWordArray = array [0..$FFFFF] of WORD;
var
  dirsize: Cardinal;
  imageinfo:LoadedImage;
  ped:PImageExportDirectory;
  pFunRVAs,pNameRVAs: ^TDWordArray;
  i,kiss:Integer;
  funName:string;
  addre:DWORD;
begin
  if MapAndLoad(PAnsiChar('ntdll.dll'),nil,@imageinfo,True,True) then begin
    ped:=ImageDirectoryEntryToData(imageinfo.MappedAddress,False,IMAGE_DIRECTORY_ENTRY_EXPORT,dirsize);
    pFunRVAs := ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,DWORD(ped^.AddressOfFunctions), nil);
    pNameRVAs := ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,DWORD(ped^.AddressOfNames), nil);
    for i := 0 to ped^.NumberOfFunctions -1 do
    begin
      try
        funName:=PChar(ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,pNameRVAs^[i], nil));
        if Copy(funName,1,2)='Nt' then begin
          mmo1.Lines.Add(funName);
          addre:=DWORD(ImageRvaToVa(imageinfo.FileHeader,imageinfo.MappedAddress,pFunRVAs^[i],nil));
          addre:=addre+1;
          mmo1.Lines.Add(IntToHex(PWORD(addre)^,2));
        end;
      except

      end;

    end;
    UnMapAndLoad(@imageinfo);
  end;
end;


我这里的一部分结果
NtAcceptConnectPort
681C
NtAccessCheck
C4
NtAccessCheckAndAuditAlarm
680C
NtAccessCheckByType
6850
NtAccessCheckByTypeAndAuditAlarm
00
NtAccessCheckByTypeResultList
00
NtAccessCheckByTypeResultListAndAuditAlarm
00
NtAccessCheckByTypeResultListAndAuditAlarmByHandle
00
NtAddAtom
01
NtAddBootEntry
02
NtAdjustGroupsToken
03
NtAdjustPrivilegesToken
04
NtAlertResumeThread
05
NtAlertThread
06
NtAllocateLocallyUniqueId
07
NtAllocateUserPhysicalPages
08
NtAllocateUuids
09
NtAllocateVirtualMemory
0A
NtAreMappedFilesTheSame
0B
NtAssignProcessToJobObject
0C
NtCallbackReturn
0D
NtCancelDeviceWakeupRequest
0E

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
牛牛们帮帮忙吧
2009-12-25 14:56
0
雪    币: 43
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不明白 定了 顶了
2009-12-25 15:56
0
雪    币: 231
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
对delphi不熟悉,从思路来说是没有什么问题了,你仔细分析调试下应该能够发现问题的.
2009-12-25 17:03
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
啊啊啊啊啊啊啊啊,救命啊
2009-12-25 17:12
0
游客
登录 | 注册 方可回帖
返回
//