我一直在尝试用C ++编写一个简单的暴力密码破解程序来打开我很久以前锁定的旧zip文件。
我试图从程序中调用pkunzip。我知道这样做的唯一方法是使用system()命令。如在系统中(“astring”);.问题是我需要一遍又一遍地将新密码转储到字符串中,直到我受到欢迎。这需要将一个变量插入到我发送给DOS的命令中。这就是我迷路的地方。所以代码看起来像这样......
system("pkunzip lockedFile -s[the password variable here]")
此外,这整个想法可能很糟糕,所以如果有更好的方法,请说出来。
另外,我可以使用cd \命令到达正确的目录,还是只需要将相关文件转储到与C ++项目本身相同的目录中。任何帮助或一般指示将非常感激。 m.hatter
答案 0 :(得分:1)
这会吗?
char buf[120]; sprintf(buf, "cd\\; pkunzip %s -s[%s]", locked_file, password_var); system(buf)
我使用双反斜杠转义为单个反斜杠,以使cd
命令起作用。
希望这有帮助, 最好的祝福, 汤姆。
答案 1 :(得分:0)
您始终可以使用sprintf
来创建字符串。如:
command = sprintf("pkunzip lockedFile -s%s", password);
system(command);
如果您厌倦了调用此外部程序,您可能希望在内部使用zip utils library等库来处理Zip文件。