在 Julia 中读/写进程内存
Posted
技术标签:
【中文标题】在 Julia 中读/写进程内存【英文标题】:Read/write process memory in Julia 【发布时间】:2017-03-16 23:41:16 【问题描述】:是否有可能在 Julia 中读写进程内存?我用 C# 举例说明我的意思:
WinAPI.ReadProcessMemory(c_Process.handle, offset, buffer, size, IntPtr.Zero);
【问题讨论】:
在 Windows 上,您可以直接调用该函数。首先使用GetModuleHandleEx
。 Here 是示例 winapi 调用。跨平台,进程内可以使用ccall(:jl_load_dynamic_library, ...)
作为句柄,reinterpret
+ unsafe_*
函数。如果这种挥手的描述还不够,我会尝试举一个例子。 (注意:这仅适用于同一进程,我认为以跨平台方式读取 其他进程 内存更困难。使用共享内存可能更好)。
【参考方案1】:
您可以创建任意指针并通过它读取或写入,但不建议以这种方式编程。这是一个用于对 Julia 进行段错误的简短程序:
julia> p = reinterpret(PtrInt, 0)
PtrInt64 @0x0000000000000000
julia> unsafe_store!(p, 123)
signal (11): Segmentation fault: 11
【讨论】:
以上是关于在 Julia 中读/写进程内存的主要内容,如果未能解决你的问题,请参考以下文章