rar压缩包暴力破解这种软件 , 原理上挺简单的其实 , 就是不断的用字符去碰 , 指不定啥时候能碰上 , 爆破破解不就是这么回事嘛 , 之前下载个学习资料 , 说好的童叟无欺, 结果却给我加了个解压密码 , 上网寻思查个破解软件吧 , 要么带病毒 , 要么不能用 , 要么收费 . 学软件工程就这点好 ,了不起 , 自己写一个…
#include
#include
#include
#include
using namespace std;
typedef struct Config{
char unrarFile[256];
char targetFile[256];
int minLength;
int maxLength;
char charSet[256];
int charSetSize;
}Config;
//获取配置文件
Config getConfig(){
Config c;
ifstream fin("config.txt");
if(!fin.is_open())
{cout<<"配置文件加载失败"<log.txt";
if(system(cmd.c_str()) == 0 )
return true;
return false;
}
//递归函数
void func(Config *c,string password,int current,int target) {
if(current==target){
system("cls");
cout<<"当前尝试长度: "<targetFile,password,c->unrarFile)){
system("cls");
cout<<"破解成功:"<charSetSize;i++){
string newPassword = password + c->charSet[i];
func(c,newPassword,current+1,target);
}
}
//开始破解
void start(Config c){
system("cls");
cout<<"开始破解.."<";
char i='N';
cin>>i;
if(i=='Y')
start(c);
cout<<"破解失败,请尝试扩展字符集或增加密码长度"<
C++写的 , 直接编译就能用 , 讲道理已经好久没用过C++了 , 基本学的知识都还给老师了, 软件的思路是 , 利用 7z 的压缩引擎 (winrar 7z 都有个这么个玩意 , 是一个执行文件 , 可以用命令行执行 7z 的速度快一些 ,不知道叫什么 , 姑且叫引擎?) 然后用C++调用命令行去执行 7z 的引擎 .
效率挺差的 , 首先暴力破解嘛 , 在我的认知里暴力和效率挺不搭边的 , 再就是调用的是人家的程序 , 我说白了就是搭了个壳然后不断试探密码 主要影响密码尝试效率的还是人家 7z (7z是真的比winrar快好多,不知道他们技术怎么实现的,确实厉害)
[解压引擎地址]
7z
[目标文件地址]
学习资料.rar
[最小密码长度]
4
[最大密码长度]
4
[密码字符集]
abcdefghijklmnopqrstuvwxyz
注意:7Z.exe其实是从F:\Program Files\7-Zip复制过来的,所以没有安装7Z的电脑可能不好用,去下载一个7-zip,到7-zip的根目录去寻找7z.exe,然后去把要解压的文件和7z.exe都放到根目录,把要解压的文件也一起放过去,改一下配置文件应该就行了