newcoderlife

外包小计-BruteForce-Wallet
本文记录了一个传销币钱包爆破软件的开发过程。简介10月21号,我接了一单软件外包,内容是制作一个传销币钱包文件的爆...
扫描右侧二维码阅读全文
25
2018/10

外包小计-BruteForce-Wallet

本文记录了一个传销币钱包爆破软件的开发过程。

简介

10月21号,我接了一单软件外包,内容是制作一个传销币钱包文件的爆破软件。客户要求如下:

  1. C++编写
  2. Cpu遍历txt文件格式字典
  3. 速度与2个现有软件差不多就行,不用超过
  4. 直接读取wallet.dat文件,不需要打开钱包软件
  5. 界面简单,不要和那2个一样
  6. 能显示速度和当前字符串
  7. 找到正确口令后,调用音乐文件报警

时间是 10 天,预算 ¥1300。

考虑到最近并不忙,我接下了这一单。这一单的预算充足,要求不高,总体来说并不亏。

技术选型

顾客要求有 GUI,考虑到顾客并没有说明系统平台(分明是因为只会Qt),我这里首选 Qt。开发环境是 Deepin,Qt 5.11,使用 CMake 组织项目,编辑器 VScode。

GUI

首先建立了简单的 GUI 模型。这一部分主要参考了 Qt 的官方示例 Find Files Example。唯一的变化是把示例中的 QTableWidget 换成了 QTextEdit

计算

我并不熟悉传销币钱包的文件格式,也并不像详细的了解。客户发给我了一些用于对比的爆破软件,这让我意识到网上一定有可以直接使用的开源代码。经过一番搜索,我在 Github 上找到了这个 bruteforce-wallet

经过简单的观察和思考之后,我决定直接使用这份代码。具体实现上我决定使用 Qt 创建新线程来调用它,并进行简单的监控。这一部分目前还在开发中。

开发情况

Debug 版本

在此版本,我完成了基础的 GUI 功能,同时从 bruteforce-wallet 获得了核心算法部分源码支持。随后我整合了这两部分代码,把核心算法的 POSIX 线程内容使用 QThread 改写,同时调试信息使用 qDebug() 函数输出。

此版本交付时间在第八天。

第一次改版

经过一番交流,客户向我反映“无法运行”。通过查看报错信息,我发现是缺乏运行时环境造成的。于是我向用户提供了 MSVC 2017 的运行时环境,但是安装过后并没有解决问题。经过一段时间的思考,我认为:项目的 Qt 和 OpenSSL 部分采用动态链接,但是 CMake 在编译的时候使用了静态链接,由此产生了一系列的问题,导致链接后的可执行文件无法定位正确的 dll 文件。

期间,我改动了 GUI 部分和算法部分的交互过程,使得算法的运行过程可以实时的显示在 GUI 里。

此版本交付时间在第十三天。

第二次改版

经过很久的拖延(双十一剁手真的很爽),我终于开始了第二版本的更新。这一版本我准备将信息更新部分写在 Controller 线程之内,然后通过锁进行调度。这将不可避免地降低效率,但是是我目前能想到的最好方案了。考虑到 bruteforce-wallet 也是这么做的,这次的运行效率应该不会太低。

结项小计

经过一段时间的纠结,我最终还是决定终止这次的外包项目。做出这个艰难的决定有很多原因,首先是本人能力不足。事实上,可运行的成品已经存在了,但是并不符合用户的性能需求。而我有没有继续优化的能力。考虑到我可能单人无法完成本项目,所以项目就此终结。

当然,另一个原因是我找到了更好的赚钱方式 (:

Last modification:May 30th, 2019 at 07:19 pm
点击广告投喂博主 以获得更快的访问速度!

2 comments

  1. 孟超

    厉害厉害ヾ(´・ ・`。)ノ"

    1. newcoderlife
      @孟超

      惭愧,最后辜负了客户信任,产出的最终版本并不完美。大家以我为戒,哈哈。

Leave a Comment