{"id":24537685,"url":"https://github.com/aeonlucid/frida-il2cpp","last_synced_at":"2025-04-15T01:34:33.244Z","repository":{"id":49854043,"uuid":"293134630","full_name":"AeonLucid/frida-il2cpp","owner":"AeonLucid","description":"An helper library for those that want to play around with Unity il2cpp games.","archived":false,"fork":false,"pushed_at":"2020-09-06T02:51:12.000Z","size":12,"stargazers_count":107,"open_issues_count":3,"forks_count":14,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T13:21:42.271Z","etag":null,"topics":["frida","il2cpp","unity"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AeonLucid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-05T18:42:26.000Z","updated_at":"2025-02-27T21:03:01.000Z","dependencies_parsed_at":"2022-09-14T15:10:21.745Z","dependency_job_id":null,"html_url":"https://github.com/AeonLucid/frida-il2cpp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AeonLucid%2Ffrida-il2cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AeonLucid%2Ffrida-il2cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AeonLucid%2Ffrida-il2cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AeonLucid%2Ffrida-il2cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AeonLucid","download_url":"https://codeload.github.com/AeonLucid/frida-il2cpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248989262,"owners_count":21194561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["frida","il2cpp","unity"],"created_at":"2025-01-22T14:13:29.768Z","updated_at":"2025-04-15T01:34:33.222Z","avatar_url":"https://github.com/AeonLucid.png","language":"TypeScript","readme":"# frida-il2cpp\n\nAn helper library for those that want to play around with Unity il2cpp games. \n\nTested 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. \n\n## Example class\n\n```ts\nimport { Il2CppClassWrapper } from \"../../frida-il2cpp/lib/il2cpp_class\";\nimport { il2cpp } from \"../../frida-il2cpp/lib/il2cpp_globals\";\nimport { Il2CppObject } from \"../../frida-il2cpp/lib/il2cpp\";\n\nexport class CS_List\u003cT\u003e extends Il2CppClassWrapper {\n\n    private _handle: Il2CppObject;\n    private _type: (new (instance: Il2CppObject) =\u003e T);\n\n    constructor (handle: Il2CppObject, type: (new (instance: Il2CppObject) =\u003e T)) {\n        super(\"System.Collections.Generic\", \"List`1\", il2cpp.il2cpp_object_get_class(handle));\n        this._handle = handle;\n        this._type = type;\n    }\n\n    public size(): number {\n        return this.get_instance_value(this._handle, \"_size\").toInt32();\n    }\n\n    public count(): number {\n        return this.invoke_instance_method(this._handle, \"get_Count\", \"int\");\n    }\n\n    public item(index: number): T {\n        const addrIndex = Memory.alloc(4);\n\n        addrIndex.writeS32(index);\n        \n        const result = this.invoke_instance_method(this._handle, \"get_Item\", \"object\", [\n            addrIndex\n        ]);\n\n        return new this._type(result);\n    }\n\n}\n```\n\n### Usage\n\n```ts\nlet players: CS_List\u003cAO_PlayerInfo\u003e = gameData.allPlayers();\n\nfor (let index = 0; index \u003c players.count(); index++) {\n    const element: AO_PlayerInfo = players.item(index);\n\n    console.log(element.playerName());\n}\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faeonlucid%2Ffrida-il2cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faeonlucid%2Ffrida-il2cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faeonlucid%2Ffrida-il2cpp/lists"}