#include "stdafx.h"
#include "windows.h"粗隐
#include "process.h"
int main(int argc, char* argv[])
{ //获取模块基址
HMODULE hmou = ::GetModuleHandle(NULL)
long int addr = (long int)hmou
printf("进程基址:0X%0X\n", addr)
system("pause")
return 0
}
HMODULE GetModuleHandle (LPCTSTR lpModuleName)
▲功能说明:获取一个应用程序或动态链接库的模块句柄
▲参数说明:lpModuleName 模块名称
▲返回值:如执行成功成功,则返回模块句柄。零表示失败。通过GetLastError获得错误信息
如:
GetModuleHandle(NULL)
这将返回自身应用程序句柄
▲注意:
前提是:只有欲获取的模块已映射到调用该函数的进程内,才会正确得到模块句柄岩陪厅。常用模块映射函数:LoadLibrary(..)。
不像其他人回答的那样, 一般基址这个概念是用于游戏修改的,游戏大多数都是C++写的,内存地址自由分配,所以有基址这个概念。而C#程序不同,.Net 和Java这2种语言写出来的程序都是运行在棚耐 虚拟机中的,也就是说他们的指针并不是由程序代码中分配的,而是由虚拟机 托管动态生成的,所以你找不到固定的地址,就好比 安卓模拟器,你去找模拟器里运行的程序的基址也是找不到的,因为里面的则余程序运行在安卓虚拟机环境中,你只有在这个环境内部运行类似的孙和滚软件才能找到主基址=读内存整数型(进程PID,读内存整数型(进程PID,读内存整数型(进程PID,十行瞎六到十("2433240"罩祥)+十六到十("7c"),)+十六到十("5d4"),)+十六到十("cc"),)写内存整数型(进程PID,主基址,你写入的数据【十进制的】)
这是用了易语言超级模块6.5的,,去下一个就行了,,,,还有就是进程档闷空PID自己找吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)