Giter Site home page Giter Site logo

biniamf / data_obfuscation Goto Github PK

View Code? Open in Web Editor NEW
18.0 4.0 2.0 119 KB

Data Obfuscation for C/C++ Code Based on Residue Number Coding (RNC)

Home Page: https://ieeexplore.ieee.org/document/7174809

CMake 0.09% C++ 74.08% Makefile 0.40% Shell 1.16% C 24.26%
llvm-clang obfuscator obfuscation data-obfuscation software-security reverse-engineering securi security-tools security compiler

data_obfuscation's Introduction

Data Obfuscation with Residue Number Coding for C/C++ Codes

A major threats to software security is malicious code tampering, where an attacker modifies the original program to make it work in a way that was not intended by the developer. Software obfuscation was proposed as a technique to mitigate the problem of malicious code tampering. Obfuscation is intended to protect the software from unauthorized modification by making code more difficult to understand to the potential attacker, and consequently more difficult and expensive to alter.

Software obfuscation can be applied either to code or to data. In this study we focus on the latter variant, i.e. data obfuscation. We adopt a data obfuscation technique based on homomorphic encoding. Program variables are encode to hide their actual values. While the encoding scheme allows to hide values of variables, it also supports operations in the encoded domain, so the computations on encoded variables can proceed without the need to decode them back in the clear, so that their value is not revealed to a potential attacker.

We improved the level of obscurity by applying obfuscation not just to sensitive variables, but also to those variables that are near and related to these sensitive variables. We propose a distance metric based on data-dependency among variables. We obfuscate also those variable whose distance from a sensitive variable is shorter than a given threshold. Depending on the threshold, we obtain different configurations of variables to obfuscate, based on their distance from the initial sensitive variable.

Obfuscating transformation and metric computation have been implemented in tool prototypes and evaluated empirically on real source codes. We measured memory and runtime overhead due to obfuscation when the distance threshold increases and data obfuscation is applied on more and more variables.

https://ieeexplore.ieee.org/document/7174809

data_obfuscation's People

Contributors

biniamf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

zzhichen storri

data_obfuscation's Issues

add_clang_executable not found

CMake Error at CMakeLists.txt:5 (add_clang_executable):
Unknown CMake command "add_clang_executable".

CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as

cmake_minimum_required(VERSION 3.13)

should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.

-- Configuring incomplete, errors occurred!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.