This is a C program designed to detect whether it is running inside a sandboxed or virtualized environment. It uses differences in CPU instruction execution timing to determine if the environment is virtualized, which is a common technique for detecting sandboxes or virtual machines.
The program runs two parallel tasks:
- A thread repeatedly executes the
FYL2XP1
x87 FPU instruction (a logarithmic operation). - The main thread executes the
CPUID
instruction in a loop.
By measuring the ratio of how many times the FYL2XP1
instruction executes relative to the number of CPUID
instructions, the program determines whether it is running in a sandbox. Virtualized environments often introduce overhead for certain instructions, which can skew this ratio.
If the ratio exceeds a predefined threshold, the program concludes that it is running in a sandbox.
- Detects sandboxed or virtualized environments.
- Calculates a confidence score for sandbox detection.
- Uses low-level CPU instructions (
FYL2XP1
andCPUID
) for detection.
- Operating System: Windows
- Compiler: A C compiler that supports inline assembly (e.g., MinGW or MSVC)
- Privileges: Administrator privileges may be required to run the program in some environments.
- Clone the repository or download the source code.
- Compile the program using a C compiler. For example:
gcc -o sandbox-detect sandbox-detect.c
- Run the program:
./sandbox-detect
The program will output:
- The number of
FYL2XP1
executions (c
). - The ratio of
FYL2XP1
executions toCPUID
executions. - A message if a sandbox is detected.
- A confidence score indicating the likelihood of being in a sandbox.
Example output:
c=500000, ratio=5.000000
SANDBOX DETECTED!!!
95.000000% confident sandbox
You can modify the following constants in the code:
THRESHOLD
: The ratio threshold for detecting a sandbox. Default is5.0
.ITERATIONS
: The number ofCPUID
instructions to execute. Default is1000000
.
This program is for educational and research purposes only. It is designed to demonstrate sandbox detection techniques and should not be used for malicious purposes. Use responsibly and in compliance with applicable laws.