如何使用汇编代码取得DLL的加载地址?

时间:2021-01-25 01:04:27
如何使用汇编代码取得DLL的加载地址?比如ntdll.dll

5 个解决方案

#1


你是说loadlibrary吗

#2


是用GetModuleHandle('ntdll.dll')获得的地址

#3


x86 代码:
szntdll byte "ntdll.dll",0

push offset szntdll
call GetMoudleHandleA

x64代码:
szntdll byte "ntdll.dll",0

lea rcx, szntdll
call GetModuleHandleA

#4


另一种办法是从进程的已加载dll列表中获取各个dll的base address

#5


楼主,如果你要的DLL还没有加载的话,用GetModuleHandle会失败,就只能用LoadLibrary。不管DLL有没有加载,LoadLibrary都不会失败。

#1


你是说loadlibrary吗

#2


是用GetModuleHandle('ntdll.dll')获得的地址

#3


x86 代码:
szntdll byte "ntdll.dll",0

push offset szntdll
call GetMoudleHandleA

x64代码:
szntdll byte "ntdll.dll",0

lea rcx, szntdll
call GetModuleHandleA

#4


另一种办法是从进程的已加载dll列表中获取各个dll的base address

#5


楼主,如果你要的DLL还没有加载的话,用GetModuleHandle会失败,就只能用LoadLibrary。不管DLL有没有加载,LoadLibrary都不会失败。