Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

AltStyle によって変換されたページ (->オリジナル) /