sensepost/capchan
GitHub: sensepost/capchan
基于TensorFlow的验证码图像分类识别工具,通过训练神经网络模型解决字符型验证码。
Stars: 10 | Forks: 0
# capchan
### 解决 CAPTCHA 的工具

* 基于提供的灰度图像创建并训练模型
* 利用灰度模型对其他图像进行分析,以确定图像内容
### 安装:
```
python3 -m venv capchan
source capchan/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
```
根据 Python 版本、机器架构和硬件,从 https://www.tensorflow.org/install/pip#package_location 安装特定的 TensorFlow 包
```
pip install --upgrade https://storage.googleapis.com/tensorflow/versions/*.whl
```
Docker 选项:
https://www.tensorflow.org/install/docker


## CAPTCHA 森林与 Image_Classification
### Captcha_One
用于完成[挑战](https://ctftime.org/task/7507)的主脚本及其他资源的项目结构:
```
.
├── szizzleIMON.py
│ ├── ImageSplit.py
│ ├── ImageDetermine.py
│ ├── Images
│ │...outputs...
│ ├── output.txt
│ ├── image.png
│ ├── split_image_.png
├── ImageGet.py
├── hex2png.py
└── bashywashy.sh
```
记得修改 argparse 和其他脚本的 `dir paths`(目录路径)。主脚本:
```
python3 szizzleIMON.py -s domain.local -v --debug
```
测试脚本:
```
python3 ImageDetermine.py --split_images_folder ~/Captcha_One/ --data_folder Images/
python3 ImageGet.py -s domain.local -v --debug
python3 ImageSplit.py --image_path image.png
python3 hex2png.py
./bashywashy.sh
```
### Captcha_Two
用于完成[挑战](https://ctftime.org/task/7508)的主脚本及其他资源的项目结构:
```
.
├── szizzleIMONGHARD.py
│ ├── ImageSplit.py
│ ├── nyadetermine.py
│ ├── nyasomething.py
│ ├── nyamove.py
│ ├── nyamodel.py
│ │...outputs...
│ ├── Data
│ ├── Val
│ ├── model.h5
│ ├── output.txt
│ ├── image.png
│ ├── split_image_.png
├── ExtraData
├── ImageDetermine.py
├── ImageSplit.py
├── model_graph.png
├── network_graph
├── nyaHowAc.py
└── bashywasher.sh
```
记得修改 argparse 的 `dir paths`(目录路径),并手动更改所需的图像输出文件以获取测试/验证数据。主脚本:
```
./bashywasher.sh "python3 nyasomething.py -s domain.local -v --debug" 15
python3 nyamove.py
python3 nyamodel.py
python3 szizzleIMONGRHARD.py -s domain.local -v --debug
```
你需要为 Captcha_One 添加一个 Images/ 文件夹,该文件夹内需要包含字母表中每个字母对应的文件夹,单个图像可以放置在其中:
`Images/A/A/png`
对于 Captcha_Two,你需要一个名为 Raw/ 的文件夹来放置收集的图像。另外还需要两个文件夹 Data/ 和 Val/,结构类似于 Captcha_One 的 Images/。模型也需要基于所有这些数据构建。
`Data/A/*.png`,`Val/A/*.png`,`Raw/*.png` 以及 model.h5
如果你总共有超过 10,000 张图像,那么你的做法是正确的。`image.png`、`output.txt` 和 `split_images_.png` 将由脚本生成。
标签:Apex, CAPTCHA 破解, CTF 工具, Python, TensorFlow, 光学字符识别, 图像分类, 数字取证, 无后门, 机器学习, 模型训练, 深度学习, 灰度图像处理, 自动化攻击, 自动化脚本, 计算机视觉, 请求拦截, 逆向工具, 验证码识别