【问题标题】:using variables with the system() function to call dos使用带有 system() 函数的变量来调用 dos
【发布时间】:2010-01-21 22:59:58
【问题描述】:

我一直在尝试用 C++ 编写一个简单的暴力破解密码破解程序,以打开我很久以前锁定的旧 zip 文件。

我正在尝试从程序中调用 pkunzip。我知道这样做的唯一方法是使用 system() 命令。如 system("astring");.问题是我需要一次又一次地将新密码转储到字符串中,直到我被击中。这需要在我发送到 DOS 的命令中插入一个变量。那是我迷路的地方。所以代码可能看起来像这样......

 system("pkunzip lockedFile -s[the password variable here]")

另外,这整个想法可能很糟糕,所以如果有更好的方法,请说出来。

另外,我可以使用 cd\ 命令进入正确的目录,还是只需将相关文件转储到与 C++ 项目本身相同的目录中。任何帮助或一般指示将不胜感激。 m.hatter

【问题讨论】:

    标签: operating-system system dos


    【解决方案1】:

    这样可以吗?

    字符缓冲区[120]; sprintf(buf, "cd\\; pkunzip %s -s[%s]", locked_file, password_var); 系统(缓冲区)

    我使用双反斜杠转义为单个反斜杠以使cd 命令起作用。

    希望这会有所帮助, 最好的祝福, 汤姆。

    【讨论】:

      【解决方案2】:

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

      command = sprintf("pkunzip lockedFile -s%s", password);
      system(command);
      

      如果您厌倦了调用这个外部程序,您可能希望使用像 zip utils library 这样的库在内部处理 Zip 文件。

      【讨论】:

      • OK...这两个回答都让我思考。我会调查的。谢谢!!!!
      猜你喜欢
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多