CTFCrackTools
CTFcrackTools 重置版
使用 kotlin 与 java 混合开发
作者:米斯特安全-林晨、摇摆、奶权
米斯特安全团队首页:http://www.hi-ourlife.com/
部分插件来源:希望团队-nMask
第二版
应老用户要求,将继续更新 V2 版本。以下是项目地址:
https://github.com/0Chencc/CTFCrackTools-V2
框架介绍
使用 kotlin 与 java 混合开发
这大概是国内首个应用于 CTF 的工具框架。
可以被应用于 CTF 中的 Crypto,Misc...
内置目前主流密码(包括但不限于维吉利亚密码,凯撒密码,栅栏密码······)
用户可自主编写插件,但仅支持 Python 编写插件。编写方法也极为简单。
该项目一直在增强,这一次的重置只保留了部分核心代码,而将 UI 及优化代码重构,使这个框架支持更多功能。
项目地址:https://github.com/0Chencc/CTFCrackTools
下载编译好的版本:https://github.com/0Chencc/CTFCrackTools/releases/
插件编写
#-*- coding:utf-8 -*-
'''
{
title:程序标题
type:程序类型
author:作者昵称
dialog:变量
detail:插件详情
}
'''
def main(a):
return a
现在来具体讲下这些插件的用法,具体应该将下框架的调用方法。
编码类型当然是 utf-8 啦
Type:Crypto 是一个硬性要求,因为我目前只写了 Crypto 的类,���打算在后期加上压缩包,图片的分类出来,慢慢完善。
main 的方法中,至少有一个变量,至多有四个变量。
除了第一个变量以外的,都应该在 Dialog 后标明。
Example:我们团队的奶权写了一个维基利亚密码的插件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
{
Title:VigenereDecrypto
Author:naiquan
Type:crypto
Dialog:key
Detail:维吉利亚密码解码
}
'''
def vigenereDecrypto(ciphertext,key):
ascii='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
keylen=len(key)
ctlen=len(ciphertext)
plaintext = ''
i = 0
while i < ctlen:
j = i % keylen
k = ascii.index(key[j])
m = ascii.index(ciphertext[i])
if m < k:
m += 26
plaintext += ascii[m-k]
i += 1
return plaintext
def main(ciphertext,key):
return vigenereDecrypto(ciphertext.replace(" ","").upper(),key.replace(" ","").upper())
这样写的话,框架就可以自行读取插件信息,然后会弹一个窗口请输入 key。而 ciphertext 则是直接传入。
如图:
def vigenereDecrypto(ciphertext,key)
ciphertext 即是输入的内容,key 是由弹窗出来由用户填写的。
界面介绍
