[ @bue ]
---
All games component is inside library (.so) or OBB, not dex file.
---
What's your point of dumping? It is just saving raw memory into a file. It is pointless if you don't know the way to read it. You can however 'try' to read it by dissasembling the dumped datas using some tools like: IDA Pro, Ghidra, x64dbg, etc; but you need to have some experience in reading assembly (architectural language: ARM, x86, RISC, etc)
---
Offset is not obtained by dumping. Did you know what "offset" is? Offset is just basically a diplacement from base address, it is just the way to get our final address, it is like: base + offset = final (1 + 2 = 3). If you're talking about libil2cpp dumper / ue4 dumper, then you're missing the point by dumping raw data from memory. Those 'dumpers' tools is reading the game memory structure from metadata/pattern, read the string references, and then saving it to a file (cs/json file), thus making it readable.
---
So how to get Offset?
- Finds your hack manually using Game Guardian -> copy the 'hack' address -> find out the memory range of our address -> copy the first address of our memory range -> now calculate: hack address - first address of our memory range = offset. You can do all these inside Game Guardian or do some calculation online: Hex Calculator
- Dissasemble our library using tools I mentioned earlier -> find strings related to our hacks (ex: emulator) -> find any references to our string (xref) -> your offset is the address of any function that referenced by our string.
I made alot of simplification here, it might sounds hard, but it is easy once you understand it.