x64dbug获取小程序内存地址

x64dbug获取小程序内存地址,第1张

你可以使用x64dbg的“查找”功能来搜索小程序的内搜游散世氏存地址。在x64dbg中,你可以在“查找”菜单中找到“内存地址”选项,然后输入小程序的名称或地址范围,它将显示出程序的内存地址磨闹。

//获乱凳取模块基址可以使用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(..)。

hProcess

是目标进程的句柄,从上面的

OpenProcess

函数中取得的。

lpBaseAddress

是在计算器程序的虚拟内存中将要被修改的地址,也就是使用内存搜索程序找到的那个地址。念备(在我的程序里绝高唯是&H40B181)

lpBuffer

是将要写如上述地址的数据,可以是并培一个数值、数组、字符串或其他任何数据类型。

nSize

是希望写入

lpBaseAddress

的字节数。这个位置应该与你的数据类型相符。如果写入的是一个长整数(

long

),这里应该是4。如果写入的是一个字符串,那么这里应该是字符串的长度。

lpNumberOfBytesWritten

是函数执行返回后,写入目标地址的实际字节数。它能被用来确认函数实际的执行情况。


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

原文地址: http://outofmemory.cn/yw/12389820.html

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

发表评论

登录后才能评论

评论列表(0条)

保存