All Projects → ht0Ruial → TomatoTools

ht0Ruial / TomatoTools

Licence: GPL-2.0 license
TomatoTools 一款CTF杂项利器,支持36种常见编码和密码算法的加密和解密,31种密文的分析和识别,支持自动提取flag,自定义插件等。

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to TomatoTools

Ctf All In One
CTF竞赛权威指南
Stars: ✭ 2,807 (+4153.03%)
Mutual labels:  crypto, ctf, misc
Crypto
封装多种CTF和平时常见加密及编码C#类库
Stars: ✭ 20 (-69.7%)
Mutual labels:  crypto, ctf, ctf-tools
BerylEnigma
一个为渗透测试与CTF而制作的工具集,主要实现一些加解密的功能。
Stars: ✭ 329 (+398.48%)
Mutual labels:  crypto, ctf, ctf-tools
Ctf Wiki
Come and join us, we need you!
Stars: ✭ 5,305 (+7937.88%)
Mutual labels:  crypto, ctf, misc
CryptionTool
一个CTF+渗透测试工具框架,集成常见加解密,密码、编码转换,端口扫描,字符处理等功能
Stars: ✭ 62 (-6.06%)
Mutual labels:  crypto, ctf, ctf-tools
Crypton
Library consisting of explanation and implementation of all the existing attacks on various Encryption Systems, Digital Signatures, Key Exchange, Authentication methods along with example challenges from CTFs
Stars: ✭ 995 (+1407.58%)
Mutual labels:  crypto, ctf, ctf-tools
jerseyctf-2021-challenges
JerseyCTF 2021
Stars: ✭ 22 (-66.67%)
Mutual labels:  ctf, ctf-tools
Eruditus
Discord CTF helper bot for CyberErudites
Stars: ✭ 34 (-48.48%)
Mutual labels:  ctf, ctf-tools
ctf4noobs
Resumão da massa sobre Capture the Flag.
Stars: ✭ 18 (-72.73%)
Mutual labels:  ctf, ctf-tools
tmpleak
Leak other players' temporary workspaces for ctf and wargames.
Stars: ✭ 76 (+15.15%)
Mutual labels:  ctf, ctf-tools
Write Ups
📚 VoidHack CTF write-ups
Stars: ✭ 45 (-31.82%)
Mutual labels:  crypto, ctf
CTF-CryptoTool
CTF-CryptoTool is a tool written in python, for breaking crypto text of CTF challenges. It tries to decode the cipher by bruteforcing it with all known cipher decoding methods easily. Also works for the cipher which does not have a key.
Stars: ✭ 38 (-42.42%)
Mutual labels:  ctf, ctf-tools
penelope
Penelope Shell Handler
Stars: ✭ 291 (+340.91%)
Mutual labels:  ctf, ctf-tools
xeca
PowerShell payload generator
Stars: ✭ 103 (+56.06%)
Mutual labels:  ctf, ctf-tools
kar98k public
pwn & ctf tools for windows
Stars: ✭ 24 (-63.64%)
Mutual labels:  ctf, ctf-tools
2018 Qwb Ctf
2018强网杯CTF___题目整理
Stars: ✭ 106 (+60.61%)
Mutual labels:  crypto, ctf
decrypt-qq1790749886-javanet
解密 qq1790749886/javanet 文件
Stars: ✭ 19 (-71.21%)
Mutual labels:  ctf, misc
axion
A toolkit for CTFs
Stars: ✭ 15 (-77.27%)
Mutual labels:  ctf, ctf-tools
ImageStrike
ImageStrike是一款用于CTF中图片隐写的综合利用工具
Stars: ✭ 118 (+78.79%)
Mutual labels:  ctf, ctf-tools
Ctf Tools
CTF 工具集合
Stars: ✭ 524 (+693.94%)
Mutual labels:  crypto, ctf

TomatoTools

GitHub stars GitHub forks GitHub release GitHub issues

TomatoTools 拥有CTF杂项中常见的编码密码算法的加密和解密方式,还具有自动提取flag的能力,以及异常灵活的插件模块。

TomatoTools 原理和实战案例 TomatoTools 一款CTF杂项利器 - FreeBuf网络安全行业门户

目前支持36种编码和密码算法的加密和解密,包括

  • Base16/32/36/58/62/64/85/91/92
  • ROT5/13/18/47
  • AAencode / XXencode / UUencode / JJencode
  • Brainfuck / JSFuck / Jother
  • Emoji
  • 核心价值观编码 / 与佛论禅
  • 莫斯密码 / 培根密码 / 云影密码 / 埃特巴什码 / 波利比奥斯方阵密码 / 凯撒密码 / 栅栏密码
  • Shellcode / Handycode / URL
  • 敲击码 / A1z26密码 / Quoted-printable编码
  • 二进制010编码

其中支持31种密文的分析

  • Base16/32/36/58/62/64/85/91/92
  • XXencode/UUencode/JJencode
  • Brainfuck/JSFuck/Jother
  • Emoji
  • 核心价值观编码/与佛论禅(佛曰)/与佛论禅(如是我闻)
  • 莫斯密码(空格)/莫斯密码(斜杠)/培根密码/云影密码/波利比奥斯方阵密码
  • Shellcode/Handycode/URL
  • 敲击码/A1z26密码/Quoted-printable编码
  • 二进制010编码

更新说明

v1.0.2

  • 自动提flag 支持设定深度
  • 关于 里增加三个功能开关
  • 插件dicts新增replace替换参数
  • 新增解密插件 斜杠ASCII码转换HTML实体编码
  • 修复bug

v1.0.1

  • 新增加密插件 全部大写全部小写字符倒序
  • 修复bug

安装与使用

1.克隆项目及安装TomatoTools所需依赖包

git clone https://github.com/ht0Ruial/TomatoTools.git
cd TomatoTools
pip3 install -r requirements.txt

2.在TomatoTools源码目录下执行

python ./TomatoTools.py

插件编写规范

插件的功能给TomatoTools带来了很强的灵活性,可以在插件管理页面去添加或删除自定义的插件,

这里有一点很重要,用户添加的解密插件是会同步到密文分析模块的,所以添加的解密插件在写法和定义上必须要严谨些,也要更慎重些,因为一旦添加了一个存在语法错误的插件,将可能导致密文分析出错或者无法运行。

插件里的 dicts 是要添加到 config.json 中的,而下边定义的函数 abcdefg 则是在加解密时调用的函数

编写插件必须遵守以下几点:

  1. 文件名 、dicts里的 crypto_name 和 定义的 函数名 ,三者必须一致
  2. 函数只能 return bytes 类型的结果

在自定义的插件函数里,如果需要传入密钥的话,插件函数需接收 cryptostrkey 两个值,否则只需接收 cryptostr 一个值,而在函数返回值时,不能返回 str 类型的值,需用 str.encode() 变成 bytes 类型后再return结果。

以下为 dicts 内各个键的详解,

name #(必需) 添加的插件名称
crypto_name #(必需) 函数的名称
range #(解密插件必需) 密码表范围,必须用正则来表示,base16是[0-9a-f] 
alphabet_num #(解密插件必需)密码表的字符个数,base32[A-Z2-7=]是33个,rot5[0-9]是10个 
key #(默认False)针对某些需要输入密钥的才能加解密的密文,比如rabbit,此时key的值需为 True
replace #(默认False)当启用全局替换后,若插件中存在参数,密文将会被替换

Demo1:

需要输入密钥 key 的插件,

若用户不输入密钥,则调用该函数时,函数接收到的密钥 key 为空字符串

# filename: abcdefg.py

dicts={
    "name":"abcdefg加密",
    "crypto_name":"abcdefg",
    "key":True
}

def abcdefg(cryptostr,key):
    #key= ''
    aa = "12345678"
    return aa.encode()

Demo2:

不需要输入密钥 key 的插件,但支持密文替换。

# filename: test.py

dicts={
    "name":"test解密",
    "crypto_name":"test",
    "range":"[1-8]",
    "alphabet_num":8,
    "key":False,
    "replace":True
}

def test(cryptostr):
    aa = "12345678"
    return aa.encode()
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].