Skip to content

code obfuscation for c/c++ Project 基于python实现的针对C/C++源码工程混淆工具实现知识产权保护

Notifications You must be signed in to change notification settings

LS95/CodeObfuscationForCProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code Obfuscation For C++ Project

基于python实现的针对C/C++源码工程混淆工具实现知识产权保护

0x00功能介绍:

处理C/C++工程下的源码,主要进行变量和函数替换

0x01工作原理:

基于clang解析抽象语法树 提取变量和函数名
生成对应密文(随机字符串或相近字符串)
函数和变量对应的进行替换

0x02使用方法:

首先"手动"删除所有文件中的系统头文件 #include <stdio.h> #include<windows.h>等
在myglobal.py中的rootPath指定工程根目录
运行 python main.py
最后需要手动在删除的部分原始文件中添加头文件

0x03 工作流程

  1. 遍历目录下所有预处理C类型文件 .h .hpp .c .cpp .cc
  2. 对于所有文件 使用Clang进行解析 获得所有函数和变量名称,去除重复,去除白名单的内容
  3. 获得函数和变量,转换前后的对应关系 记录在dict中
  4. 对于每个文件进行内容替换
    a) 移除空行 和 注释
    b) 替换内容 逐行操作
    1. 预处理语句 和 多行语句(‘\’结尾) 不做替换
    2. 替换数字 为 多个数的运算结果
    3. 替换字符串 转为16进制
    4. 替换函数
    5. 替换变量

About

code obfuscation for c/c++ Project 基于python实现的针对C/C++源码工程混淆工具实现知识产权保护

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages