Approved How to mod IL2CPP games

Hi, I was trying to mod Nonstop Knight 2 and found out the have split apks when I backup the apk using LP, the extension is apks
I extract them and have several apks

base.apk (with no lib folder)
split_config.arm64_v8a.apk (lib folder is in here)

then I tried using nox, still the same but different lib, I assume for 32bit
split_config.armeabi_v7a.apk

how do I combine them using apktools once I edited? or just copy the lib and recompile?
thanks in advance
 
thank you for the tutorial :) but i get an error while installing the apk, saying that i cannot get in without internet connection... did i do a mistake? or did the game dev updated their game?
and do u mind to give more il2cpp game that can be used for practice?
as i still have no idea how to differ what kind of game can be modded and cannot.
1580543229382.webp
 
It's amazing.
It was a very useful video.
I'm practicing hard while watching this video.
 
thanks for the tutorial video, i've learn much from it. anyway i have a little question here. is it safe to delete armx64 based directory in the lib folder? i also delete library for x64 based. (in resource folder)
 
Last edited:
thanks for the tutorial video, i've learn much from it. anyway i have a little question here. is it safe to delete armx64 based directory in the lib folder? i also delete library for x64 based. (in resource folder)
those libs are useless, any device is able to read v7 libs and that are enuf and easier to edit :D
 
those libs are useless, any device is able to read v7 libs and that are enuf and easier to edit :D
allright thanks for the guide, i'm just scared that it will increase the ban risk 😂, btw is there any guided video about long/int/bool/float in here? i'm curious to know more about modding. just want to understand the limit in value editing🤭
 
allright thanks for the guide, i'm just scared that it will increase the ban risk 😂, btw is there any guided video about long/int/bool/float in here? i'm curious to know more about modding. just want to understand the limit in value editing🤭
long/int/bools are all treated the same, u can just MOV reg, #number and it will work just fine (if it's within the limits of the type), for floats tho u need to manually set the upper and lower 16bit regions of a 32bit register with MOVT/MOVW. So if you have the address 0xAAAABBBB with MOVT u would be setting the A's and with MOVW the B's.

Example: u want to see how's number 99 in float, u convert 99 to hex flotating point from any site (like here) and you get 0x42C60000

Then it's pretty easy, just set the upper 16 bit part of the register to 42C6 with movt ->

Code:
MOVT    R0, #0x42C6

now R0 holds 0x42C60000 which is the same as 99.0f.
 
long/int/bools are all treated the same, u can just MOV reg, #number and it will work just fine (if it's within the limits of the type), for floats tho u need to manually set the upper and lower 16bit regions of a 32bit register with MOVT/MOVW. So if you have the address 0xAAAABBBB with MOVT u would be setting the A's and with MOVW the B's.

Example: u want to see how's number 99 in float, u convert 99 to hex flotating point from any site (like here) and you get 0x42C60000

Then it's pretty easy, just set the upper 16 bit part of the register to 42C6 with movt ->

Code:
MOVT    R0, #0x42C6

now R0 holds 0x42C60000 which is the same as 99.0f.
allright thank you so much for the explanation, seems like i need to learn more about binary command and hex to pinpoint what values i want to edit and convert it into.

btw from what you've explained above did i do it right in converting float value to 80 :
Movt r0, #0x42A0
BX LR
A0 02 44 E3 1E FF 2F E1
 
allright thank you much for the explanation, seems like i need to learn more about binary command and hex to pinpoint what values i want to edit and convert it into.

btw from what you've explained above did i do it right in converting float value to 80 :
Movt r0, #0x42A0
BX LR
A0 02 44 E3 1E FF 2F E1
looks fine to me, u should check that the lower 16 bit part of the R0 register is set to 0 because you need the register to hold 0x42A00000 and not 0x42A0BBBB (being B 4 random bytes different than 0) so if it's set to other thing it wont represent 80.f (you can set it to zero just to make sure using movw r0, #0 i think but in most of the cases it isn't necessary at all).
 
looks fine to me, u should check that the lower 16 bit part of the R0 register is set to 0 because you need the register to hold 0x42A00000 and not 0x42A0BBBB (being B 4 random bytes different than 0) so if it's set to other thing it wont represent 80.f (you can set it to zero just to make sure using movw r0, #0 i think but in most of the cases it isn't necessary at all).
i guess i still need to learn it even if the probability is small, i think it's better to learn more than get stuck when meet that case😆
anyway do you have suggestion what should i learn the most in modding apk?
 
i guess i still need to learn it even if the probability is small, i think it's better to learn more than get stuck when meet that case😆
anyway do you have suggestion what should i learn the most in modding apk?
Alex videos are a solid base to start
 
Well
Arminfocenter is a good start if you wanna read about all the instructions arm processors offer
What I can offer is just a little introduction not more since there are way too many kind of instructions around
If you wanna dig more get a better understanding of the arm world
 
This is my first try at modding XD
I tried to dump libil2cpp.so and global-metadata but the dumper wont generate scrypt.py
help enlighten me pls
the game i want to try is auto heroes
 
This is my first try at modding XD
I tried to dump libil2cpp.so and global-metadata but the dumper wont generate scrypt.py
help enlighten me pls
the game i want to try is auto heroes
be sure you are using the latest il2cpp dumper from git :D
works np here ^^
but it's another story if lib or metadata file are encrypted or obfuscated
 
be sure you are using the latest il2cpp dumper from git :D
works np here ^^
but it's another story if lib or metadata file are encrypted or obfuscated
oo, im using IL2ccp dumper UI, and im using ida.py it produced, but i cant find float string on get_att/get_atk/get_dmg, whats the indication of the right address anyway? im shooting blind here lol
 
oo, im using IL2ccp dumper UI, and im using ida.py it produced, but i cant find float string on get_att/get_atk/get_dmg, whats the indication of the right address anyway? im shooting blind here lol
Right address ? No idea up to you to find what you wanna mod lol
 
Back
Top Bottom