C ++暴力破解程序非常慢

时间:2011-12-15 22:50:16

标签: c++ performance popen brute-force

我有一个blackbox程序“secret.exe”,它接受一个数字作为参数。它只接受一个我不知道的号码。我想做暴力攻击来获得这个数字。 下面的C ++程序可以做到这一点但很慢(每秒13个数字)。该程序几乎不消耗CPU和内存。 瓶颈是什么? popen功能是否会减慢?

#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
       char psBuffer[128];
       FILE *chkdsk;
       bool nomatch = true;
       int i = 0;
       char cmd[100];
       while(nomatch){
           sprintf (cmd, "secret.exe %d", i++);
           if( (chkdsk = popen( cmd, "rt" )) == NULL )
              cout << "error";
           while( !feof( chkdsk ) ) {
              if( fgets( psBuffer, 128, chkdsk ) != NULL && strcmp(psBuffer, "wrong")){
                  cout << "password: " << --i << endl;
                  cout << "secret info : " << psBuffer << endl;
                  nomatch = false;
              }
           }
           pclose( chkdsk );
       }
      return 0;
}

2 个答案:

答案 0 :(得分:1)

你需要通过基准/配置文件来查找,但secret.exe完全有可能浪费时间。

答案 1 :(得分:0)

Windows在创建流程时可怜效率低下。您可以在Linux上尝试Wine,但我不知道假装成Windows会浪费多少Linux的效率。如果你愿意做一些挖掘和丑陋的黑客攻击,你可以在你的过程中加载并运行相关的代码,但那时,你可能最好不要试图反汇编/反编译它。