Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
70eacc0
fix method Pointer offset arm64-v8a
May 15, 2021
eacf494
Update native-lib.cpp
May 15, 2021
e21ceef
Update README.md
May 22, 2021
fb904a0
Update README.md
May 22, 2021
97cd455
fix typo
Jun 19, 2021
b34d170
Update README.md
AndnixSH Sep 3, 2021
8ca2a52
Updated to Riru-Il2CppDumper v26
AndnixSH Sep 14, 2021
0af58cc
Reduce sleep time and upgrade gradle
AndnixSH Sep 18, 2021
e53b60a
Update from brianGIG
AndnixSH Jan 28, 2022
8d1b9e6
Change storage location that does not need permission
AndnixSH Jan 29, 2022
68e79ff
Now based on Zygisk-Il2CppDumper
AndnixSH Jun 7, 2022
4e3ff03
Update README.md
AndnixSH Jun 7, 2022
9389086
Update README.md
AndnixSH Jun 7, 2022
42de917
Added bypass by geokar2006
AndnixSH Aug 1, 2022
a6d9748
Fix path and reduce sleep time
AndnixSH Aug 1, 2022
ff57c75
Reduce sleep time
AndnixSH Aug 1, 2022
ca500b4
Upgrade gradle
AndnixSH Sep 26, 2022
9bdf10c
Bump version and change Sdk to 33
AndnixSH Sep 26, 2022
03b888c
Some changes
AndnixSH Sep 26, 2022
dc8c2fd
Geokar2006's bypass doesn't work in some games. Disabled for now
AndnixSH Sep 26, 2022
67cbb44
Revert config
AndnixSH Sep 26, 2022
4202417
Update README.md
AndnixSH Sep 26, 2022
a5e533e
Update README.md
AndnixSH Sep 26, 2022
43a155f
Update README.md
AndnixSH Oct 10, 2022
202a2b6
Fix path, clean up, upgrade gradle
AndnixSH Oct 16, 2022
af7f6b5
Update build.gradle
AndnixSH Oct 16, 2022
2106321
Update readme
AndnixSH Oct 24, 2022
8616396
Update README.md
AndnixSH Oct 24, 2022
a24ac97
Update README.md
AndnixSH Apr 17, 2023
741ac21
Merge some latest sources from Zygisk-Il2CppDumper
AndnixSH May 17, 2023
86ff3aa
Update README.md
AndnixSH May 27, 2023
429a759
Update README.md
AndnixSH Aug 9, 2024
72e990c
Update README.md
AndnixSH Aug 9, 2024
cfa181b
Update gradle to latest version
AndnixSH Nov 19, 2025
0b61f9e
Merge branch 'master' of https://github.com/AndnixSH/Auto-Il2cppDumper
AndnixSH Nov 19, 2025
0cd2b3b
Change min SDK to 21
AndnixSH Nov 19, 2025
e7c5139
Refactor
AndnixSH Nov 19, 2025
f1be7a1
Upgrade SDK to 36
AndnixSH Nov 19, 2025
593a6ba
Update README.md
AndnixSH Nov 19, 2025
86a1a49
Update README.md
AndnixSH Nov 19, 2025
ca9112e
Update config.h
AndnixSH Dec 10, 2025
10ba671
Update README.md
AndnixSH Dec 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto
46 changes: 32 additions & 14 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,15 +1,33 @@
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Log/OS Files
*.log

# Android Studio generated files and folders
captures/
.externalNativeBuild/
.cxx/
*.apk
output.json

# IntelliJ
*.iml
.idea/
misc.xml
deploymentTargetDropDown.xml
render.experimental.xml

# Keystore files
*.jks
*.keystore

# Google Services (e.g. APIs or Firebase)
google-services.json

# Android Profiling
*.hprof
Binary file added Images/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2020 Rikka

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
111 changes: 94 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,100 @@
# Auto-Il2cppDumper
This is for helping you get dump.cs from Il2cpp game <br />
hope this will help you >::<

# Important
This project is modifying version of [Riru-Il2cppDumper](https://github.com/Perfare/Riru-Il2CppDumper) <br />
Credit : [Perfare](https://github.com/Perfare)

# Usage
- build with Android Studio
- decompile the game
- copy result libnative.so into the decompiled folder apk
- search the main activity of the game
- put this on onCreate function
Il2CppDumper without Magisk/Zygisk, dump il2cpp data at runtime, can bypass protection, encryption and obfuscation.

This project is forked from BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper)

# Discontined

This project is no longer maintained. Due to the increasing variety and complexity of game protection and encryption methods, I have chosen to discontinue development. There are no plans for future commits, releases, or support.

# How to use
Download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below

Note: Non-root methods involves modifying APK file, you may need to bypass APK integrity or signature check if it's present. I won't get into the details of bypassing anything because it is simply out of the scope

## Method 1: Fake lib
This is a trick to load our own libunity.so or libmain.so and load game's renamed original lib librealunity.so or librealmain.so. Can't decide which lib? Try libmain.so first as it sometimes work better than libunity.so or vice versa

### Root
- Make sure you know the architecture of the game and your device before proceed
- Use any file manager app that can access root. Go to /data/data/(package name)/lib or /data/app/(obfuscated name)/(package name-obfuscated name)/lib
- Rename original libunity.so to librealunity.so or original libmain.so to librealmain.so
- Put our lib file libunity.so or libmain.so to the lib folder
![](Images/1.png)

### Non-root
Some games may have APK integrity and signature check. You may need to bypass it before adding Il2CppDumper

- Open APK file as ZIP using Winrar. 7zip or other zip utilities
- Rename game's libunity.so to librealunity.so or libmain.so to librealmain.so
- Put our fake lib file libunity.so or libmain.so to the lib folder
![](Images/3.png)
- Zipalign and sign the APK file
- Install the APK

### Method 2: Lib call
If renaming lib doesn't work, try this method.

- Decompile the game using Apktool
- Copy libil2cppdumper.so into the lib folder. Make sure only copy same ABIs as the target app, for example if target app has only armeabi-v7a, then you should only copy armeabi-v7a
- Search the main activity in AndroidManifest.xml. Example: com.gameloft.android.XamarinMainActivity

```xml
<activity android:configChanges="density|fontScale|keyboard|keyboardHidden|layoutDirection|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:label="@string/icon_label" android:launchMode="singleTop" android:multiprocess="false" android:name="com.gameloft.android.XamarinMainActivity" android:resizeableActivity="false" android:screenOrientation="sensorLandscape" android:theme="@style/Theme.acp.notitlebar.fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
```

- Locate the said main activity in the smali folder, can be \smali_classes(number)\com\gameloft\android\XamarinMainActivity.smali if multidex). You must look through all smali classes until you found it

- Insert this lib call into onCreate function below `.locals` XX

```smali
const-string v0, "native-lib"
const-string v0, "il2cppdumper"

invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
```

- re-compile and run it
- wait 10-30 seconds
- once the dump complete it will auto generate dump.cs in /sdcard/Download
Like

```smali
.method protected onCreate(Landroid/os/Bundle;)V
.locals 2

const-string v0, "il2cppdumper"

invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

whatever code below
```

- Re-compile, zipalign, sign the APK
- Install the APK

### Dumping
- Run the game
- Wait a few seconds. Let the game load into main screen
- Once the dump is complete, it will save the dump.cs in /storage/emulated/0/Android/data/(Package name)/
![](Images/2.png)
- If there is no dump.cs, check logcat using Matlog or Android Studio. Game usually crash or freeze if dump fails

### Obfuscated names
Names can't be deobfuscated. Once they are obfuscated/renamed, it can't be reverted back to original, the game doesn't even kept any original names which makes obfuscation very useful. Instead, try to find older version without obfuscation, or debug the game using GG, frida, gdb, lldb or others. If you can't do any of these, maybe guess the functions and try one by one? :P

### Bypassing protection?
Bypassing is not my thing, but if you know, feel free to make a pull request.

# Usage (If you want to complie by yourself)

In config header `jni/Includes/config.h`:

`UseFakeLib` is to use it as root mode

`Sleep` is to delay dumping. Increase if getting issue with dumper, like if not fully dumped

# Credits
- Perfare [Zygisk-Il2CppDumper](https://github.com/Perfare/Zygisk-Il2CppDumper)
- BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper)
41 changes: 11 additions & 30 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,24 +1,17 @@
plugins {
id 'com.android.application'
id 'kotlin-android'
}
apply plugin: 'com.android.application'

android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
compileSdkVersion 36
buildToolsVersion "36.1.0"

defaultConfig {
applicationId "com.il2cpp.dumper"
minSdkVersion 16
targetSdkVersion 30
minSdkVersion 21
targetSdkVersion 36
versionCode 1
versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags ""
}
versionName "3.1"
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}

Expand All @@ -29,21 +22,9 @@ android {
}
}
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
version "3.10.2"
ndkBuild {
path "src/main/jni/Android.mk"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.2'
namespace 'com.il2cpp.dumper'
}
5 changes: 2 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.il2cpp.dumper">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<activity android:name=".MainActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/Compile.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
E:\Android-SDK\ndk\21.3.6528147\ndk-build
NDK_PROJECT_PATH=\
NDK_APPLICATION_MK=\jni\Application.mk
pause
12 changes: 0 additions & 12 deletions app/src/main/cpp/CMakeLists.txt

This file was deleted.

Loading