如何获取另一个进程的基址?(美国法律评论)
How do I get the base address of another process? (ASLR)
我需要获取每次启动时都有一个随机基址的.exe的基址地址。我已经试过了,但它似乎不起作用:
int Base = (DWORD)GetModuleHandle("Test.exe");
怎么了?
您似乎正在尝试获取另一个进程的基址。可悲的是,GetModuleHandle
仅适用于当前进程中的模块。为了实现您的目标,您需要使用 PSAPI 或 CreateToolhelp32Snapshot
来提取另一个进程的模块列表。基址在列表中。
我需要获取每次启动时具有随机基址的.exe的基址/入口点地址。该程序使用 ASLR。
。
我将使用它在正确的进程中编辑某些内存块
为了将数据写入另一个进程,您需要使用 WriteProcessMemory()
,这要求您打开要写入的进程的HANDLE
。
您可以使用OpenProcess()
获得该HANDLE
,请求PROCESS_VM_OPERATION
和PROCESS_VM_WRITE
权限。 OpenProcess()
将进程 ID 作为输入,您可以从以下位置获取:
-
CreateToolhelp32Snapshot()
/Process32First()
/Process32Next()
-
EnumProcesses()
. -
WTSEnumerateProcesses()
请参阅进程枚举和枚举所有进程。
任何时候都不需要确定要写入的进程的基址。 让系统为您跟踪该信息。 您所需要的只是对该过程的开放HANDLE
。
相关文章:
- 如何以叮当格式设置评论的行长?
- 叮叮当当:什么可能导致NOLINT评论不被尊重?
- 在 // C++注释中使用 \\ 是否合法?(C++评论中的LaTeX方程)
- 如果我对"while"块发表评论,为什么程序会死机?其中的"yield"线有何影响?
- 模板令人费解..需要帮助(美沙酮除外)
- 我很难理解这些关于检测整数溢出的评论
- 使叮当声忽略对线路的评论
- 有没有办法在评论以外的 #include 之后编写语句
- 提取用中文写的评论,并使用一些脚本将它们翻译成英文
- 如何正确评论
- 使用Regex搜索评论的代码
- 当所有主要内容都在评论中时启动该程序
- C++Qt创建者,我可以评论每一行,而不仅仅是评论选择
- 难以解析后面的评论;排成一行
- 澄清任何声明中的评论
- 如果STD :: COUT发表评论,则计时器需要更长的时间才能达到10.f秒
- 通过删除C 中的评论,额外的空格和空白行,从文本文件中换成元素
- 在JSON文件中允许评论boost read_json
- C STD :: Local Time Daylight节省时间规则(DST)欧洲与美国人
- 即使"friend class rect"在平方类中被评论,为什么它要改变矩形类的私有变量?