【加密解密】对exe文件的加密解密 含源代码》
//编译环境VS2013#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>int getFileSize(char *path)
{FILE *pf = fopen(path, "r");if (pf == NULL){return-1;}else{fseek(pf, 0, SEEK_END); //文件指针移动到文件末尾int length = ftell(pf);return length;}
}//字符串加密
char *stringEncrypt(char *password, char *string)
{int passLength = strlen(password); //获取加密长度 int stringLength = strlen(string); //获取字符串长度 if (stringLength%passLength == 0)//字符串长度是密码长度的整数倍 {int times = stringLength / passLength;for (int i = 0; i < times; i++){for (int j = 0; j < passLength; j++){string[i*passLength + j] ^= password[j];//这里的下标计算画图很容易理解 }}}else{int times = stringLength / passLength;for (int i = 0; i < times; i++){for (int j = 0; j < passLength; j++){string[i*passLength + j] ^= password[j];}}int lastLength = stringLength%passLength;//不能整除的,也就是余数长度 for (int i = 0; i < lastLength; i++){string[passLength*(stringLength / passLength) + i] ^= password[i];//这里的解密要从前边已经整除完成的后一个位置开始, //假如说stringLength = 10,passLength = 4;那么除不尽的加密就从下标8开始, //(10 / 4)*4 = 8. }}return string;
}
//字符串解密算法
char *stringDecode(char *password, char *string)
{int passLength = strlen(password); //获取加密长度 int stringLength = strlen(string); //获取字符串长度 if (stringLength % passLength == 0)//字符串长度是密码长度的整数倍 {int times = stringLength / passLength;for (int i = 0; i < times; i++){for (int j = 0; j < passLength; j++){string[i*passLength + j] ^= password[j];}}}else{int times = stringLength / passLength;for (int i = 0; i < times; i++){for (int j = 0; j < passLength; j++){string[i*passLength + j] ^= password[j];}}int lastLength = stringLength%passLength;//不能整除的,也就是余数长度 for (int i = 0; i < lastLength; i++){string[passLength*(stringLength / passLength) + i] ^= password[i];//这里的解密要从前边已经整除完成的后一个位置开始, //假如说stringLength = 10,passLength = 4;那么除不尽的加密就从下标8开始, //(10 / 4)*4 = 8. }}return string;
}//加密
void Encrypt(char *oldPath, char *newPath, char *password)
{FILE *pfr, *pfw;pfr = fopen(oldPath, "rb");//以二进制读取pfw = fopen(newPath, "wb");if (pfr == NULL || pfw == NULL){fclose(pfr);fclose(pfw);return;}else{int length = getFileSize(oldPath);//获取原文件大小char *p = malloc(length*sizeof(char));//为新文件申请空间fread(p, sizeof(char), length, pfr);//读取二进制到文件stringEncrypt(password, p);fwrite(p, sizeof(char), length, pfw);//写入二进制到文件//文件操作完成之后关闭文件fclose(pfr);fclose(pfw);}
}
//解密
void decode(char *oldPath, char *newPath, char *password)
{FILE *pfr, *pfw;pfr = fopen(oldPath, "rb");//以二进制读取pfw = fopen(newPath, "wb");if (pfr == NULL || pfw == NULL){fclose(pfr);fclose(pfw);return;}else{int length = getFileSize(oldPath);//获取原文件大小char *p = malloc(length*sizeof(char));//为新文件申请空间fread(p, sizeof(char), length, pfr);//读取二进制到文件stringDecode(password, p);fwrite(p, sizeof(char), length, pfw);//写入二进制到文件//文件操作完成之后关闭文件fclose(pfr);fclose(pfw);}
}void main()
{char *oldPath = "F:\\My Program\\20160313心型动态图.exe";char *newPath = "F:\\My Program\\20160313心型动态图a_password.exe";char *newDePath = "F:\\My Program\\20160313心型动态图b_password.exe";int length = getFileSize(oldPath);char *password = "ABCDE";printf("%d\n", length);Encrypt(oldPath, newPath, password);decode(newPath, newDePath, password);system("pause");
}
原exe文件执行效果
加密后不能打开
解密后,正常打开
【加密解密】对exe文件的加密解密 含源代码》相关推荐
- exew文件加密:利用破解版exe文件加密器对exe文件进行加密保护(图文教程)
exew文件加密:利用破解版exe文件加密器对exe文件进行加密保护(图文教程) 目录 加密过程步骤 解密过程步骤 加密过程步骤 解密过程步骤
- 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)...
一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp) 程序员的生活要一切自动化,更要幸福^_^. 转载请注明出处http: ...
- m3u8合并解密 TS视频文件分片合并解密
m3u8合并解密 TS视频文件分片合并解密 M3U8是一种纯文本文件格式,用于指定要按顺序播放的媒体文件列表.它通常用于通过互联网传输音频和视频内容,并受到包括VLC和QuickTime在内的许多媒体 ...
- (转)一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)...
转自:http://www.cnblogs.com/mrblue/p/3885043.html 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码 ...
- ViKey加密狗对视频文件进行加密
ViKey加密狗对视频文件进行加密 如果你手里有重要的视频文件,不想被别人随意看到,任意播放,那么你可以将这类视频文件用ViKey文件加密工具加密一下,加密过后的视频文件,必须要有ViKey加密狗才可 ...
- java 文件 加解密_Java实现文件的加密解密功能示例
Java实现文件的加密解密功能示例 发布时间:2020-10-05 22:05:15 来源:脚本之家 阅读:86 作者:FC WORLD!!! 本文实例讲述了Java实现文件的加密解密功能分享给大家供 ...
- java实现文件加密与解密_Java实现文件的加密解密功能示例
本文实例讲述了Java实现文件的加密解密功能分享给大家供大家参考,具体如下: package com.copy.encrypt; import java.io.File; import java.io ...
- java对sha1的解密_Java实现文件的加密解密功能示例
本文实例讲述了java实现文件的加密解密功能分享给大家供大家参考,具体如下: package com.copy.encrypt; import java.io.file; import java.io ...
- java大文件存储加密_Java IO--实现文件的加密解密
我们知道文件存储的方式在计算机当中是以字节的方式进行存储的,可以通过对文件字节的操作来实现文件的加密. 下面的例子是通过读取文件的字节,然后使字节中的每一位取反(1变0,0变1),再进行倒置,来实现加 ...
最新文章
- 从疫情到求职寒冬,我的算法求职经历
- gin构建包含模板的二进制文件
- c++学习笔记之成员函数
- std::make_any
- 将uglifyjs添加到鼠标右键菜单
- Java命令行界面(第26部分):CmdOption
- as3调用外部swf里的类的方法
- SringBoot/Cloud/Aalibab 事务管理
- 在线安装docker
- 命令行输入mysql不行_MySQL命令行无法插入中文数据
- shell编程之进阶篇四简单流程控制
- Intelj IDEA的pom.xml显示错误can not reconnect
- 苹果十年,焦虑在哪?
- python编程100个小程序-【Python精华】100个Python练手小程序
- python中scrapy框架项目_Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)
- 2017初赛普及c语言答案,NOIP2017初赛普及组C++试题
- 保定学院计算机编程,惠普HP打印机驱动程序安装失败怎么办hewlett-packard上的文件...
- 01 超级搜索术——信息搜索:全面、快速查找全网你想要的任何信息、情报
- android启动页广告图,一张图搞定APP启动页广告
- App Store 审核指南 2017-12-13
热门文章
- Microsoft Visual C++Build Tools安装包丢失或损坏【解决方案】
- (三)webpack入门——webpack功能集合的demo
- 笔记本上在哪找计算机,笔记本电脑的摄像头在哪里打开|笔记本打开摄像头的方法...
- 工作汇报PPT模板制作,这些要点要留意
- 工资结算系统(针对财务部特别实用)
- 发送缓冲区sk_wmem_queued
- Windows下安装Curses库 + 查看pip所支持whl版本
- 系统崩溃:都是紫光拼音惹得祸
- 优雅关闭consul
- php7.2.7curl扩展,如何使用PHP 7安装ext-curl扩展?