https://github.com/aeonlucid/frida-il2cpp
An helper library for those that want to play around with Unity il2cpp games.
https://github.com/aeonlucid/frida-il2cpp
frida il2cpp unity
Last synced: 10 months ago
JSON representation
An helper library for those that want to play around with Unity il2cpp games.
- Host: GitHub
- URL: https://github.com/aeonlucid/frida-il2cpp
- Owner: AeonLucid
- Created: 2020-09-05T18:42:26.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-09-06T02:51:12.000Z (over 5 years ago)
- Last Synced: 2025-03-28T13:21:42.271Z (11 months ago)
- Topics: frida, il2cpp, unity
- Language: TypeScript
- Homepage:
- Size: 11.7 KB
- Stars: 107
- Watchers: 6
- Forks: 14
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# frida-il2cpp
An helper library for those that want to play around with Unity il2cpp games.
Tested on Windows but should easily work for Android / iOS too. I think only the `Process.findModuleByName("GameAssembly.dll")!;` in `il2cpp.ts` needs to be changed.
## Example class
```ts
import { Il2CppClassWrapper } from "../../frida-il2cpp/lib/il2cpp_class";
import { il2cpp } from "../../frida-il2cpp/lib/il2cpp_globals";
import { Il2CppObject } from "../../frida-il2cpp/lib/il2cpp";
export class CS_List extends Il2CppClassWrapper {
private _handle: Il2CppObject;
private _type: (new (instance: Il2CppObject) => T);
constructor (handle: Il2CppObject, type: (new (instance: Il2CppObject) => T)) {
super("System.Collections.Generic", "List`1", il2cpp.il2cpp_object_get_class(handle));
this._handle = handle;
this._type = type;
}
public size(): number {
return this.get_instance_value(this._handle, "_size").toInt32();
}
public count(): number {
return this.invoke_instance_method(this._handle, "get_Count", "int");
}
public item(index: number): T {
const addrIndex = Memory.alloc(4);
addrIndex.writeS32(index);
const result = this.invoke_instance_method(this._handle, "get_Item", "object", [
addrIndex
]);
return new this._type(result);
}
}
```
### Usage
```ts
let players: CS_List = gameData.allPlayers();
for (let index = 0; index < players.count(); index++) {
const element: AO_PlayerInfo = players.item(index);
console.log(element.playerName());
}
```