第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JNA - CreateToolhelp32Snapshot 未返回所有 DLL

JNA - CreateToolhelp32Snapshot 未返回所有 DLL

交互式愛情 2024-01-05 16:22:55
我正在嘗試從我可以處理的進(jìn)程中獲取模塊的基地址。我已經(jīng)使用 CreateToolhelp32Snapshot 和 EnumProcessModules 方法嘗試過此操作。問題是這兩種方法都只返回這 5 個 DLL:underrail.exe ndll.dll wow64.dll wow64win.dll wow64cpu.dll我知道應(yīng)該有更多模塊,并且嘗試在其他游戲中使用它會返回相同的 5 個模塊。我找到了同一問題的一些答案,但它們都不適合我:https://www.unknowncheats.me/forum/counterstrike-global-offensive/169030-modules.htmlJNA - EnumProcessModules() 未返回所有 DLL?第一個不起作用,因為我無法使用 TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32 作為方法中的標(biāo)志。第二個不起作用,因為當(dāng)我嘗試調(diào)用 Psapi.INSTANCE.EnumProcessModulesEx(...) 時,我無法調(diào)用方法 EnumProcessModulesEx()這是我的代碼片段:public static int getModuleBaseAddress(int process_id) {    DWORD pid = new DWORD(process_id);    HANDLE snapshot = null;    snapshot = kernel32.CreateToolhelp32Snapshot(Tlhelp32.TH32CS_SNAPMODULE, pid);    MODULEENTRY32W module = new MODULEENTRY32W();    while(Kernel32.INSTANCE.Module32NextW(snapshot, module)) {        String s = Native.toString(module.szModule);        Pointer x = module.modBaseAddr;        System.out.println(s);        System.out.println(x);        System.out.println("---");    }    return 0;}請注意,使用 Tlhelp32.TH32CS_SNAPMODULE32 不會返回任何內(nèi)容,并且 Tlhelp32.TH32CS_SNAPALL 返回與 lhelp32.TH32CS_SNAPMODULE 相同的結(jié)果
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗 獲得超5個贊

目前,方法 EnumProcessModulesEx 未映射到 JNA,因此您必須制作自己的 Psapi 自定義版本,在我的例子中,它看起來像這樣:


import com.sun.jna.Native;

import com.sun.jna.platform.win32.Psapi;

import com.sun.jna.platform.win32.WinDef.HMODULE;

import com.sun.jna.platform.win32.WinNT.HANDLE;

import com.sun.jna.ptr.IntByReference;

import com.sun.jna.win32.W32APIOptions;


public interface CustomPsapi extends Psapi{


    Psapi INSTANCE = Native.load("psapi", Psapi.class, 

    W32APIOptions.DEFAULT_OPTIONS);


    public void EnumProcessModulesEx(HANDLE hProcess, HMODULE[] lphModule, int cb, 

    IntByReference lpcbNeeded, int dwFilterFlag);



}

然后您可以加載自定義類并使用您映射的方法。


public static CustomPsapi c_psapi = Native.load("psapi", CustomPsapi.class);

為了讓所有 DLL 正確顯示,您需要使用現(xiàn)在映射的 EnumProcessModulesEx 方法,并將所有模塊的標(biāo)志作為最后一個參數(shù) (0x03),因此該方法應(yīng)如下所示:


c_psapi.EnumProcessModulesEx(process, modules, 1024, new IntByReference(1024), 0x03);



查看完整回答
反對 回復(fù) 2024-01-05
  • 1 回答
  • 0 關(guān)注
  • 190 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號