<<<<<<< HEAD
RWArmor is a static-informed dynamic analysis approach for early detection of cryptographic Windows ransomware, based on the research paper "RWArmor: a static-informed dynamic analysis approach for early detection of cryptographic windows ransomware".
- Static analysis of executable files
- Dynamic behavioral analysis
- API hooking for monitoring suspicious activities
- Machine learning-based detection
- File system activity monitoring
- Early detection within 30-120 seconds of ransomware execution
Before building RWArmor, you need to install:
-
CMake (version 3.10 or higher)
-
C++17 compatible compiler
- Linux: GCC 7+ (
sudo apt-get install build-essential) - macOS: Clang comes with Xcode Command Line Tools (
xcode-select --install) - Windows: Visual Studio 2017+ or MinGW-w64
- Linux: GCC 7+ (
-
Thread support library
- Included in most standard libraries, but may need pthread on some systems
# Clone the repository (if using git)
# git clone https://github.com/your-username/rwarmor.git
# cd rwarmor
# Create build directory
mkdir build
cd build
# Configure and build
cmake ..
cmake --build .mkdir build
cd build
cmake ..
cmake --build . --config Releasemkdir build
cd build
cmake -G "MinGW Makefiles" ..
cmake --build .We provide convenience scripts to build RWArmor quickly:
./build_and_test.shbuild_and_test.bat# From the build directory
./rwarmorOn Windows, use:
.\rwarmor.exeor
.\Release\rwarmor.exeOnce RWArmor is running, you'll see a command prompt:
RWArmor started successfully. Type 'help' for commands.
RWArmor>
help- Display help messagecheck FILE- Check if a file is potentially ransomwareRWArmor> check /path/to/suspicious/file.exethreshold N- Set detection threshold (0.0 to 1.0)RWArmor> threshold 0.8monitor PID- Monitor a specific process IDRWArmor> monitor 1234quit- Exit the program
-
CMake not found: Make sure CMake is installed and in your PATH. See the Prerequisites section for installation instructions.
-
Compilation errors: Ensure you have a C++17 compatible compiler. The code uses C++17 features including
std::filesystem. -
Signature File Missing: Make sure
signatures.txtis in the same directory as the executable, or provide the full path. -
Permission Errors: On Linux/macOS, you may need to run with elevated permissions for file system monitoring:
sudo ./rwarmor
-
Windows API Hooking: For full functionality on Windows, make sure to run with Administrator privileges.
The current implementation provides a framework for ransomware detection. For production use, consider:
- Implementing specific PE file parsing using libraries like LIEF or PE-bear
- Enhancing API hooking with Microsoft Detours or similar libraries
- Training the ML model with real ransomware samples
- Implementing real-time file system monitoring
98f65ee9d5e2b1ce06af580f781db71f4e69b49a