学习C++第三十天
本帖最后由 博弟弟丶 于 2021-10-1 05:54 编辑#include <windows.h>
#include <TlHelp32.h>//获取模块头文件
uintptr_t GetModuleBaseAddress(DWORD procId, const wchar_t* modName)//定义一个函数 方便调用
{
uintptr_t modBaseAddr = 0;
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procId);//可以获取系统中正在运行的进程信息,线程信息 一系列东西
if (hSnap != INVALID_HANDLE_VALUE),
{
MODULEENTRY32 modEntry;//初始化 结构体
modEntry.dwSize = sizeof(modEntry);// 这句话就是说 取这个结构体的大小 用sizeof(modentry)
if (Module32First(hSnap, &modEntry))//此函数检索与进程相关联的第一个模块的信息
{
do
{
if (!_wcsicmp(modEntry.szModule, modName))//比较大小
{
modBaseAddr = (uintptr_t)modEntry.modBaseAddr;
break;
}
} while (Module32Next(hSnap, &modEntry));
}
}
CloseHandle(hSnap);//关闭
return modBaseAddr;
int main(){
调用这个函数就行了 第一个进程ID 第二个 可以是模块(列如.exe+460这种 exe这种就属于本地的)可以是DLL(列如.DLL+460这种 DLL这种就属于服务器的)有哪里不对的地方 还望指教 如果实在不明白 可以下断点 一步一步过这样肯定会明白
return 0;
}
这是Windows编程吧?只是c艹的sdk,VB也行吧?c艹不是实现功能的必须语言 我以前也是这样,执迷windows编程.... 还是太年轻,事实界面编程不是那么重要。。 这意义不大啊 lichunfeng 发表于 2021-10-2 00:07
我以前也是这样,执迷windows编程.... 还是太年轻,事实界面编程不是那么重要。。
语言只是工具,重要的是思想。 你这种感觉没什么必要,自写这个函数的无非就是防止被HOOK或者防别人逆向什么的,一般都是用纯汇编写,你这用系统函数没什么区别 songxp03 发表于 2021-10-1 08:00
这是Windows编程吧?只是c艹的sdk,VB也行吧?c艹不是实现功能的必须语言
谢谢大佬的指点 xuyongze 发表于 2021-10-1 09:28
这意义不大啊
大佬可以略过 xuyongze 发表于 2021-10-1 09:28
这意义不大啊
学习一下 非洲小白脸. 发表于 2021-10-1 15:02
你这种感觉没什么必要,自写这个函数的无非就是防止被HOOK或者防别人逆向什么的,一般都是用纯汇编写,你这 ...
HOOK或者 逆向什么不存在的就是单纯的学习一下
页:
[1]