Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added an Il2CppMethodAttribute to store il2cpp function RVAs #99

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

slxdy
Copy link

@slxdy slxdy commented Jul 3, 2023

This might be a big change, so consider this just as a prototype for now.
Basically, I created a new attribute that's applied to all generated methods, which stores native function RVAs.

Why? The huge advantage of this is that you're able to get il2cpp function pointers before il2cpp is fully initialized.
My main reason for creating this is that I'm creating my own il2cpp detour method, and I want it to be able
to hook methods before all il2cpp assemblies and all that other stuff are loaded.

In the attribute, I left a suggestion that the attribute may also be a good place to store unobfuscated method names,
but I decided not to implement this yet, considering that would drastically impact the sizes of obfuscated assemblies.

So idk, lmk if this is a good idea, but I'd be grateful if it got approved.

Note: I also fixed Cpp2IL type stripping. I believe the newer versions of Cpp2IL use a slightly different namespace.

@Kasuromi
Copy link
Member

Kasuromi commented Jul 3, 2023

The huge advantage of this is that you're able to get il2cpp function pointers before il2cpp is fully initialized.

What gives? The Il2CppInterop runtime must be boostrapped after il2cpp_init, and at that point all metadata is loaded allowing you to resolve everything at runtime.

@slxdy slxdy marked this pull request as draft July 3, 2023 22:07
@ds5678 ds5678 added the generation Related to assembly generation label Jul 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
generation Related to assembly generation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants