这篇文章将展示如何利用自定义数据框架在暴力破解过程中,从代理传输数据,以寻找MD5哈希值。
我们将任务单元发送给远程代理进行密码搜索,找到的密码会返回并显示在主终端的“专家”窗口中。计算网络的速度和进度实时更新,方便交易者随时掌握进展。

例如,测试MD5哈希“ab4f63f9ac65152575886860dde480a1”在几秒钟内找到了对应的6位密码“azerty”。
此外,本程序还展示了如何将非线性和非数值输入参数虚拟化为数字计数器。我们将sinput标记为“未用于暴力破解搜索”,并添加一个名为“Counter”的工作计数器,由程序控制:
//--- 输入参数 sinput int PasswordLengthFrom =6; // 密码长度起始 sinput int PasswordLengthTo =6; // 密码长度结束 sinput BruteForceEnumType BruteforceType =BRUTEFORCE_SET_ASCII_DIGITS;// 暴力破解字符集 sinput string BruteforceCharacters =""; // 暴力破解自定义字符集 sinput HashEnumType HashType=HASH_TYPE_SINGLE; // 哈希类型 sinput string HashList="ab4f63f9ac65152575886860dde480a1"; // “azerty”的哈希源 sinput long Counter=0;

通过使用混合主控模式,我们可以在终端中运行一个EA副本,除了在远程和本地代理上运行的副本外,具体功能包括:
- 管理远程代理并分配任务
- 接收来自远程代理的数据框
- 处理接收到的数据,保存或在图表上可视化
上面的截图显示,主EA成功地可视化了计算网络中的暴力破解搜索速度。
要激活主控模式,需要在EA中添加OnTesterInit处理程序,在这里可以读取所有输入参数,将其转换为线性计数器,并明确重新定义任何输入变量的操作模式。下面的代码展示了如何将非数值/非线性参数转换为双精度计数器,然后设置新限制和数字Counter参数的操作模式:
void OnTesterInit() { double passes=0.0; //--- 计算限制 if(!ExtScanner.CalculatePasses(PasswordLengthFrom,PasswordLengthTo,BruteforceType,BruteforceCharacters,passes)) return; ParameterSetRange("Counter",true,0,0,1,1+long(passes/MIN_SCAN_PART)); }
虽然Counter参数最初被锁定,但后来它被重新定义为一个具有明确限制的活跃工作计数器。这意味着测试器将会使用这个特定的参数进行工作。