Operating system 通过system()函数使用变量调用dos 我一直试图在C++中编写一个简单的蛮力密码破解器来打开我很久以前锁定的一个旧的zip文件。p>

Operating system 通过system()函数使用变量调用dos 我一直试图在C++中编写一个简单的蛮力密码破解器来打开我很久以前锁定的一个旧的zip文件。p>,operating-system,system,dos,Operating System,System,Dos,我正试图从程序中调用pkunzip。我知道的唯一方法是使用system()命令。如在系统中(“astring”);。问题是,每次我都需要在字符串中反复输入一个新密码,直到找到密码为止。这需要在我发送给DOS的to命令中插入一个变量。那就是我迷路的地方。所以代码可能看起来像这样 system("pkunzip lockedFile -s[the password variable here]") 而且,整个想法可能很可怕,所以如果有更好的方法,请说 也可以使用CD命令到达适当的目录,或者只需将

我正试图从程序中调用pkunzip。我知道的唯一方法是使用system()命令。如在系统中(“astring”);。问题是,每次我都需要在字符串中反复输入一个新密码,直到找到密码为止。这需要在我发送给DOS的to命令中插入一个变量。那就是我迷路的地方。所以代码可能看起来像这样

 system("pkunzip lockedFile -s[the password variable here]")
而且,整个想法可能很可怕,所以如果有更好的方法,请说

也可以使用CD命令到达适当的目录,或者只需将相关文件转储到与C++项目本身相同的目录中。任何帮助或一般指示都将不胜感激。


m、 hatter

您可以始终使用
sprintf
创建字符串。例如:

command = sprintf("pkunzip lockedFile -s%s", password);
system(command);
如果您厌倦了调用此外部程序,您可能希望使用类似的库在内部处理Zip文件。

这样做可以吗

char buf[120]; sprintf(buf, "cd\\; pkunzip %s -s[%s]", locked_file, password_var); system(buf) char-buf[120]; sprintf(buf,“cd\\;pkunzip%s-s[%s]”,锁定的\u文件,密码\u var); 系统(buf) 我使用双反斜杠将
cd
命令转义为单反斜杠

希望这有帮助, 顺致敬意,
汤姆。

好的……这两个回答都让我思考了一下。我会调查的。谢谢