ufrisk / MemProcFS

MemProcFS
GNU Affero General Public License v3.0
3k stars 371 forks source link

VMMDLL_Map_GetThread return failed #247

Closed smoke0506 closed 9 months ago

smoke0506 commented 10 months ago

I referred to the case in MemProcFS to call, but it failed. The following is the code and return information。

smoke0506 commented 10 months ago
void test_thread() {
    LPSTR args[] = { (LPSTR)"-printf", (LPSTR)"-device", (LPSTR)"fpga://tmread=500" };
    VMM_HANDLE hVmm_ = VMMDLL_Initialize(3, args);
    if (!hVmm_) {
        return;
    }
    DWORD dwPID;
    if (!VMMDLL_PidGetFromName(hVmm_, (LPSTR)"explorer.exe", &dwPID)) {
        return;
    }
    printf("pid: %d\n", dwPID);

    VMMDLL_MAP_THREAD *pThreadMap = NULL;
    PVMMDLL_MAP_THREADENTRY pThreadMapEntry;
    printf("CALL:    VMMDLL_Map_GetThread\n");
    bool result = VMMDLL_Map_GetThread(hVmm_, dwPID, &pThreadMap);
    if (!result) {
        printf("FAIL:    VMMDLL_Map_GetThread\n");
        VMMDLL_Close(hVmm_);
        return ;
    }
}

out info: [SYMBOL] Functionality may be limited. Extended debug information disabled. [SYMBOL] Offline symbols unavailable - file 'info.db' not found. [SYMBOL] Reason: Could not load PDB required file - symsrv.dll/dbghelp.dll. [SYMBOL] Reason: Could not load PDB required file - libpdbcrust.dll/so.

Initialized 64-bit Windows 10.0.22000 pid: 8888 CALL: VMMDLL_Map_GetThread FAIL: VMMDLL_Map_GetThread

ufrisk commented 10 months ago

Thread support requires the files your "out info" says are missing.

Download the latest MemProcFS release in which those files exists from here: https://github.com/ufrisk/MemProcFS/releases/latest

ufrisk commented 9 months ago

I'm closing the issue since I hope it will start to work once you added the required dependencies.

Let me know if you still have issues and best wishes with your DMA attacking 👍