我使用taskID,pid和名称获得了我自己的MacProcess。实际上我想用他们的地址获取这个过程的所有模块/ dylib(或者只是一个名称为client.dylib的特定模块/ dylib)
在Windows上,我可以做类似的事情:
public int base(String dllName) {
Pointer snap = kernel32.CreateToolhelp32Snapshot(Tlhelp32.TH32CS_SNAPMODULE32.intValue() | Tlhelp32.TH32CS_SNAPMODULE.intValue(), getProcessId("processname"));
Tlhelp32.MODULEENTRY32W entry = new Tlhelp32.MODULEENTRY32W.ByReference();
while (kernel32.Module32NextW(snap, entry)) {
String name = entry.szModule();
if (name.equalsIgnoreCase(dllName + ".dll")) {
Pointer pointer = entry.hModule.getPointer();
return ((Long) Pointer.nativeValue(pointer)).intValue();
但是在MacOS上我显然不能使用dll等等。我如何通过JNA获取Mac上正在运行的应用程序的模块(例如test.dylib)的地址?实际上是一个模块(例如client.dylib),它的地址来自正在运行的应用程序。为了更好地理解我在寻找什么,我为windows添加了这个代码。非常感谢你的时间和帮助!