Git Product home page Git Product logo

dmalibrary's People

Contributors

calvinxu17 avatar fivezerotwo avatar lauralex avatar lsudev avatar metick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dmalibrary's Issues

Main PC Keyboard issue.

Seems like the keyboard sometimes doesn't want to initialize and a restart normally fixes it but was curious if it's possible to fix it. I think the offsets might change sometimes which causes the issue but unsure.

CR3 fix dlls help

Hello i want to use the cr3 fix and got the needed dlls for it however i dont know where to but them as if i put them into the libs folder it still tells me it cant find them ?

Keyboard Issue

23H2 22631.3810
offset 0x3690 changed to 0x36a8
Tested 0x36a8 works

win 22631(23H2) get AsyncKeyState fail

Winver: 22631.2861
InputManager -> gafAsyncKeyStateExport.

uintptr_t user_session_state = mem.Read<uintptr_t>(mem.Read<uintptr_t>(mem.Read<uintptr_t>(g_session_global_slots, pid), pid), pid);

The code to get the user_session_state doesn't seem to be working, as evidenced by the fact that it doesn't read the correct value during the second step.

The following code is a demo of the code I split when I was conducting my research.

It reads 4 pid's 4 uses seems to be the same, do you have any suggestions?

Thank you for your work.

image

ShellCode

Hello, could you please provide an example of Shellcode?
Here is my code, but it doesn't work.

uint64_t addr = 5406482976; mem.Write(caves[0], shellcode); shell->call_function(reinterpret_cast<void*>(caves[0]), (void*)addr, "game.exe"); cout << mem.Read<uint64_t>(caves[0] + address_offset) << endl; if (mem.Read<uint64_t>(caves[0] + address_offset) > 0)

scatter read is slower ?

In having trouble optimizing the read speed with scatter read. For example if i use scatter read for view matrix, it updates the viewpoint after 1second or so. Instead with normal reads i get it all correct and it updates correctly but obviously i get lower fps.

Could it be that i have to use -norefresh or change refresh settings ?

Or am i using scatter read wrong?
Heres the code where i get the problem:

double a;
double b;
double c;
mem.AddScatterReadRequest(ScatterHandle, cameraRotationPtr, &a, sizeof(double));
mem.AddScatterReadRequest(ScatterHandle, cameraRotationPtr + Offsets::BOffset, &b, sizeof(double));
mem.AddScatterReadRequest(ScatterHandle, cameraRotationPtr + Offsets::COffset, &c, sizeof(double));
mem.ExecuteReadScatter(ScatterHandle, ProcId);

Should verify the `VMMDLL_MemReadEx` actual bytes read.

I ran into this issue and notice all DMA sources I've examined don't verify the VMMDLL_MemReadEx the read byte count.
The reads can definitely fail. For instance I was using the VMMDLL_FLAG_NOPAGING trying to read from a process image.
In turned out that it was failing because the memory pages were not paged in.
VMMDLL_MemReadEx returned true but was only reading part of the memory.
I only found this out by verifying pcbReadOpt actually read count during troubleshooting.

Notice here for the VMMDLL_MemRead function in the MemProcFS source:
https://github.com/ufrisk/MemProcFS/blob/master/vmm/vmmdll.c#L745
There is such a check && (dwRead == cb)

So a suggestion if you want to catch potential problems, you could add these && (dwRead == cb) type checks to calls like:
https://github.com/Metick/DMALibrary/blob/Master/DMALibrary/Memory/Memory.cpp#L663

Using pattern scanning

I'm looking for some assistance in using the pattern scanning for this library.

When looking at the documentation for the function is seems that it requires being used like so.
offsets::GNAMES = mem.FindSignature("48 8D 0D ?? ?? ?? ?? 8B FA 75 0F", 0x9074D30, 0xaf8c000);
But when scanning the pattern and knowing that the good address is 0x9274D40 the function returns NULL. I see in the comment you used single ? not ?? for your sigs but i've tried both with no success?

Do you have any ideas of what im doing wrong. Ofc I've already init the process

Console output

loading libraries...
Successfully loaded libraries!
inizializing...
dumping memory map to file...
Dumped memory map!
FPGA ID: 4
DEVICE ID: 8960
success!
[+] VMMDLL_ConfigGet ID = 4 VERSION = 0.0
CR3 fixed
[+] Found Base Address for DungeonCrawler.exe at 0x00007FF6301D0000
[+] Found Base Size for DungeonCrawler.exe at 0x000000000AF8C000
Process information of DungeonCrawler.exe
PID: 37316
Base Address: 0x7ff6301d0000
Base Size: 0xaf8c000
Unable to get the GNames

Code:

int main(std::string args[])
{
    if (!mem.Init("DungeonCrawler.exe", true, false))
    {
        std::cout << "Failed to initilize DMA" << std::endl;
        return 1;
    }
    offsets::GNAMES = mem.FindSignature("48 8D 0D ? ? ? ? 8B FA 75 0F", 0x9074D30, 0xAD692D0);
    if (offsets::GNAMES != NULL) {
        printf("We got something thats not null for GNames 0x%llx",offsets::GNAMES);
    }
    else {
        printf("Unable to get the GNames");
    }
}

monitor

Hi, thanks for sharing library. Is there a way to read screen size via DMA?

Thanks

BSOD

I got BSOD everytime when tried to use call_function or just rewrite IAT/EAT function for further hooking

VMMDLL_MemReadEx is unable to read the data

When I try to read the item name from the inventory, I can't retrieve it. However, after accessing the pointer once using CE, I can successfully read the name via DMA. How should I handle this situation?

Syscall Example

typedef BOOLEAN(*ExDestroyHandleProc)(PVOID HandleTable, HANDLE Handle, PVOID HandleTableEntry);
SysCall<ExDestroyHandleProc>(NULL,NULL,NULL);

ERROR

Shell

How to use Shell to call functions in games
function reinterpret_cast<void* (__fastcall*)(void*, const char*)> (0x7Fxxxxxxxxxx)(domain, name)

Keyboard

Getting error: Failed to initialize keyboard hotkeys through kernel
idk why

init error

Recalling mem. init failed to initialize when restarting the exe to be read

Issues building the example.

Win11 / VS 2022

1 added leechcore.lib and vmmdll.lib to libs folder from https://github.com/ufrisk/MemProcFS/tree/master/includes/lib32
build solution fails with c++ versions

2 changed project versions to c++ 20
wcstombs may be unsafe issue

3 Added 4996 to disable specific warnings

cannot open source file "DMALibrary/Memory/Memory.h"
Cannot open Include file "DMALibrary/Memory/Memory.h"

4 added DMALibrary-Master to Additional Include Directories on the Example project

unresolved external symbol ::InitKeyboard
unresolved external symbol Memory::Memory

5 Added DMALibrary to References under the Example Project

Unresolved external symbol VMMDLL_MemFree
Unresolved external symbol VMMDLL_ReadEx
... etc

I have also tried adding the DMALibrary.lib(and the others) to a lib directory in the example project. But this is where I am currently stumped, I have remade the project several times and am unable to build the example project based on the most recent version of this repo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.