Hi~ 我是李小咖,主要从事网络安全技术开发和研究。
本文取自《李小咖·网安技术库》,欢迎一起交流学习🫡:https://imbyter.com
上一讲我们介绍了kernel32基址的获取,这一节来介绍如何解决GetProcAddress动态调用的问题。
#include <windows.h>
#include <Winternl.h>
#pragma optimize("", off )
#pragma comment(linker,"/entry:EntryMain")
// 获取kernel32基址
HMODULE GetKernel32BaseAddress()
{
HMODULE hKernel32 = NULL;
// 用户保存模块名
WCHAR wszModuleName[MAX_PATH];
#ifdef _WIN64 // 64位PEB偏移为0x60
PPEB lpPeb = (PPEB)__readgsqword(0x60);
#else // 32位PEB偏移为0x30
PPEB lpPeb = (PP
本文介绍如何通过PE结构动态获取GetProcAddress函数地址,详细解析获取过程,包括从kernel32基址获取PE头,定位导出表,判断导出函数名等步骤。了解这一过程能实现对任意函数的动态调用,如LoadLibraryA+GetProcAddress。通过实例测试MessageBoxA的调用,成功则表明程序执行正确。
订阅专栏 解锁全文

1772

被折叠的 条评论
为什么被折叠?



