26 Commits

Author SHA1 Message Date
keowu
04063714da feat: Refactored code for Ryujin console arguments, fixed typos, and resolved instruction-padding logic issues. Fixed temporary variable bug in MBA equivalence generation and more
- Fixed bugs reported by third parties (instruction-override issues, padding-space logic, and more)
- Corrected typos (translated comments/examples to English)
- Fully refactored the Ryujin console (arguments now handled via the argparser library)
- MBA pass: fixed equivalence-logic issues when generating MBA instructions for original operations
- Updated DemoObfuscation usage examples
2025-11-19 21:07:19 -03:00
keowu
0a51b98c8d feat: Begin implementing MBA Obfuscation Pass and bug fixies on RunMiniVMObfuscation
- Started working on the feature to add a custom standalone pass that adds support for MBA obfuscation in arithmetic operators with guaranteed equivalence and semantics.
- Now Ryujin requires Z3 for MBA Obfuscation equivalence..
- Fixed context and flag handling issues in RunMiniVMObfuscation.
2025-10-27 21:06:08 -03:00
keowu
eef3473ab5 feat: add obfuscation support for Ryujin MiniVM stub (PIC-relative) with custom junk/mutation
- Added full support and the ability to obfuscate the MiniVM stub that uses logic different from the conventional one because it is PIC-relative.
- We added safe junkcode instructions to prevent problems.
- We will now have 40 padding bytes of NOP.
2025-09-23 20:58:54 -03:00
keowu
19bba59fd2 feat: Translate RunMiniVm and Ryujin.Run code comments to English
- Translating code comments into English to make them universally understandable.
2025-09-20 12:50:36 -03:00
keowu
27550432c2 feat: Fix shellcode-stub PIC bug in Ryujin MiniVm so relocations keep working correctly when obfuscated and mutated.
- Fixed a bug that prevented obfuscation of Ryujin MiniVm instructions.
- Implemented a specific algorithm to correct RIP-relative PIC relocations so the Ryujin shellcode stub can execute as expected when properly obfuscated.
- Only padding added for now. an obfuscation and mutation algorithm will be implemented next, independent and customized for the Ryujin MiniVm.
2025-09-20 12:17:10 -03:00
keowu
093569f7b5 feat: Migrate codebase to VS2026 Insider
- Migrating the Ryujin project solution from VS2022 to the newest VS2026 Insider and make it full compatible to use the newer features of MSVC.
2025-09-12 18:02:50 -03:00
keowu
646dd19407 feat: Small fixes in stack handling of RIP-relative relocations
- Fixed bugs that caused stack misalignment when handling RIP-relative relocations.
- Added comments to improve the readability of the relocation fix logic.
2025-09-11 09:23:54 -03:00
keowu
51668165b7 feat: Added source code as a comment to the Ryujin MiniVM Stub Shellcode, update ryujin core diagram
- Added the full source code for the Ryujin MiniVM hypervisor feature as a comment to the shellcode stub.
- Update Ryujin Core Diagram.
2025-08-29 21:34:34 -03:00
keowu
2f5f9e2bd5 feat: New HVPass (extension for code obfuscation) + MiniVM code mutation (for HVPass and standard MiniVM); Bug fixes for extracted unused registers (with future XMM support); Bug fixes for junk/mutation overwriting the RAX register unexpectedly; Improvements and added support for fixing relocation offsets in memory mov instructions; articles/projects diagrams and more.
- New HVPass feature – This feature allows the code VM to run through Microsoft’s Hypervisor API, adding an extra layer of analysis difficulty.
- MiniVM (normal) or MiniVM + HVPass – Now support junk/mutation in the stub, making the logic and instructions randomized at each interaction, further protecting the stub’s code.
- Bug fix – Fixed an issue in the extraction of unused registers from candidate procedures, where some registers were not being handled correctly.
- Bug fix – Fixed an issue in the extraction of XMM registers to enable junk/mutation support for multimedia registers.
- Bug fix – Fixed a problem in the junk/mutation logic for the instructions cdqe and cbw, which were incorrectly overwriting the RAX register, breaking results even when the registers were in use.
- Bug fix – Some instructions were not having relocations properly fixed by the RIP-relative relocation algorithm; this has now been corrected.
- Articles + Project Diagrams as well.

Some of these issues, as well as feature suggestions like HVPass, were discovered or suggested by the reviewers of Ryujin’s article.
2025-08-28 21:20:58 -03:00
keowu
d8c37b2d4c feat: Improve Custom Pass feature code, docs, and demos
- Improved the Custom Pass code to align with Ryujin coding standards.
- Added clear and helpful comments for better understanding of how RyujinCustomPassDemo works.
- Improved README.md for better structure and readability as user-facing documentation.
- Updated demo images for Ryujin and added more visual examples.
2025-07-27 11:10:32 -03:00
keowu
64cdfe6e71 feat: Add custom pass support for Ryujin users via callback
- Ryujin users can now register their own callbacks following the standard interface to create custom passes and extend Ryujin’s behavior.
- Updated configuration files to support safe usage.
- Adjusted README.md.
2025-07-27 09:12:11 -03:00
keowu
ffe6cb9655 feat: Improved pointer safety and performance for better adaptability. Also updated the README.
- Improved and organized pointer safety.
- Removed old, unused fields from the config.
- Introduced RyuJinConfigInternal to separate internal fields not directly related to the exposed config, used only by the Ryujin core.
- Updated README.md.
2025-07-26 22:16:21 -03:00
keowu
487f061d6c feat: Finalize memory protection logic, add GUI/CLI options, and fix README typos
- Added the original source code that generates the memory protection stub as a comment in the stub.
- Added a memory protection flag to the CLI and an option to the GUI.
- Improved CLI help text to be more detailed and explanatory.
- Updated README.md.
2025-07-25 20:30:20 -03:00
keowu
b8a571871d feat: Add logic stub and support for Memory CRC protection in Ryujin-protected binaries
- Implemented support for CRC-based memory protection stub.
- Improved CRC algorithm for better uniqueness and robustness.
- Added capability for Ryujin to store CRC from the .ryujin section into section header fields.
- Bug fixes and updated documentation.
2025-07-24 21:10:27 -03:00
keowu
0988e8e078 feat: Working on the base for Memory CRC32 Protection
- Working on a new feature to allow users to protect obfuscated code with a memory protection mechanism, inspired by VMProtect, where the protector uses CRC32 to validate if a page was modified on disk or in memory.
- This is just the base to start building the feature. It’s still in development and I hope it evolves a lot.
2025-07-19 22:06:32 -03:00
keowu
ac2d80c371 feat: Expanding Break Decompilers and Disassemblers feature
- The disassembler and decompiler's break feature now supports multiple techniques, inspired by a talk from BinjaDev at Off by One Conf. I've researched new capabilities to expand on this idea. The code has also been significantly improved to be more efficient and dynamic, allowing for future enhancements.
- Updated README.md to include the new Memory Protection feature.
2025-07-17 21:02:09 -03:00
keowu
dd22fc4aa9 feat: Break Decompilers and Disassemblers feature
- Ryujin can now break decompilers and disassemblers using a simple technique. This feature was inspired by a talk from BinjaDev at Off by One Conf. It will definitely be improved in the near future with more techniques.
2025-07-16 21:09:22 -03:00
keowu
508a204d21 feat: Add stub code comments for "AntiDump" feature and enhance README.md
- Added the shellcode generation code as comments within the "AntiDump" stub for better context and understanding.
- Enhanced README.md with more detailed descriptions and an outline of planned future features.
2025-07-13 20:05:55 -03:00
keowu
f647c39590 feat: Insert "AntiDump" stub to enable feature execution
- Added the shellcode stub for AntiDump execution.
2025-07-12 22:13:31 -03:00
keowu
a9bdbb1bdd feat: Start implementing the base for the "AntiDump" feature
- Begin work on the foundational structure for the "AntiDump" feature
- Introduced a new capability in Ryujin called "RyujinRunOncePass", which runs only on the first obfuscated function — ideal for volatile features
- Updated "RyujinCoreConfiguration" structures
 - Updated "RyujinGUI" to include the "AntiDump" option
- Updated "RyujinConsole" to display the "AntiDump" feature
- Updated "README.md" accordingly
2025-07-12 21:26:12 -03:00
keowu
a96d97b9b0 feat: MSVC optimization bug fixes, FFI standard support, and Anti-Debug options in RyujinGui
- Fixed a bug related to MSVC optimizations that broke Ryujin's relocation algorithm and its fix-up logic.
- Introduced a standardized FFI argument-passing method for Ryujin Core; the legacy method remains compatible.
- Ryujin GUI now fully supports the Anti-Debug features.
- Various minor bug fixes and improvements to project structure.
2025-07-10 20:55:39 -03:00
keowu
d6caf05940 feat: Finish work on Anti-Debug + TrollReversers features.
- Ryujin is now fully capable of detecting debuggers from both userland and kernel land.
- Ryujin inserts its detection stub without breaking application logic.
- Ryujin supports two modes:
      - Troll – triggers a BSOD using a Microsoft Windows bug.
      - Normal – simply calls NtTerminateProcess when a debugger is detected.
- This implementation can be improved in the future to handle more advanced detection methods, but it's good for now.
2025-07-09 10:59:07 -03:00
keowu
ed224188f7 feat: Working on Anti-Debug + TrollReversers Insertion Stub Research
- Researching how to insert a safe stub to handle detections for anti-debugging and troll attempts as part of the TrollReversers feature.
- Currently, it only inserts a "Hello World" MessageBox in each procedure indicated to Ryujin.
- This stub is completely safe and does not break the original code logic or flow. It can be fully mutated and obfuscated when reanalyzing opcodes, making it fully compatible with all Ryujin features simultaneously.
2025-07-07 21:20:26 -03:00
keowu
bc265c6d6b feat: Begin working on AntiDebug + TrollReversers features
- Started working on the initial concept and base implementation for AntiDebug detection.
- The goal is to use stealthy techniques (similar to Themida) to detect debugging attempts.
- An additional feature is being developed to troll reverse engineers by triggering a forced BSOD upon detection, causing them to lose their analysis progress.
2025-07-04 16:39:43 -03:00
keowu
3683e8dbba feat: Improved project structure, added Ryujin includer header, export definitions, and more.
- The Ryujin console can now include the Ryujin core through a dedicated header file.
- Exporting is now standardized using a definition file.
- The project's compiled output is now placed in a folder named compiled, organized by the desired configuration (Release or Debug).
- Some code organization improvements have been made.
2025-06-24 21:23:15 -03:00
keowu
cbd7fb67f7 feat: Independent "Ryujin Core as a library" for better usability
- Ryujin now includes a component called Core, where the main obfuscator logic resides. It functions as an independent library that can be used anywhere.
- RyujinConsole now operates by loading the RyujinCore library to run the obfuscator.
- This is a preparation step for additional Ryujin components, such as a future Ryujin GUI and more features like passes and advanced obfuscation options.
2025-06-22 13:48:30 -03:00