C语言怎么让找到一个进程在内存中的起始地址

C语言怎么让找到一个进程在内存中的起始地址,第1张

//获乱凳取模块基址可以使用windows api函数GetModuleHandle

#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自己找吧


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12362088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存