Recent content by Vector4

  1. Help! error hex to arm

    The MOV instruction only supports integers from -257 to 65536. This is because of how the instructions are encoded within 4 bytes. You can use a relative load with LDR R#, [PC, #offset] i.e. ldr r0, [pc, 0] ; note that due to pipelining PC is always the current instruction + 8, so that's why...
  2. Help! ImGUI menu not showing in game

    Some games might use different methods of rendering. For example, some games might use EGL to render a frame, which means you have to draw ImGui with EGL. Other games may use Vulkan, which means that you have to use different methods to draw a menu. Most likely the reason that it doesn't show...
  3. Discussion Embedding a GUI inside a Frida script

    Hey @MAARS YT, Unfortunately from browsing the source code, there seems to be no way to add annotations to methods. I would suggest opening up an issue in the repository or attempting to implement the code yourself. Although, it is possible to load .dex files from buffers using...
  4. Discussion Embedding a GUI inside a Frida script

    It is possible, but a lot of boilerplate needs to be set up first just to create UI elements. I wrote up an example that will create a button that when clicked, prints out a toast. Note that this button uses the app's default style, so if you want a custom style, you'll have to do things like...
  5. Help! Using “Contains”

    T getPointer() { return (T)vector; } should be T* getPointer() { return (T*) &vector; } Also, all template types have to be the same. So if you have monoArray<void*>, you must pass a void* to Contains
  6. Help! offset help

    If you dumped the library from a memory dump, VA will be the address where the function was located while running. Due to ASLR, this address will always be random, so you can't use them. Offset / RVA is the offset from the start of the library, so you should use those instead.
  7. Solved how to decrypt lua files without key?

    This is bytecode from LuaJIT's modified Lua VM. There are decompilers available for LuaJIT, and the one I used (not perfect, has some errors) gave me this result.
  8. Help! First mod attempt. What am I doing wrong?

    Float values on ARM32 must be returned in the S0 register. The VLDR instruction can be used to load a float value, which you can provide a PC-relative offset to. As far as I can tell, this code should be right: vldr s0, . + 8 bx lr .float N The letter N can be replaced with any number (that...
  9. Help! Aide project compilation error

    If you haven't changed any code or barely changed anything, this might be an issue with the GitHub code, and you can open an issue on GitHub. The errors seem to come from an AIDE directory though, so it's probably an issue with AIDE. You can try to reinstall (or update, if possible), and see if...
  10. Help! Game hacks

    If you have root on your phone, you can install GameGuardian into something like VirtualXposed (GameGuardian has a APK on their website), and then you can use it from there without being detected. If you don't, them I'm not sure if there's a way to use it without being detected.
  11. Help! Helping with Strings hooking in Unity

    IL2CPP/Mono strings are UTF-16, meaning they are 2 bytes per character, while C strings are UTF-8, meaning they are 1 byte per character. You can use some C++ libraries to help, here's an example. #include <codecvt> #include <string> #include <locale> std::string FromUTF16(monoString* str) {...
  12. Help! How to rebuild Struct for Mod Menu

    The outputted il2cpp.h file is correct. Anything that uses or returns a WorldMapDisplayData can be replaced with (a pointer to) WorldMapDisplayData_o. If you need to get a field from it, you can just do data->fields.<field name>. Static fields can be retreived with ((specified type)...
  13. Solved Storing address of a class, then using it later on crashes the game

    It's probably due to IL2CPP garbage collecting the object and deleting it if it detects that no Managed code is using it. You can use the IL2CPP API functions il2cpp_gchandle_new and il2cpp_gchandle_free to make sure it doesn't get garbage collected. Here's an example: #include <cstdint> void*...