Open vfsfitvnm opened 1 year ago
For the game, these are some possible choices. Beware I didn't check if they fulfill the requirements - and we should ask the author(s) for permission, first.
I just created a template for this library and I think it could be a good starting point for beginners. Please let me know if there are any issues that I should correct.
perfect ~
Find a way to build IL2CPP tests sources. Ideally, we should also edit the IL2CPP source code to apply some common anti reverse engineering techniques (for code coverage).
Thanks to @djkaty (blog, file) I managed to build a "standalone" shared library for Linux, GameAssembly.so
(already played around with frida-il2cpp-bridge
:stuck_out_tongue_winking_eye: ).
It means testing does not need a real game anymore! This simplifies the whole process by a lot.
Bash script: https://gist.github.com/vfsfitvnm/bada5805f46d5198e8757986fa9c8cc9
Thanks to @djkaty (blog, file) I managed to build a "standalone" shared library for Linux,
GameAssembly.so
(already played around withfrida-il2cpp-bridge
😜 ).It means testing does not need a real game anymore! This simplifies the whole process by a lot.
Bash script: https://gist.github.com/vfsfitvnm/bada5805f46d5198e8757986fa9c8cc9
Sick project, would never have seen it without the tag mention. Looks really impressive, amazing work!
Sick project, would never have seen it without the tag mention. Looks really impressive, amazing work!
Thank you for the kind words, but it wouldn't have been possible without Frida! And, of course, thank you for your valuable resources about IL2CPP :smiley_cat:
Determine where these tests should run (locally or GitHub actions).
The biggest concern with using GitHub Actions is the slow feedback (i.e. I don't want to push and wait to see if I broke something), so local tests are preferred. However, if I got it correctly, GitHub Actions can be ran on Windows and MacOS too at no cost - so I can comfortably make changes or tests to see if I broke cross platforming.
So, the answer is both (https://github.com/nektos/act)! Writing the actions will be very painful, however :<
Alright, the first step to setup a test environment would be building and publishing Docker images (we cannot use https://github.com/game-ci/docker as they only provide 2018+ images):
ubuntu-latest
for each Unity version. Delete/do not extract any unnecessary file so that the total size is > 300MB (instead of > 5GB).
Using Docker images isn't absolutely necessary - we could do that process within the runner itself and cache the whole unity
directory instead (downloading and extracting takes some time).
However, GitHub's cache has a limit of 10GB per repository and it gets evicted after being unused for 7 days. We should be fine with that, however I don't know how caching would play in a local environment using https://github.com/nektos/act.
Can we use INDEPENDENT GAMES or BUY-OUTS for single player games for testing and documenting?
I don't know, we must ask for permission to the owner(s) of the game, but I don't think they would accept (comprehensibly).
I already run tests locally (see the test
folder), they surely need more work, but a real game isn't necessary anymore.
Hi all! This discussion made me realize we need to massively improve the documentation and usability of this project.
However, we can address these two problems if we had the source code of a simple game, so that we could create a tutorial to show how to think and what to do when using
frida-il2cpp-bridge
(also, it would allow testing!).For documenting, the ideal game should be catchy and well-made, whereas it should be cross-platform and compatible with the Unity versions supported by
frida-il2cpp-bridge
for testing.Edit: https://github.com/vfsfitvnm/frida-il2cpp-bridge/issues/261#issuecomment-1493015414 We can have separated sources for testing and documenting.
Steps:
This is the high level plan - I don't even know the feasibility of it. Most importantly, I don't know how much time it requires and I can't even estimate its time of arrival (ETA).
Possibly useful: https://github.com/game-ci/docker https://github.com/nneonneo/Il2CppVersions