littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于C++和Windows API的动态代码加密系统

项目简介

本项目借助C++和Windows API构建动态代码加密系统,运用自修改代码(SMC)技术达成代码的动态加密与解密。项目结合DLL和EXE文件,借助Windows API修改内存页面权限,实现代码段的加解密操作。具备普通DLL调用、基于DLL的SMC实现、多次SMC实现以及基于链接脚本和自定义section的SMC实现等功能。

项目的主要特性和功能

  1. 普通DLL调用:提供简单DLL调用示例,展示DLL文件的编译与调用方法。
  2. 基于DLL的SMC实现:借助外部Python脚本对DLL文件代码段加密,运行时解密并执行。
  3. 多次SMC实现:给出多次SMC示例,体现解密代码后发现其仍需进一步解密的情况。
  4. 基于链接脚本和自定义section的SMC实现:利用链接脚本和自定义section实现动态调用函数方案,增加逆向工程难度。
  5. 简洁的SMC方案:通过修改函数体变量初值控制函数执行路径。

安装使用步骤

假设用户已下载本项目的源码文件,可按以下步骤操作:

1. 编译DLL和EXE文件

进入项目目录,使用g++编译器编译DLL和EXE文件: bash cd self-modify-code-hello g++ enc.cpp -g -shared -o enc.dll g++ main.cpp -g -o main.exe

2. 运行加密脚本

使用Python脚本对生成的DLL文件进行加密: bash python enc_dll.py

3. 运行程序

运行生成的EXE文件,输入标志(flag)进行验证: bash ./main.exe

4. 多次SMC实现

  • 编译enc.cpp生成enc.dll
  • 运行enc_dll.py生成enc_e.dll
  • 编译main.cpp生成main.exe
  • 运行main.exe进行验证。

5. 基于链接脚本和自定义section的SMC实现

使用链接脚本进行编译: bash g++ main.cpp -g -T main.lds -o main.exe 然后运行加密脚本对生成的EXE文件进行加密: bash python enc_exe.py

6. 简洁的SMC方案

编译并运行程序: bash g++ smc_branch_control.cpp -g -o smc_branch_control.exe ./smc_branch_control.exe

通过以上步骤,可成功运行并测试本项目的各项功能。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】