Skip to content

android1337/crycall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crycall | Compile-Time Calls Obfuscator for C++14+

Description

This repository provides a compile-time calls obfuscator based on lambdas, virtual calls and on how std::function works.
Users can easily obfuscate their calls using the crycall and crycall_virtual macro provided in the header.
The repository includes an example demonstrating the usage of crycall.
Needs optimization off (C/C++ -> Optimization -> "Optimization" and "Whole Program Optimization")

Key Aspects

  • The actual sub that's being called is hidden.
  • All the arguments passed in the call are hidden.
  • Memory is correctly managed, everything gets free'ed after usage.
  • Supports virtual functions (see crycall_virtual macro)
  • Works well with crystr (see the repo)
  • Supports C++14 and higher versions.

How it shows

Look here

Repository Structure

  • include/: Contains the crycall.hpp header file providing the compile-time calls obfuscation mechanism.
  • src/: Holds the example main.cpp file showcasing the usage of the crycall macro.
  • LICENSE: Licensing information for the provided code.
  • README.md: Documentation explaining how to use the crycall macro and example usage.

Usage

crycall(returntype, function, args...)

or

crycall_virtual(returntype, class_address, virtual_index, args...)

Note that the virtual_index must be the index and not the virtual offset. (index = offset / 0x8)

Usage Example

The repository includes an example demonstrating the usage of the crycall macro:

main.cpp

#include <iostream>
#include "crycall.hpp"

int sum(int a, int b)
{
    return a + b;
}

int main()
{
    printf("sum: %d", crycall(int, sum, 10, 5));

    return 0;
}

About

Compile-Time Calls Obfuscator for C++14+

Resources

License

Stars

Watchers

Forks

Languages