首页
社区
课程
招聘
[求助]内存加载ntdll后,查找api地址
发表于: 2014-11-2 12:38 4667

[求助]内存加载ntdll后,查找api地址

2014-11-2 12:38
4667
问题,把ntdll.dll从硬盘加载到内存,然后,从内存中找一个api的地址,比如:ZwQuerySystemInformation,
每次从 头遍历到最后,耗时较长,有没有好一点的方法

如下:

...

[1034/1315] FunctionName=ZwPrivilegedServiceAuditAlarm
[1035/1315] FunctionName=ZwProtectVirtualMemory
[1036/1315] FunctionName=ZwPulseEvent
[1037/1315] FunctionName=ZwQueryAttributesFile
[1038/1315] FunctionName=ZwQueryBootEntryOrder
[1039/1315] FunctionName=ZwQueryBootOptions
[1040/1315] FunctionName=ZwQueryDebugFilterState
[1041/1315] FunctionName=ZwQueryDefaultLocale
[1042/1315] FunctionName=ZwQueryDefaultUILanguage
[1043/1315] FunctionName=ZwQueryDirectoryFile
[1044/1315] FunctionName=ZwQueryDirectoryObject
[1045/1315] FunctionName=ZwQueryEaFile
[1046/1315] FunctionName=ZwQueryEvent
[1047/1315] FunctionName=ZwQueryFullAttributesFile
[1048/1315] FunctionName=ZwQueryInformationAtom
[1049/1315] FunctionName=ZwQueryInformationFile
[1050/1315] FunctionName=ZwQueryInformationJobObject
[1051/1315] FunctionName=ZwQueryInformationPort
[1052/1315] FunctionName=ZwQueryInformationProcess
[1053/1315] FunctionName=ZwQueryInformationThread
[1054/1315] FunctionName=ZwQueryInformationToken
[1055/1315] FunctionName=ZwQueryInstallUILanguage
[1056/1315] FunctionName=ZwQueryIntervalProfile
[1057/1315] FunctionName=ZwQueryIoCompletion
[1058/1315] FunctionName=ZwQueryKey
[1059/1315] FunctionName=ZwQueryMultipleValueKey
[1060/1315] FunctionName=ZwQueryMutant
[1061/1315] FunctionName=ZwQueryObject
[1062/1315] FunctionName=ZwQueryOpenSubKeys
[1063/1315] FunctionName=ZwQueryPerformanceCounter
[1064/1315] FunctionName=ZwQueryPortInformationProcess
[1065/1315] FunctionName=ZwQueryQuotaInformationFile
[1066/1315] FunctionName=ZwQuerySection
[1067/1315] FunctionName=ZwQuerySecurityObject
[1068/1315] FunctionName=ZwQuerySemaphore
[1069/1315] FunctionName=ZwQuerySymbolicLinkObject
[1070/1315] FunctionName=ZwQuerySystemEnvironmentValue
[1071/1315] FunctionName=ZwQuerySystemEnvironmentValueEx
[1072/1315] FunctionName=ZwQuerySystemInformation

总共1315个api,从头比较到1072,感觉耗时,很长,有木有更好的方法一下定位到这个api地址呢。



请教了。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 261
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
二分查找
记得系统DLL都是字典序的
2014-11-2 13:44
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哦了,,,有木有相关代码啊
2014-11-2 15:06
0
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我是菜鸟,不懂,我想能不能每次都只找第一个的位置,再计算相对位置。
2014-11-2 16:27
0
雪    币: 8188
活跃值: (2777)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
5
用一个数组保存一下地址不就完事了?O(1)还不够快?
2014-11-2 21:42
0
雪    币: 261
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你可以找一下模拟GetProcAddress的代码,大多数人用的都是二分查找
2014-11-2 22:18
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
好的 ,多谢。二分法是个不错的方法。。
2014-12-24 15:03
0
游客
登录 | 注册 方可回帖
返回
//