Help! How Do I Decompile ".SO" Library File Of An Android App?

Mörsedes

Platinian
Original poster
Jun 23, 2020
24
34
13
Turkey
I am searching for this for a long time, this ".so" is decrypted, so I am not able to read, weird symbols only. I wonder how do I decrypt it and modify it by myself? My main aim: Unlock VIP of all cars, unlock all cars. (Yes I know there's already PMT Mod on this forum however, their savefiles do not unlock all and even if I unlock, to make them VIP I have to pay real money. LuckyPatcher does not work at this point, that's why I need help.) Some people say said to me to install "IDA Pro" however it is paid and expensive program so I need to search for a free way to do it.
 

NullCoder

Inactive Approved Modder
Jun 8, 2020
110
900
93
21
None
In this case, find a hacked version of IDA Pro. But this requires at least some knowledge of the use of the program itself and an understanding of how to use the assembler construct.
 

·҉ dollaz·҉. .

Approved iModder
Approved iModder
Mar 26, 2021
159
1,797
193
Somewhere
What I think you're trying to do is dump the .so file. Anyways heres a resource.

App for windows:

web version:


You just need the executable (libil2cpp.so) and the metadata file, which is usually found in
assets->bin->data->managed->metadata->global-metadata.dat

And if you prefer to mod the game by reading assembly then go ahead and use the free IDA pro offered to you earlier

note: all files generated by il2cpp dumper are for reference only, and should not be modified directly. The dummy.dll's and the dump.cs give you the function name, type and address. You have to take that address and patch it in the lib.so with something like HxD
 

Mörsedes

Platinian
Original poster
Jun 23, 2020
24
34
13
Turkey
What I think you're trying to do is dump the .so file. Anyways heres a resource.

App for windows:

web version:


You just need the executable (libil2cpp.so) and the metadata file, which is usually found in
assets->bin->data->managed->metadata->global-metadata.dat

And if you prefer to mod the game by reading assembly then go ahead and use the free IDA pro offered to you earlier

note: all files generated by il2cpp dumper are for reference only, and should not be modified directly. The dummy.dll's and the dump.cs give you the function name, type and address. You have to take that address and patch it in the lib.so with something like HxD
Ok, thanks, yesterday I got the IDA Pro 7.6 from NotALegitGuy first thanks to him. Later, I decided to decode the file however it was Assembly Lang so I decide to dump the local save game also that .dat folder is encrypted too and IDA Pro is not able to decrypt that. (Unsupported file.) Lastly, since I don't know how to work with Hex values, I will not able to patch anything.
 

Tiahh

Solid & Active Platinian
Jan 12, 2018
75
44
18
37
Ok, thanks, yesterday I got the IDA Pro 7.6 from NotALegitGuy first thanks to him. Later, I decided to decode the file however it was Assembly Lang so I decide to dump the local save game also that .dat folder is encrypted too and IDA Pro is not able to decrypt that. (Unsupported file.) Lastly, since I don't know how to work with Hex values, I will not able to patch anything.
I suggest to first learn high level programming languages such as C-Sharp or C++ and later start to learn how to reverse a cpp library.
 
  • Like
Reactions: Gregory L. Mills

Mörsedes

Platinian
Original poster
Jun 23, 2020
24
34
13
Turkey
I suggest to first learn high level programming languages such as C-Sharp or C++ and later start to learn how to reverse a cpp library.
I believe I can edit small things, at least people who are not blind can understand what is written and how to change that values. I decrypted the file, now it's in C however I couldn't find the things I expected such as "OwnedCar" or idk I tried to search these kinds of names so I could find something about them, but nope, nothing.
 

Tiahh

Solid & Active Platinian
Jan 12, 2018
75
44
18
37
Wait, are you using a .net viewer such as dnspy or are you using IDA Pro?
 

Tiahh

Solid & Active Platinian
Jan 12, 2018
75
44
18
37
I am using IDA Pro 7.6 rn
All functions are renamed with sub_address of the function so it's quite obvious that you cannot find anything with the name "OwnedCar", you should try to search from strings and understand how the game is structured.
 

Mörsedes

Platinian
Original poster
Jun 23, 2020
24
34
13
Turkey
All functions are renamed with sub_address of the function so it's quite obvious that you cannot find anything with the name "OwnedCar", you should try to search from strings and understand how the game is structured.
Well, how to do that? My knowledge is not that good. I am ignorant a bit about these kinds. If it's possible can you explain?
 

Tiahh

Solid & Active Platinian
Jan 12, 2018
75
44
18
37
to search for strings you have to press "View" from above and then point your cursor on "Open subviews" and finally press on "Strings". A simple way to do this is by pressing SHIFT+F12 after that, ida will load up all the strings of the game.
 

Mörsedes

Platinian
Original poster
Jun 23, 2020
24
34
13
Turkey
to search for strings you have to press "View" from above and then point your cursor on "Open subviews" and finally press on "Strings". A simple way to do this is by pressing SHIFT+F12 after that, ida will load up all the strings of the game.
I know, I already did that but still the same thing. Is it possible for you to check the file?
 

Tiahh

Solid & Active Platinian
Jan 12, 2018
75
44
18
37
Sorry, i cannot reverse engineer a game for nothing.