怎么获取dll中的函数地址
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么获取dll中的函数地址相关的知识,希望对你有一定的参考价值。
这个有很多办法,我先给你列举最简单的:
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);void TestFunc()
PGNSI pGNSI;
SYSTEM_INFO si;
ZeroMemory(&si, sizeof(SYSTEM_INFO));
hMoudle = LoadLibrary("ntdll.dll");
//pGNSI的值就是函数的地址
pGNSI = (PGNSI)GetProcAddress(hModule,"ZwQueryInformationProcess");
还有从内存中载入,PE分析,对比输出表中的函数等,稍微复杂一些!楼主感兴趣可以自己去查
参考技术A 这通常是很难的。没有什么特别好的方法可以准确的得到dll的调用接口。 一般的办法是这样: 1. 查询dll的导出函数表来得到该dll导出了多少个函数。这可以通过工具软件得到,比如PE Explorer. 2. 自己设计一个加载程序,把该dll加载上来PowerBulider获取计算机mac地址
PowerBulider获取计算机mac地址
1、下载GETNET.DLL获取网络资源的API
2、PB的全局函数中的引入需要API,常用API列表如下
//得到计算机名字
function boolean GetComputerNameA(ref string lpBuffer, ref ulong nSize) library "KERNEL32.DLL" alias for "GetComputerNameA;Ansi"
//设置计算机名字
FUNCTION boolean SetComputerNameA(ref string cname)LIBRARY "kernel32.dll" alias for "SetComputerNameA;Ansi"
//设置系统时间
Function boolean SetSystemDateTime(integer wYear,integer wMonth,integer wDay,integer wHour,integer wMinute,integer wSecond) Library "mHand.dll"
FUNCTION int GetSystemMetrics(int indexnum)LIBRARY "User32.dll"
//通过域名得到IP
Function string GetIp(string name) Library "GetNet.dll" alias for "GetIp;Ansi"
//得到本机IP地址
Function string GetLocalIp() Library "GetNet.dll" alias for "GetLocalIp;Ansi"
//通过ip得到域名
Function string GetName(string ip) Library "GetNet.dll" alias for "GetName;Ansi"
//得到本机域名
Function string GetLocalName() Library "GetNet.dll" alias for "GetLocalName;Ansi"
//得到局域网内的计算机名
Function string GetLanComputers() Library "GetNet.dll" alias for "GetLanComputers;Ansi"
//得到局域网内的计算MAC
Function string GetMac(string ip) Library "GetNet.dll" alias for "GetMac;Ansi"
//得到本机的计算MAC
Function string GetLocalMac() Library "GetNet.dll" alias for "GetLocalMac;Ansi"
3、注意的是,获取的Mac地址会根据本地计算机的不同而不同。
- 一般笔记本会有多个mac地址,一个是使用无线网络连接的mac地址,一个是使用有线连接的mac地址,其他mac地址属于程序之间交互传输数据的地址。根据实际需求进行考虑
- 台式电脑比笔记本会缺少一个无线网络连接的mac地址
4、程序打包一起打包即可。
以上是关于怎么获取dll中的函数地址的主要内容,如果未能解决你的问题,请参考以下文章