Skip to content
China's first CTFTools framework.中国国内首个CTF工具框架,旨在帮助CTFer快速攻克难关
Python Other
  1. Python 99.3%
  2. Other 0.7%
Branch: master
Clone or download
Latest commit 3344e28 Aug 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Lib 来自高考之后的更新 Jul 7, 2019
Plugins fix #12 #9 #5 close #11 Dec 10, 2017
doc Create CODE_OF_CONDUCT.md Sep 18, 2017
gradle/wrapper fix #12 #9 #5 close #11 Dec 10, 2017
img update Readme.md Aug 21, 2019
src/main 优化 Aug 22, 2019
现成插件 CTFcrackToolsV3.0 Jul 20, 2017
.gitattributes CTFcrackToolsV3.0 Jul 20, 2017
.gitignore 优化 Aug 22, 2019
.travis.yml Update .travis.yml Jul 8, 2019
LICENSE fix #12 #9 #5 close #11 Dec 10, 2017
README.md Update README.md Aug 22, 2019
Setting.json 优化 Aug 22, 2019
_config.yml 更新持续化构建和项目首页 Dec 10, 2017
build.gradle 优化 Aug 22, 2019
gradlew fix #12 #9 #5 close #11 Dec 10, 2017
gradlew.bat fix #12 #9 #5 close #11 Dec 10, 2017
settings.gradle fix #12 #9 #5 close #11 Dec 10, 2017

README.md

CTFcrackTools-V3.2

Build Status License: GPL v3 language

CTFcrackTools重置版

使用kotlin与java混合开发

作者:米斯特安全-林晨、摇摆、奶权

米斯特安全团队首页:http://www.hi-ourlife.com/

部分插件来源:希望团队-nMask

第二版

应老用户要求,将继续更新V2版本。以下是项目地址:

https://github.com/0Chencc/CTFCrackTools-V2

界面介绍

mark

框架介绍

使用kotlin与java混合开发

这大概是国内首个应用于CTF的工具框架。

可以被应用于CTF中的Crypto,Misc...

内置目前主流密码(包括但不限于维吉利亚密码,凯撒密码,栅栏密码······)

用户可自主编写插件,但仅支持Python编写插件。编写方法也极为简单。

该项目一直在增强,这一次的重置只保留了部分核心代码,而将UI及优化代码重构,使这个框架支持更多功能。

项目地址:https://github.com/0Chencc/CTFCrackTools

下载编译好的版本:https://github.com/0Chencc/CTFCrackTools/releases/

多套外观提供使用

本框架支持多套外观使用,将Setting.json中的Theme改为1,2,3分别对应三套主题,什么都不填,或者随便填。都会使用默认主题,为第4套主题。

注意,代码为1的主题,仅支持JDK8及以下JDK版本。不支持JDK9和JDK10。

插件编写

#-*- coding:utf-8 -*-
'''
{
  title:程序标题
  type:程序类型
  author:作者昵称
  dialog:变量
  detail:插件详情
}
'''
def main(a):
    return a

现在来具体讲下这些插件的用法,具体应该将下框架的调用方法。

**type:**为什么需要写插件类型呢,我其实有个野心。是打算尽可能的把能遇到的题目类型的解密方式都写进去,比如pwn这些。

**dialog:**这个呢,其实我考虑到了有些解密方式需要多个密钥。故此设计了这个,如果声明了多个密钥,则程序会弹出多个输入框。

**main:**本工具插件调用十分简单,但是限制就是,必须传入数据。

因为工具调用其实就是通过def mian(a)传入数据然后获取return的数据。

#!/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())

ciphertext是输入框的内容,直接导入的,无需管。

代码的架构是这样的话,框架就可以自行读取插件信息,然后会弹一个窗口请输入key。

如图:mark

def vigenereDecrypto(ciphertext,key)

ciphertext即是输入的内容,key是由弹窗出来由用户填写的。

You can’t perform that action at this time.