Jump to content
  • 0

Getting into dump.cs/libil2cpp.so editing


Phalice

Question

Hello everyone, I decided to start getting into editing APKs/Arm code and im in need of a Hex/Arm32/Arm64 cheat sheet with common values to reference ie. Boolean, NOPs, large values, small values, etc... if someone could point me in the right direction that would be helpful. I would prefer not to learn c++, c# or any of that. I do have some minor experience in Java though.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

Hi! I can't really gives an 'Ultimate' reference but I will talk about common ways that used in Hex-patching. First of All, I don't really understand your (@Phalice) points about:

Quote

I would prefer not to learn c++, c# or any of that

Programming Languages (C,C#,C++,Python) exist to Avoids using Machine Codes. Also it's more readable and more easier than reading low-level Machine language. In General, any codes you type in any languages will eventually interpreted into machine readable (not human readable) called Assembly Language. Every Programming languages has it's own Intrepreter to convert your code into Assembly; as it's really a low-level language that you shouldn't necessarily understand. It breaks the use of Programming Languages.


*Do note that:

  • Arm is Architecture type and not a language.
  • Hex is just a Data representation; the same type as Floats, Dword, Qword, etc

Boolean

Since Bool only takes 2 condition (False/True) then the value is fixated as 0-1. Bool in Assembly reserved as value, so it will be similar in assembly if a function takes multiple condition.

# Bool
0 = False
1 = True

# Multiple Condition: Based on returned values
0 = Random
1 = Enabled
2 = Disabled

# Example:
Instruction: mov r0, #Your Values
Hex: 01 00 A0 E3
Thumb: 4F F0 01 00

 

NOPs
It's an Instruction to: Not doing anything. It will ignore and continues to next instruction. It's so easy that you can just put bunch of 00 to produce it.

Instruction: mov r0, r0
Hex : 00 00

 

Large - Small  Values
Since Arm has a limitation being in 8bits wide value (0x12345678), I just suggest to use Floats instead. Largest/Smallest values can be achieved by this:

# Double Mov
mov r0, #0xYour-Values
mov r0, #Your-Values

# Using LDR
ldr r0, =Your-Values

In the end, it's more complex than you think. I would rather just learn programming languages and let the intrepreter do the job. But if you insist in learning this; I'm not holding you (I also still learning Assembly), so I recommend to read this with a cup of coffee:


References

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.