This project demonstrates Oreans Code Virtualizer protection applied to Objective-C method swizzling on macOS (arm64).
-
swizzle.m- Dynamic library that performs Objective-C method swizzling- Protected with Code Virtualizer macros (
VIRTUALIZER_START,VIRTUALIZER_END,VIRTUALIZER_STR_ENCRYPT_START, etc.) - Includes Stealth Code Area for additional anti-debugging protection
- Protected with Code Virtualizer macros (
-
test_swizzle.m- Test program to verify the swizzling functionality- Logs the output to demonstrate the effect of the swizzling
libswizzle_arm64.dylib- Unprotected version of the swizzling librarylibswizzle_arm64_protected.dylib- Protected version (virtualized with Code Virtualizer in Demo mode)test_swizzle_arm64- Compiled test executable
make alllibswizzle_arm64.dylib: The swizzling dynamic librarytest_swizzle_arm64: The test executable
Note: SIP must be disabled to run the demo due to the use of DYLD_INSERT_LIBRARIES for method swizzling.
./scripts/demo_swizzle.shThe swizzle.m file demonstrates several Code Virtualizer features:
VIRTUALIZER_START/VIRTUALIZER_END- Marks code sections to be virtualizedVIRTUALIZER_STR_ENCRYPT_START/VIRTUALIZER_STR_ENCRYPT_END- Encrypts string literals
Note: VIRTUALIZER_STR_ENCRYPT_START is not available in the demo version.

The code includes a stealth area that:
- Provides additional anti-debugging protection
- Makes analysis more difficult
- Uses
STEALTH_AREA_START,STEALTH_AREA_CHUNK,STEALTH_AREA_ENDmacros
See docs/logs.logs for available features applied to the demo.
(c) 2024 Oreans Technologies
All rights are reserved by Oreans.com
See LICENSE for the complete End User License Agreement.