微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过地址获取函数名称

有了这个代码,我可以通过它的名字得到一个函数的地址:

DWORD dwAddr = (DWORD)GetProcAddress(GetModuleHandleA("user32.dll"),"MessageBoxA");

但是可以做相反的过程? 从函数地址find函数名?

假设MessageBoxA地址是0x1234abcd 。 我想要的是这样的:

char *func_name = this_is_what_i_want(0x1234abcd); printf("%s",func_name); // this will print "MessageBoxA"

操作系统:Windows

libeio在windows上

确定HWND是否代表顶级窗口的最佳方法是什么?

区分由cl.exe生成的64位PE对象文件(Visual Studio C ++)

最好的方法来检查许可证

获取.NET枚举的Windows本地化

每个线程组的线程互斥

使用VC ++ express编程windows

setuid()返回0,但没有效果

一个共享库静态链接到我的共享库

更快的方式来读取文件比boost :: file_mapping?

使用SYMBOL_INFO结构的SymFromAddr 。 该结构将包含Name成员中的Name 。

SYMBOL_INFO的分配内存非常棘手,请务必阅读文档。

如何分配SYMBOL_INFO:

const size_t array_size = 256 ; const size_t size = sizeof( SYMBOL_INFO ) + ( array_size-1 )*sizeof( TCHAR ) ; SYMBOL_INFO* symbol = calloc( 1,size ) ; if( !symbol ) { //deal with it } symbol->SizeOfStruct = sizeof( *symbol ) ; //both values must symbol->MaxNameLen = array_size ; //be set by user

请注意,我们在这里减1: ( array_size-1 )因为结构已经给我们一个字节,我们希望我们的字符串数组大小为256而不是257。

这个结构现在有足够的空间来存放长度为255的字符串。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐