Ⅰ. はじめに
タイトルの通り「ゲームエンジンを特定する方法」です。
この記事ではAndroidのapkファイルについて書きますが他プラットフォームでも応用が効きます。
Ⅱ. Unity の場合
Assembly-CSharp.dll が存在している
- x.apk/assets/bin/Data/Managed/Assembly-CSharp.dll
- ゲームのスクリプトがコンパイルされた物です
- JITコンパイラを利用した場合に出力されます
libil2cpp.so が存在している
- x.apk/lib/abi/libil2cpp.so
- ゲームのスクリプトがコンパイルされた物です
- IL2CPP(AOTコンパイラ)を利用した場合に出力されます
libmono.so が存在している
- x.apk/lib/abi/libmono.so
- monoランタイムです
- IL2CPPを利用しない場合出力されます
libunity.so が存在している
- x.apk/lib/abi/libunity.so
- Unityのメインモジュールです
- x.apk/assets/bin/Data/Managed/Metadata/global-metadata.dat
- クラス名、メソッド名、文字列等のメタデータが含まれたファイルです
- IL2CPPを利用した場合に出力されます
Ⅲ. Cocos2d の場合
cocos2d という文字列が存在している
Ⅳ. UnrealEngine4 の場合
UE4 という文字列が含まれている