Push demo

This commit is contained in:
√(noham)²
2026-03-01 11:36:41 +01:00
commit 569167ca19
16 changed files with 6089 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
.DS_Store
libswizzle_arm64.dylib
libswizzle_arm64_protected.dylib
test_swizzle_arm64

56
README.md Normal file
View File

@@ -0,0 +1,56 @@
# Code Virtualizer Method Swizzling Demo
This project demonstrates [Oreans Code Virtualizer](https://www.oreans.com/CodeVirtualizer.php) protection applied to Objective-C method swizzling on macOS (arm64).
## Project Files
### Source Files
- `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
- `test_swizzle.m` - Test program to verify the swizzling functionality
- Logs the output to demonstrate the effect of the swizzling
### Built Artifacts
- `libswizzle_arm64.dylib` - Unprotected version of the swizzling library
- `libswizzle_arm64_protected.dylib` - Protected version (virtualized with Code Virtualizer in Demo mode)
- `test_swizzle_arm64` - Compiled test executable
## Building
```bash
make all
```
- `libswizzle_arm64.dylib` : The swizzling dynamic library
- `test_swizzle_arm64` : The test executable
## Running the Demo
Note: SIP must be disabled to run the demo due to the use of `DYLD_INSERT_LIBRARIES` for method swizzling.
```bash
./scripts/demo_swizzle.sh
```
## Code Virtualizer Protection
The `swizzle.m` file demonstrates several Code Virtualizer features:
### Virtualization Macros
- `VIRTUALIZER_START` / `VIRTUALIZER_END` - Marks code sections to be virtualized
- `VIRTUALIZER_STR_ENCRYPT_START` / `VIRTUALIZER_STR_ENCRYPT_END` - Encrypts string literals
**Note:** `VIRTUALIZER_STR_ENCRYPT_START` is not available in the demo version.
![demo_restrictions.png](demo_restrictions.png)
### Stealth Code Area
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_END` macros
![docs/options_VM.png](docs/options_VM.png)
![docs/p.png](docs/p.png)
![docs/ran.png](docs/ran.png)
See [docs/logs.logs](docs/logs.logs) for available features applied to the demo.

BIN
docs/demo_restrictions.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

52
docs/logs.logs Normal file
View File

@@ -0,0 +1,52 @@
Code Virtualizer ARM64 - Total Obfuscation against Reverse Engineering [Version 3.2.3.22]
Copyright (C) Oreans Technologies 2003 - 2026
File to Protect
Input File: \\Mac\Home\Desktop\Virtualizer\Examples\Mac OS X\GCC\libswizzle_arm64.dylib
Output File: \\Mac\Home\Desktop\Virtualizer\Examples\Mac OS X\GCC\libswizzle_arm64_protected.dylib
Starting Protection
-> Checking Input and Output files . . . OK
-> Reading Protection Macros . . . OK (6 macros found)
-> Initializing VM Engine . . . OK
Ansi Strings to Virtualize
No Ansi strings to virtualize
Unicode Strings to Virtualize
No Unicode strings to virtualize
Virtual Machines Generation
-> Machine #1 (FALCON64 ARM (Tiny) VM) . . . . OK (size 76 KB)
Protecting Code Blocks
-> Virtualizing code . . . OK
Protecting Macros (Mutation & StrEncrypt)
-> Macro #1: STR_ENCRYPT (0x000000000001FC44 - 0x000000000001FC50) . . . Skipped
-> Macro #2: STR_ENCRYPT (0x000000000001FCD8 - 0x000000000001FCF0) . . . Skipped
-> Macro #3: STR_ENCRYPT (0x000000000001FDD0 - 0x000000000001FE00) . . . Skipped
Protecting Macros (Virtualization)
[DEMO Restriction: All virtualization macros are converted to Falcon Tiny VM]
-> Macro #4: VIRTUALIZER (0x000000000001FC30 - 0x000000000001FC78) . . . OK (size 1666 bytes)
-> Macro #5: VIRTUALIZER (0x000000000001FCC4 - 0x000000000001FD78) . . . OK (size 4448 bytes)
-> Macro #6: VIRTUALIZER (0x000000000001FDBC - 0x000000000001FE44) . . . OK (size 2679 bytes)
Compressing Virtual Machines
Compression disabled
Finalizing Protection
-> Rebuilding Output File . . . OK
Report
-> Input File Size: 162,52 kb
-> Output File Size: 721,11 kb
-> Increase in Size: 558,59 kb
-> Stealth Code Area (unused space): 117 Kb
-> MD5 Hash: 0c028b849cde49e78a181f811ebb4834
-> Elapsed Time: 1 seconds (using 4 cores)
*** File successfully protected ***
[Demo Restrictions applied]

BIN
docs/options_VM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 902 KiB

BIN
docs/p.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 KiB

BIN
docs/ran.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

33
scripts/demo_swizzle.sh Executable file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
echo "=============================================="
echo " Method Swizzling Demo with Code Virtualizer"
echo "=============================================="
echo ""
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Get the directory where this script is located
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# Test 1: Run without swizzling
echo -e "${YELLOW}Test 1: Running test_swizzle_arm64 WITHOUT dylib injection${NC}"
echo "Command: ./test_swizzle_arm64"
echo ""
"$DIR/test_swizzle_arm64"
echo ""
echo "---"
echo ""
# Test 2: Run with swizzling
echo -e "${YELLOW}Test 2: Running test_swizzle_arm64 WITH dylib injection${NC}"
echo "Command: DYLD_INSERT_LIBRARIES=./libswizzle_arm64.dylib ./test_swizzle_arm64"
echo ""
DYLD_INSERT_LIBRARIES="$DIR/libswizzle_arm64.dylib" "$DIR/test_swizzle_arm64"
echo ""
echo "---"
echo ""

View File

@@ -0,0 +1,212 @@
/*****************************************************************************
; Header: StealthCodeArea.h
; Description: Header to create a "dummy" code area to insert the protection
; code
;
; Authors: Rafael Ahucha
; (c) 2013 Oreans Technologies
;****************************************************************************/
/******************************************************************************
; Prototypes
;*****************************************************************************/
#define STEALTH_AUX_FUNCTION void CVSX(unsigned int i) {printf("%i", i);}
#define STEALTH_AREA_START CVSX(0xA1A2A3A4); CVSX(0xA4A3A2A1); \
CVSX(0xB1A1B2A2); CVSX(0xB8A8A1A1);
#define STEALTH_AREA_END CVSX(0xB6B5B3B6); CVSX(0xA2B2C2D2); \
CVSX(0xA9A8A2A2); CVSX(0xA0A9B9B8);
#define STEALTH_AREA_CHUNK \
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(1); CVSX(2); CVSX(1); CVSX(3); CVSX(4); CVSX(2); CVSX(10); CVSX(2);\
CVSX(4); CVSX(1); CVSX(12); CVSX(1); CVSX(5); CVSX(2); CVSX(3); CVSX(4);

View File

@@ -0,0 +1,250 @@
/******************************************************************************
Header: VirtualizerSDK.h
Description: SDK header definition for the C/C++ language
Author/s: Oreans Technologies
(c) 2023 Oreans Technologies
*****************************************************************************/
#pragma once
// ***********************************************
// Cross Compiler definitions
// ***********************************************
#if defined(__GNUC__)
#define DLL_IMPORT extern
#define STDCALL_CONVENTION
#else
#define DLL_IMPORT __declspec(dllimport)
#define STDCALL_CONVENTION __stdcall
#endif
// ***********************************************
// Specify platform
// ***********************************************
#if defined(__GNUC__)
#if defined(__x86_64__)
#define PLATFORM_X64
#elif defined(__aarch64__)
#define PLATFORM_ARM64
#else
#define PLATFORM_X32
#endif
#else
#if defined(_M_X64)
#define PLATFORM_X64
#elif defined(_M_ARM64)
#define PLATFORM_ARM64
#else
#define PLATFORM_X32
#endif
#endif
// ***********************************************
// Defines
// ***********************************************
#if defined(__GNUC__) || defined (__ICL)
#define CV_X32_INSERT_VIA_INLINE
#define CV_X64_INSERT_VIA_INLINE
#define CV_ARM64_INSERT_VIA_INLINE
#else
#define CV_X32_INSERT_VIA_INLINE
//#define CV_X64_INSERT_VIA_INLINE // uncomment for inline assembly
//#define CV_ARM64_INSERT_VIA_INLINE // uncomment for inline assembly
#endif
// ***********************************************
// Include files
// ***********************************************
#include "VirtualizerSDK_CustomVMs.h"
// ***********************************************
// link with correct platform library
// ***********************************************
#ifndef CV_X64_INSERT_VIA_INLINE
#ifdef PLATFORM_X64
#ifdef _NTDDK_
#pragma comment(lib, "VirtualizerDDK.lib")
#else
#pragma comment(lib, "VirtualizerSDK64.lib")
#endif
#endif
#endif
#ifndef CV_X32_INSERT_VIA_INLINE
#ifdef PLATFORM_X32
#ifdef _NTDDK_
#pragma comment(lib, "VirtualizerDDK.lib")
#else
#pragma comment(lib, "VirtualizerSDK32.lib")
#endif
#endif
#endif
#ifndef CV_ARM64_INSERT_VIA_INLINE
#ifdef PLATFORM_ARM64
#ifdef _NTDDK_
#pragma comment(lib, "VirtualizerDDK.lib")
#else
#pragma comment(lib, "VirtualizerArm64SDK.lib")
#endif
#endif
#endif
// ***********************************************
// In latest CV versions, we have removed the
// VirtualizerXStart and VirtualizerMutate macros
// ***********************************************
#define Virtualizer1Start VirtualizerStart
#define Virtualizer2Start VirtualizerStart
#define Virtualizer3Start VirtualizerStart
#define Virtualizer4Start VirtualizerStart
#define Virtualizer5Start VirtualizerStart
#define Virtualizer1End VirtualizerEnd
#define Virtualizer2End VirtualizerEnd
#define Virtualizer3End VirtualizerEnd
#define Virtualizer4End VirtualizerEnd
#define Virtualizer5End VirtualizerEnd
#define VirtualizerMutate1Start VirtualizerStart
#define VirtualizerMutate2Start VirtualizerStart
#define VirtualizerMutate3Start VirtualizerStart
#define VIRTUALIZER1_START VIRTUALIZER_START
#define VIRTUALIZER2_START VIRTUALIZER_START
#define VIRTUALIZER3_START VIRTUALIZER_START
#define VIRTUALIZER4_START VIRTUALIZER_START
#define VIRTUALIZER5_START VIRTUALIZER_START
#define VIRTUALIZER1_END VIRTUALIZER_END
#define VIRTUALIZER2_END VIRTUALIZER_END
#define VIRTUALIZER3_END VIRTUALIZER_END
#define VIRTUALIZER4_END VIRTUALIZER_END
#define VIRTUALIZER5_END VIRTUALIZER_END
#define VIRTUALIZER_MUTATE1_START VIRTUALIZER_START
#define VIRTUALIZER_MUTATE2_START VIRTUALIZER_START
#define VIRTUALIZER_MUTATE3_START VIRTUALIZER_START
// ***********************************************
// Definition of VirtualizerStart macro to keep
// compatibility with previous CV versions
// ***********************************************
#ifdef __cplusplus
extern "C" {
#endif
DLL_IMPORT void STDCALL_CONVENTION VirtualizerStart(void);
DLL_IMPORT void STDCALL_CONVENTION VirtualizerEnd(void);
DLL_IMPORT void STDCALL_CONVENTION VirtualizerStrEncryptStart(void);
DLL_IMPORT void STDCALL_CONVENTION VirtualizerStrEncryptEnd(void);
DLL_IMPORT void STDCALL_CONVENTION VirtualizerStrEncryptWStart(void);
DLL_IMPORT void STDCALL_CONVENTION VirtualizerStrEncryptWEnd(void);
DLL_IMPORT void STDCALL_CONVENTION VirtualizerUnprotectedStart(void);
DLL_IMPORT void STDCALL_CONVENTION VirtualizerUnprotectedEnd(void);
#ifdef __cplusplus
}
#endif
#if defined(PLATFORM_X64) && !defined(CV_X64_INSERT_VIA_INLINE)
#define VIRTUALIZER_START VirtualizerStart();
#define VIRTUALIZER_END VirtualizerEnd();
#define VIRTUALIZER_STR_ENCRYPT_START VirtualizerStrEncryptStart();
#define VIRTUALIZER_STR_ENCRYPT_END VirtualizerStrEncryptEnd();
#define VIRTUALIZER_STR_ENCRYPTW_START VirtualizerStrEncryptWStart();
#define VIRTUALIZER_STR_ENCRYPTW_END VirtualizerStrEncryptWEnd();
#define VIRTUALIZER_UNPROTECTED_START VirtualizerUnprotectedStart();
#define VIRTUALIZER_UNPROTECTED_END VirtualizerUnprotectedEnd();
#define CV_CUSTOM_VMS_DEFINED
#endif
#if defined(PLATFORM_ARM64) && !defined(CV_ARM64_INSERT_VIA_INLINE)
#define VIRTUALIZER_START VirtualizerStart();
#define VIRTUALIZER_END VirtualizerEnd();
#define VIRTUALIZER_STR_ENCRYPT_START VirtualizerStrEncryptStart();
#define VIRTUALIZER_STR_ENCRYPT_END VirtualizerStrEncryptEnd();
#define VIRTUALIZER_STR_ENCRYPTW_START VirtualizerStrEncryptWStart();
#define VIRTUALIZER_STR_ENCRYPTW_END VirtualizerStrEncryptWEnd();
#define VIRTUALIZER_UNPROTECTED_START VirtualizerUnprotectedStart();
#define VIRTUALIZER_UNPROTECTED_END VirtualizerUnprotectedEnd();
#define CV_CUSTOM_VMS_DEFINED
#endif
#if defined(PLATFORM_X32) && !defined(CV_X32_INSERT_VIA_INLINE)
#define VIRTUALIZER_START VirtualizerStart();
#define VIRTUALIZER_END VirtualizerEnd();
#define VIRTUALIZER_STR_ENCRYPT_START VirtualizerStrEncryptStart();
#define VIRTUALIZER_STR_ENCRYPT_END VirtualizerStrEncryptEnd();
#define VIRTUALIZER_STR_ENCRYPTW_START VirtualizerStrEncryptWStart();
#define VIRTUALIZER_STR_ENCRYPTW_END VirtualizerStrEncryptWEnd();
#define VIRTUALIZER_UNPROTECTED_START VirtualizerUnprotectedStart();
#define VIRTUALIZER_UNPROTECTED_END VirtualizerUnprotectedEnd();
#define CV_CUSTOM_VMS_DEFINED
#endif
// ***********************************************
// x32/x64 definition as inline assembly
// ***********************************************
#ifndef CV_CUSTOM_VMS_DEFINED
#ifdef __BORLANDC__
#include "VirtualizerSDK_BorlandC_inline.h"
#endif
#ifdef __GNUC__
#include "VirtualizerSDK_GNU_inline.h"
#endif
#ifdef __ICL
#include "VirtualizerSDK_ICL_inline.h"
#endif
#ifdef __LCC__
#include "VirtualizerSDK_LCC_inline.h"
#endif
#if defined(_MSC_VER) || defined(__INTEL_COMPILER)
#include "VirtualizerSDK_VC_inline.h"
#endif
#endif

View File

@@ -0,0 +1,734 @@
/******************************************************************************
* Header: VirtualizerSDK_CustomVMs.h
* Description: Definitions for Custom VMs in SecureEngine
*
* Author/s: Oreans Technologies
* (c) 2024 Oreans Technologies
*
* --- File generated automatically from Oreans VM Generator (21/7/2024) ---
******************************************************************************/
// ***********************************************
// Definition of macros as function names
// ***********************************************
#ifdef __cplusplus
extern "C" {
#endif
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000100_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000100_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000103_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000103_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000178_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000178_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000101_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000101_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000104_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000104_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000179_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000179_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000102_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000102_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000105_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000105_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000180_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000180_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000106_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000106_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000107_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000107_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000181_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000181_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000108_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000108_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000109_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000109_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000182_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000182_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000110_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000110_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000111_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000111_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000183_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000183_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000112_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000112_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000113_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000113_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000184_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000184_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000114_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000114_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000115_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000115_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000185_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000185_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000116_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000116_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000117_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000117_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000186_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000186_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000118_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000118_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000119_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000119_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000187_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000187_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000120_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000120_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000121_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000121_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000188_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000188_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000122_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000122_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000123_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000123_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000189_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000189_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000190_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000190_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000191_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000191_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000192_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000192_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000193_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000193_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000194_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000194_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000134_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000134_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000135_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000135_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000195_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000195_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000136_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000136_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000137_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000137_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000196_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000196_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000138_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000138_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000139_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000139_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000197_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000197_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000146_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000146_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000147_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000147_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000201_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000201_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000148_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000148_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000149_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000149_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000202_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000202_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000150_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000150_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000151_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000151_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000203_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000203_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000207_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000207_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000160_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000160_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000161_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000161_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000208_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000208_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000162_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000162_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000163_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000163_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000209_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000209_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000164_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000164_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000165_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000165_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000210_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000210_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000166_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000166_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000167_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000167_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000211_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000211_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000168_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000168_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000169_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000169_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000212_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000212_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000170_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000170_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000171_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000171_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000213_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000213_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000172_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000172_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000173_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000173_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000214_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000214_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000174_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000174_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000175_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000175_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000215_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000215_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000176_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000176_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000177_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000177_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000216_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000216_End(void);
DLL_IMPORT void STDCALL_CONVENTION Mutate_Start(void);
DLL_IMPORT void STDCALL_CONVENTION Mutate_End(void);
DLL_IMPORT void STDCALL_CONVENTION Mutate_Start(void);
DLL_IMPORT void STDCALL_CONVENTION Mutate_End(void);
DLL_IMPORT void STDCALL_CONVENTION Mutate_Start(void);
DLL_IMPORT void STDCALL_CONVENTION Mutate_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000217_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000217_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000218_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000218_End(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000219_Start(void);
DLL_IMPORT void STDCALL_CONVENTION CustomVM00000219_End(void);
#ifdef __cplusplus
}
#endif
// ***********************************************
// x64 definition as function names
// ***********************************************
#if defined(PLATFORM_X64) && !defined(CV_X64_INSERT_VIA_INLINE)
#define VIRTUALIZER_TIGER_WHITE_START CustomVM00000103_Start();
#define VIRTUALIZER_TIGER_WHITE_END CustomVM00000103_End();
#define VIRTUALIZER_TIGER_RED_START CustomVM00000104_Start();
#define VIRTUALIZER_TIGER_RED_END CustomVM00000104_End();
#define VIRTUALIZER_TIGER_BLACK_START CustomVM00000105_Start();
#define VIRTUALIZER_TIGER_BLACK_END CustomVM00000105_End();
#define VIRTUALIZER_FISH_WHITE_START CustomVM00000107_Start();
#define VIRTUALIZER_FISH_WHITE_END CustomVM00000107_End();
#define VIRTUALIZER_FISH_RED_START CustomVM00000109_Start();
#define VIRTUALIZER_FISH_RED_END CustomVM00000109_End();
#define VIRTUALIZER_FISH_BLACK_START CustomVM00000111_Start();
#define VIRTUALIZER_FISH_BLACK_END CustomVM00000111_End();
#define VIRTUALIZER_PUMA_WHITE_START CustomVM00000113_Start();
#define VIRTUALIZER_PUMA_WHITE_END CustomVM00000113_End();
#define VIRTUALIZER_PUMA_RED_START CustomVM00000115_Start();
#define VIRTUALIZER_PUMA_RED_END CustomVM00000115_End();
#define VIRTUALIZER_PUMA_BLACK_START CustomVM00000117_Start();
#define VIRTUALIZER_PUMA_BLACK_END CustomVM00000117_End();
#define VIRTUALIZER_SHARK_WHITE_START CustomVM00000119_Start();
#define VIRTUALIZER_SHARK_WHITE_END CustomVM00000119_End();
#define VIRTUALIZER_SHARK_RED_START CustomVM00000121_Start();
#define VIRTUALIZER_SHARK_RED_END CustomVM00000121_End();
#define VIRTUALIZER_SHARK_BLACK_START CustomVM00000123_Start();
#define VIRTUALIZER_SHARK_BLACK_END CustomVM00000123_End();
#define VIRTUALIZER_DOLPHIN_WHITE_START CustomVM00000135_Start();
#define VIRTUALIZER_DOLPHIN_WHITE_END CustomVM00000135_End();
#define VIRTUALIZER_DOLPHIN_RED_START CustomVM00000137_Start();
#define VIRTUALIZER_DOLPHIN_RED_END CustomVM00000137_End();
#define VIRTUALIZER_DOLPHIN_BLACK_START CustomVM00000139_Start();
#define VIRTUALIZER_DOLPHIN_BLACK_END CustomVM00000139_End();
#define VIRTUALIZER_EAGLE_WHITE_START CustomVM00000147_Start();
#define VIRTUALIZER_EAGLE_WHITE_END CustomVM00000147_End();
#define VIRTUALIZER_EAGLE_RED_START CustomVM00000149_Start();
#define VIRTUALIZER_EAGLE_RED_END CustomVM00000149_End();
#define VIRTUALIZER_EAGLE_BLACK_START CustomVM00000151_Start();
#define VIRTUALIZER_EAGLE_BLACK_END CustomVM00000151_End();
#define VIRTUALIZER_LION_WHITE_START CustomVM00000161_Start();
#define VIRTUALIZER_LION_WHITE_END CustomVM00000161_End();
#define VIRTUALIZER_LION_RED_START CustomVM00000163_Start();
#define VIRTUALIZER_LION_RED_END CustomVM00000163_End();
#define VIRTUALIZER_LION_BLACK_START CustomVM00000165_Start();
#define VIRTUALIZER_LION_BLACK_END CustomVM00000165_End();
#define VIRTUALIZER_COBRA_WHITE_START CustomVM00000167_Start();
#define VIRTUALIZER_COBRA_WHITE_END CustomVM00000167_End();
#define VIRTUALIZER_COBRA_RED_START CustomVM00000169_Start();
#define VIRTUALIZER_COBRA_RED_END CustomVM00000169_End();
#define VIRTUALIZER_COBRA_BLACK_START CustomVM00000171_Start();
#define VIRTUALIZER_COBRA_BLACK_END CustomVM00000171_End();
#define VIRTUALIZER_WOLF_WHITE_START CustomVM00000173_Start();
#define VIRTUALIZER_WOLF_WHITE_END CustomVM00000173_End();
#define VIRTUALIZER_WOLF_RED_START CustomVM00000175_Start();
#define VIRTUALIZER_WOLF_RED_END CustomVM00000175_End();
#define VIRTUALIZER_WOLF_BLACK_START CustomVM00000177_Start();
#define VIRTUALIZER_WOLF_BLACK_END CustomVM00000177_End();
#define VIRTUALIZER_MUTATE_ONLY_START Mutate_Start();
#define VIRTUALIZER_MUTATE_ONLY_END Mutate_End();
#define VIRTUALIZER_FALCON_TINY_START CustomVM00000218_Start();
#define VIRTUALIZER_FALCON_TINY_END CustomVM00000218_End();
#define CV_CUSTOM_VMS_DEFINED
#endif
// ***********************************************
// x32 definition as function names
// ***********************************************
#if defined(PLATFORM_X32) && !defined(CV_X32_INSERT_VIA_INLINE)
#define VIRTUALIZER_TIGER_WHITE_START CustomVM00000100_Start();
#define VIRTUALIZER_TIGER_WHITE_END CustomVM00000100_End();
#define VIRTUALIZER_TIGER_RED_START CustomVM00000101_Start();
#define VIRTUALIZER_TIGER_RED_END CustomVM00000101_End();
#define VIRTUALIZER_TIGER_BLACK_START CustomVM00000102_Start();
#define VIRTUALIZER_TIGER_BLACK_END CustomVM00000102_End();
#define VIRTUALIZER_FISH_WHITE_START CustomVM00000106_Start();
#define VIRTUALIZER_FISH_WHITE_END CustomVM00000106_End();
#define VIRTUALIZER_FISH_RED_START CustomVM00000108_Start();
#define VIRTUALIZER_FISH_RED_END CustomVM00000108_End();
#define VIRTUALIZER_FISH_BLACK_START CustomVM00000110_Start();
#define VIRTUALIZER_FISH_BLACK_END CustomVM00000110_End();
#define VIRTUALIZER_PUMA_WHITE_START CustomVM00000112_Start();
#define VIRTUALIZER_PUMA_WHITE_END CustomVM00000112_End();
#define VIRTUALIZER_PUMA_RED_START CustomVM00000114_Start();
#define VIRTUALIZER_PUMA_RED_END CustomVM00000114_End();
#define VIRTUALIZER_PUMA_BLACK_START CustomVM00000116_Start();
#define VIRTUALIZER_PUMA_BLACK_END CustomVM00000116_End();
#define VIRTUALIZER_SHARK_WHITE_START CustomVM00000118_Start();
#define VIRTUALIZER_SHARK_WHITE_END CustomVM00000118_End();
#define VIRTUALIZER_SHARK_RED_START CustomVM00000120_Start();
#define VIRTUALIZER_SHARK_RED_END CustomVM00000120_End();
#define VIRTUALIZER_SHARK_BLACK_START CustomVM00000122_Start();
#define VIRTUALIZER_SHARK_BLACK_END CustomVM00000122_End();
#define VIRTUALIZER_DOLPHIN_WHITE_START CustomVM00000134_Start();
#define VIRTUALIZER_DOLPHIN_WHITE_END CustomVM00000134_End();
#define VIRTUALIZER_DOLPHIN_RED_START CustomVM00000136_Start();
#define VIRTUALIZER_DOLPHIN_RED_END CustomVM00000136_End();
#define VIRTUALIZER_DOLPHIN_BLACK_START CustomVM00000138_Start();
#define VIRTUALIZER_DOLPHIN_BLACK_END CustomVM00000138_End();
#define VIRTUALIZER_EAGLE_WHITE_START CustomVM00000146_Start();
#define VIRTUALIZER_EAGLE_WHITE_END CustomVM00000146_End();
#define VIRTUALIZER_EAGLE_RED_START CustomVM00000148_Start();
#define VIRTUALIZER_EAGLE_RED_END CustomVM00000148_End();
#define VIRTUALIZER_EAGLE_BLACK_START CustomVM00000150_Start();
#define VIRTUALIZER_EAGLE_BLACK_END CustomVM00000150_End();
#define VIRTUALIZER_LION_WHITE_START CustomVM00000160_Start();
#define VIRTUALIZER_LION_WHITE_END CustomVM00000160_End();
#define VIRTUALIZER_LION_RED_START CustomVM00000162_Start();
#define VIRTUALIZER_LION_RED_END CustomVM00000162_End();
#define VIRTUALIZER_LION_BLACK_START CustomVM00000164_Start();
#define VIRTUALIZER_LION_BLACK_END CustomVM00000164_End();
#define VIRTUALIZER_COBRA_WHITE_START CustomVM00000166_Start();
#define VIRTUALIZER_COBRA_WHITE_END CustomVM00000166_End();
#define VIRTUALIZER_COBRA_RED_START CustomVM00000168_Start();
#define VIRTUALIZER_COBRA_RED_END CustomVM00000168_End();
#define VIRTUALIZER_COBRA_BLACK_START CustomVM00000170_Start();
#define VIRTUALIZER_COBRA_BLACK_END CustomVM00000170_End();
#define VIRTUALIZER_WOLF_WHITE_START CustomVM00000172_Start();
#define VIRTUALIZER_WOLF_WHITE_END CustomVM00000172_End();
#define VIRTUALIZER_WOLF_RED_START CustomVM00000174_Start();
#define VIRTUALIZER_WOLF_RED_END CustomVM00000174_End();
#define VIRTUALIZER_WOLF_BLACK_START CustomVM00000176_Start();
#define VIRTUALIZER_WOLF_BLACK_END CustomVM00000176_End();
#define VIRTUALIZER_MUTATE_ONLY_START Mutate_Start();
#define VIRTUALIZER_MUTATE_ONLY_END Mutate_End();
#define VIRTUALIZER_FALCON_TINY_START CustomVM00000217_Start();
#define VIRTUALIZER_FALCON_TINY_END CustomVM00000217_End();
#define CV_CUSTOM_VMS_DEFINED
#endif
// ***********************************************
// ARM64 definition as function names
// ***********************************************
#if defined(PLATFORM_ARM64) && !defined(CV_ARM64_INSERT_VIA_INLINE)
#define VIRTUALIZER_TIGER_WHITE_START CustomVM00000178_Start();
#define VIRTUALIZER_TIGER_WHITE_END CustomVM00000178_End();
#define VIRTUALIZER_TIGER_RED_START CustomVM00000179_Start();
#define VIRTUALIZER_TIGER_RED_END CustomVM00000179_End();
#define VIRTUALIZER_TIGER_BLACK_START CustomVM00000180_Start();
#define VIRTUALIZER_TIGER_BLACK_END CustomVM00000180_End();
#define VIRTUALIZER_FISH_WHITE_START CustomVM00000181_Start();
#define VIRTUALIZER_FISH_WHITE_END CustomVM00000181_End();
#define VIRTUALIZER_FISH_RED_START CustomVM00000182_Start();
#define VIRTUALIZER_FISH_RED_END CustomVM00000182_End();
#define VIRTUALIZER_FISH_BLACK_START CustomVM00000183_Start();
#define VIRTUALIZER_FISH_BLACK_END CustomVM00000183_End();
#define VIRTUALIZER_PUMA_WHITE_START CustomVM00000184_Start();
#define VIRTUALIZER_PUMA_WHITE_END CustomVM00000184_End();
#define VIRTUALIZER_PUMA_RED_START CustomVM00000185_Start();
#define VIRTUALIZER_PUMA_RED_END CustomVM00000185_End();
#define VIRTUALIZER_PUMA_BLACK_START CustomVM00000186_Start();
#define VIRTUALIZER_PUMA_BLACK_END CustomVM00000186_End();
#define VIRTUALIZER_SHARK_WHITE_START CustomVM00000187_Start();
#define VIRTUALIZER_SHARK_WHITE_END CustomVM00000187_End();
#define VIRTUALIZER_SHARK_RED_START CustomVM00000188_Start();
#define VIRTUALIZER_SHARK_RED_END CustomVM00000188_End();
#define VIRTUALIZER_SHARK_BLACK_START CustomVM00000189_Start();
#define VIRTUALIZER_SHARK_BLACK_END CustomVM00000189_End();
#define VIRTUALIZER_FISH_EXTREME_START CustomVM00000190_Start();
#define VIRTUALIZER_FISH_EXTREME_END CustomVM00000190_End();
#define VIRTUALIZER_TIGER_EXTREME_START CustomVM00000191_Start();
#define VIRTUALIZER_TIGER_EXTREME_END CustomVM00000191_End();
#define VIRTUALIZER_FISH_LITE_START CustomVM00000192_Start();
#define VIRTUALIZER_FISH_LITE_END CustomVM00000192_End();
#define VIRTUALIZER_FISH_LONDON_START CustomVM00000193_Start();
#define VIRTUALIZER_FISH_LONDON_END CustomVM00000193_End();
#define VIRTUALIZER_TIGER_LONDON_START CustomVM00000194_Start();
#define VIRTUALIZER_TIGER_LONDON_END CustomVM00000194_End();
#define VIRTUALIZER_DOLPHIN_WHITE_START CustomVM00000195_Start();
#define VIRTUALIZER_DOLPHIN_WHITE_END CustomVM00000195_End();
#define VIRTUALIZER_DOLPHIN_RED_START CustomVM00000196_Start();
#define VIRTUALIZER_DOLPHIN_RED_END CustomVM00000196_End();
#define VIRTUALIZER_DOLPHIN_BLACK_START CustomVM00000197_Start();
#define VIRTUALIZER_DOLPHIN_BLACK_END CustomVM00000197_End();
#define VIRTUALIZER_EAGLE_WHITE_START CustomVM00000201_Start();
#define VIRTUALIZER_EAGLE_WHITE_END CustomVM00000201_End();
#define VIRTUALIZER_EAGLE_RED_START CustomVM00000202_Start();
#define VIRTUALIZER_EAGLE_RED_END CustomVM00000202_End();
#define VIRTUALIZER_EAGLE_BLACK_START CustomVM00000203_Start();
#define VIRTUALIZER_EAGLE_BLACK_END CustomVM00000203_End();
#define VIRTUALIZER_TIGER_LITE_START CustomVM00000207_Start();
#define VIRTUALIZER_TIGER_LITE_END CustomVM00000207_End();
#define VIRTUALIZER_LION_WHITE_START CustomVM00000208_Start();
#define VIRTUALIZER_LION_WHITE_END CustomVM00000208_End();
#define VIRTUALIZER_LION_RED_START CustomVM00000209_Start();
#define VIRTUALIZER_LION_RED_END CustomVM00000209_End();
#define VIRTUALIZER_LION_BLACK_START CustomVM00000210_Start();
#define VIRTUALIZER_LION_BLACK_END CustomVM00000210_End();
#define VIRTUALIZER_COBRA_WHITE_START CustomVM00000211_Start();
#define VIRTUALIZER_COBRA_WHITE_END CustomVM00000211_End();
#define VIRTUALIZER_COBRA_RED_START CustomVM00000212_Start();
#define VIRTUALIZER_COBRA_RED_END CustomVM00000212_End();
#define VIRTUALIZER_COBRA_BLACK_START CustomVM00000213_Start();
#define VIRTUALIZER_COBRA_BLACK_END CustomVM00000213_End();
#define VIRTUALIZER_WOLF_WHITE_START CustomVM00000214_Start();
#define VIRTUALIZER_WOLF_WHITE_END CustomVM00000214_End();
#define VIRTUALIZER_WOLF_RED_START CustomVM00000215_Start();
#define VIRTUALIZER_WOLF_RED_END CustomVM00000215_End();
#define VIRTUALIZER_WOLF_BLACK_START CustomVM00000216_Start();
#define VIRTUALIZER_WOLF_BLACK_END CustomVM00000216_End();
#define VIRTUALIZER_MUTATE_ONLY_START Mutate_Start();
#define VIRTUALIZER_MUTATE_ONLY_END Mutate_End();
#define VIRTUALIZER_FALCON_TINY_START CustomVM00000219_Start();
#define VIRTUALIZER_FALCON_TINY_END CustomVM00000219_End();
#define CV_CUSTOM_VMS_DEFINED
#endif
// ***********************************************
// x32/x64 definition as inline assembly
// ***********************************************
#ifndef CV_CUSTOM_VMS_DEFINED
#ifdef __BORLANDC__
#include "VirtualizerSDK_CustomVMs_BorlandC_inline.h"
#endif
#ifdef __GNUC__
#include "VirtualizerSDK_CustomVMs_GNU_inline.h"
#endif
#ifdef __ICL
#include "VirtualizerSDK_CustomVMs_ICL_inline.h"
#endif
#ifdef __LCC__
#include "VirtualizerSDK_CustomVMs_LCC_inline.h"
#endif
#if defined(_MSC_VER) || defined(__INTEL_COMPILER)
#include "VirtualizerSDK_CustomVMs_VC_inline.h"
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,353 @@
/******************************************************************************
* Header: VirtualizerSDK_GNU_inline.h
* Description: GNU C inline assembly macros definitions
*
* Author/s: Oreans Technologies
* (c) 2013 Oreans Technologies
*
******************************************************************************/
/***********************************************
* Definition as inline assembly
***********************************************/
#ifdef PLATFORM_ARM64
#define VIRTUALIZER_START \
__asm__ (".byte 0x05\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x14\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x0C\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_END \
__asm__ (".byte 0x05\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x14\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x0D\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_STR_ENCRYPT_START \
__asm__ (".byte 0x05\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x14\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x12\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_STR_ENCRYPT_END \
__asm__ (".byte 0x05\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x14\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x13\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_STR_ENCRYPTW_START \
__asm__ (".byte 0x05\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x14\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x22\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_STR_ENCRYPTW_END \
__asm__ (".byte 0x05\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x14\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x23\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_UNPROTECTED_START \
__asm__ (".byte 0x05\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x14\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_UNPROTECTED_END \
__asm__ (".byte 0x05\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x14\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x21\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#else
#define VIRTUALIZER_START \
__asm__ (".byte 0xEB\n"\
".byte 0x10\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x0C\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_END \
__asm__ (".byte 0xEB\n"\
".byte 0x10\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x0D\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_STR_ENCRYPT_START \
__asm__ (".byte 0xEB\n"\
".byte 0x10\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x12\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_STR_ENCRYPT_END \
__asm__ (".byte 0xEB\n"\
".byte 0x10\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x13\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_STR_ENCRYPTW_START \
__asm__ (".byte 0xEB\n"\
".byte 0x10\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x22\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_STR_ENCRYPTW_END \
__asm__ (".byte 0xEB\n"\
".byte 0x10\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x23\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_UNPROTECTED_START \
__asm__ (".byte 0xEB\n"\
".byte 0x10\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#define VIRTUALIZER_UNPROTECTED_END \
__asm__ (".byte 0xEB\n"\
".byte 0x10\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n"\
".byte 0x21\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x00\n"\
".byte 0x43\n"\
".byte 0x56\n"\
".byte 0x20\n"\
".byte 0x20\n");
#endif

16
src/makefile Normal file
View File

@@ -0,0 +1,16 @@
CC=gcc
INCLUDE_PATH=-I../../Include/C -I../../StealthMode/C/StealthCodeRegsArea
all: libswizzle_arm64 test_swizzle_arm64
libswizzle_arm64: swizzle.m
$(CC) -dynamiclib -framework Foundation $(INCLUDE_PATH) -o libswizzle_arm64.dylib swizzle.m -arch arm64
test_swizzle_arm64: test_swizzle.m
$(CC) -o test_swizzle_arm64 test_swizzle.m -framework Foundation -arch arm64
clean:
rm -f *.o test_x86 test_x64 test_arm64 libswizzle_*.dylib test_swizzle_*

76
src/swizzle.m Normal file
View File

@@ -0,0 +1,76 @@
/*****************************************************************************
* swizzle.m
* Build: gcc -dynamiclib -framework Foundation -o libswizzle.dylib swizzle.m -arch arm64
*****************************************************************************/
#import <objc/runtime.h>
#import <Foundation/Foundation.h>
#include "include/VirtualizerSDK.h"
#include "include/StealthCodeArea.h"
int SwizzleStealthVar = 0;
STEALTH_AUX_FUNCTION
void SwizzleStealthCodeArea(void) {
STEALTH_AREA_START
STEALTH_AREA_CHUNK STEALTH_AREA_CHUNK STEALTH_AREA_CHUNK STEALTH_AREA_CHUNK STEALTH_AREA_CHUNK
STEALTH_AREA_CHUNK STEALTH_AREA_CHUNK STEALTH_AREA_CHUNK STEALTH_AREA_CHUNK STEALTH_AREA_CHUNK
STEALTH_AREA_END
}
__attribute__((used))
void ensure_stealth_area_compiled(void) {
if (SwizzleStealthVar == 0x11223344) SwizzleStealthCodeArea();
}
static inline void *swizzle_instance_method(const char *cls, const char *sel, void *imp) {
Method m = class_getInstanceMethod(objc_getClass(cls), sel_registerName(sel));
return method_setImplementation(m, imp);
}
static IMP original_description = NULL;
id my_description(id self, SEL _cmd) {
VIRTUALIZER_START
VIRTUALIZER_STR_ENCRYPT_START
const char *msg = "Swizzled :)";
VIRTUALIZER_STR_ENCRYPT_END
id result = [NSString stringWithUTF8String:msg];
VIRTUALIZER_END
return result;
}
id my_description_chained(id self, SEL _cmd) {
VIRTUALIZER_START
VIRTUALIZER_STR_ENCRYPT_START
const char *log_msg = "[Swizzle] Original: %@";
const char *msg = "Swizzled :)";
VIRTUALIZER_STR_ENCRYPT_END
if (original_description)
NSLog([NSString stringWithUTF8String:log_msg], ((id(*)(id,SEL))original_description)(self, _cmd));
id result = [NSString stringWithUTF8String:msg];
VIRTUALIZER_END
return result;
}
__attribute__((constructor))
static void load(void) {
VIRTUALIZER_START
VIRTUALIZER_STR_ENCRYPT_START
const char *cls1 = "OriginalClass";
const char *sel1 = "original_selector";
const char *cls2 = "NSString";
const char *sel2 = "description";
VIRTUALIZER_STR_ENCRYPT_END
swizzle_instance_method(cls1, sel1, my_description);
original_description = swizzle_instance_method(cls2, sel2, my_description_chained);
VIRTUALIZER_END
}

45
src/test_swizzle.m Normal file
View File

@@ -0,0 +1,45 @@
/*****************************************************************************
* test_swizzle.m
* Description: Test program to demonstrate the method swizzling dylib
* Build: gcc -o test_swizzle test_swizzle.m -framework Foundation -arch arm64
* Run: ./test_swizzle
* Run with dylib: DYLD_INSERT_LIBRARIES=./libswizzle_arm64.dylib ./test_swizzle
*****************************************************************************/
#import <Foundation/Foundation.h>
@interface OriginalClass : NSObject
- (NSString *)original_selector;
@end
@implementation OriginalClass
- (NSString *)original_selector {
return @"Original Implementation";
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
OriginalClass *obj = [[OriginalClass alloc] init];
NSString *result = [obj original_selector];
NSLog(@"Result: %@", result);
NSString *testString = @"Hello World";
NSString *description = [testString description];
NSLog(@"testString.description: %@", description);
NSLog(@"Logging string directly: %@", testString);
NSString *str1 = @"Test1";
NSString *str2 = @"Test2";
NSLog(@"str1: %@, str2: %@", str1, str2);
if ([description isEqualToString:@"Swizzled :)"]) {
NSLog(@"Swizzling is active!");
} else {
NSLog(@"Swizzling is NOT active");
}
}
return 0;
}