Metick / DMALibrary

Simple but extensive library for DMA users, made for gamehacking
MIT License
348 stars 75 forks source link

I know the problem now, please close this issue directly. Thank you! Just replace it with memory reading. I'll use VMMLL_readEX instead #26

Open lxwcv opened 3 months ago

lxwcv commented 3 months ago
          I know the problem now, please close this issue directly. Thank you! Just replace it with memory reading. I'll use VMMLL_readEX instead

Originally posted by @subeoy1 in https://github.com/Metick/DMALibrary/issues/25#issuecomment-2278121011 Brother, how did you solve it?

subeoy1 commented 3 months ago

bool MEM::FixCr3() { PVMMDLL_MAP_MODULEENTRY module_entry = NULL;

bool result = VMMDLL_Map_GetModuleFromNameU(this->vmm_handle, this->PID, const_cast<LPSTR>(client11().c_str()), &module_entry, NULL);
if (result)
    return true;

if (!VMMDLL_InitializePlugins(this->vmm_handle))
{

    return false;
}

std::this_thread::sleep_for(std::chrono::milliseconds(500));

while (true)
{
    DWORD progress = 0;

    bool success = VMMDLL_GetProgressFromMemory(this->vmm_handle, &progress);

    if (success && progress == 100)
        break;

    std::this_thread::sleep_for(std::chrono::milliseconds(100));
}

VMMDLL_VFS_FILELIST2 VfsFileList;
VfsFileList.dwVersion = VMMDLL_VFS_FILELIST_VERSION;
VfsFileList.h = 0;
VfsFileList.pfnAddDirectory = 0;
VfsFileList.pfnAddFile = cbAddFile1;

result = VMMDLL_VfsListU(this->vmm_handle, const_cast<LPSTR>("\\misc\\procinfo\\"), &VfsFileList);
if (!result)
    return false;

//read the data from the memory and parse it
const size_t buffer_size = cbSize1;
std::unique_ptr<BYTE[]> bytes(new BYTE[buffer_size]);
DWORD j = 0;

auto nt = VMMDLL_ReadMemory(this->vmm_handle, /* memory address */, bytes.get(), buffer_size - 1, &j);

This is an example, you need to respond to your project
subeoy1 commented 3 months ago

Read VMMhandle directly from memory. Discard calling VMMDLL_Sap_GetModulus FromNameUodelU again. Avoid dumping files. Because you have already called DMA once during installation

lxwcv commented 3 months ago

Read VMMhandle directly from memory. Discard calling VMMDLL_Sap_GetModulus FromNameUodelU again. Avoid dumping files. Because you have already called DMA once during installation

VMMDLL_GetProgressFromMemory How do you define that