I have been coding avidly since 8th grade, and being in a lockdown during COVID gave me plenty more time to pursue this interest. Since then, it has changed the way I approach problems logically, and the skills with which I have to cooperate and communicate effectively.
I have learned a plethora of languages since I started coding, to varying degrees of fluency. The following are languages which I believe myself compentent in:
- Rust
- Python
- x86/x86_64 Assembly (Intel syntax)
- C/CUDA C
- Java
- Javascript/Typescript
- Zig
The following projects are things which I would like to exhibit in order to display either my learning progress or the depth with which I have learned various languages.
-
- Bingushack is the name of a dll injection-based Minecraft Java utility mod developed by myself over the course of several years. There are 3 versions, 2 of which are now public.
-
- This version of the utility mod was primarily a learning experience where I gained knowledge of how Windows processes worked behind the scenes and were able to be manipulated externally.
- bingushack v1 repository
-
- This version of the utility mod was previously private, and was actually quite powerful. Using my knowledge from the previous iteration of this project, I was able to structure it in an ergonomic way and make the code easily extensible for new features.
- Using Rust's procedural macro system, I could streamline the development and maintenance of the entire project.
- bingushack v2 repository
-
- The way the public versions are run is by extending the target process' allocated memory and writing the library bytes into the extra space. This can be done by using a program like ProcessHacker or a custom tool such as the injector I wrote for this.
- After the dll is written to the target memory, the DllMain function is automatically called by Windows. This is the entrypoint to the program.
- From there the execution path varies, but in general the program would use JNI and JVMTI to do a variety of things with Minecraft, such as call Java methods, get Java fields, and instrument Java classes- all at runtime.