Chepy:一款基於CyberChef工具的Python庫&命令行實現

2021-12-23 潘多拉的代碼

Chepy是一款基於CyberChef工具的Python庫&命令行實現,它是一個Python庫/命令行,實現了跟CyberChef工具相同的功能。

Chepy是一個帶有完整命令行接口的Python庫,它完整複製了CyberChef的大部分功能。開發人員在Chepy上付出了非常多的努力,並使它成功變成了基於CyberChef的Python實現,而且其中所有的代碼均採用純Python開發。Chepy跟CyberChef相比,有很多核心優勢,而且Chepy還將CyberChef中對棧的概念以不同模塊的形式仍然保留在了Chepy中。

當然了,Chepy還沒有達到完美的程度,因此還需要社區中的各位開發人員貢獻自己的力量。

工具安裝

Chepy可以通過下列幾個方式來進行安裝。

Pypi安裝

pip3 install chepy

# optionally with extra requirements

pip3 install chepy[extras]

Git安裝

git clone --recursive https://github.com/securisec/chepy.git

cd chepy

pip3 install -e .

# I use -e here so that if I update later with git pull, I dont have it install it again (unless dependencies have changed)

Docker安裝 docker run --rm -ti -v $PWD:/data securisec/chepy "some string" [somefile, "another string"] 獨立代碼

當然了,我們也可以將Chepy以獨立代碼的形式進行構建,這裡需要涉及到將所有的依賴組件封裝整合成一體。

git clone https://github.com/securisec/chepy.git

cd chepy

pip install .

pip install pyinstaller

pyinstaller cli.py --name chepy --onefile

構建完成的代碼將存儲在dist/目錄下。

插件系統-【 參考文檔】

.. toctree::

:maxdepth: 3

:caption: Contents:

usage.md

examples.md

cli.rst

chepy.md

core.md

modules.rst

extras.rst

plugins.md

pullrequest.md

config.md

faq.md

Indices and tables

==================

* :ref:`genindex`

* :ref:`modindex`

* :ref:`search`

項目代碼庫中託管了大量Chepy插件,我們也可以根據自己的需要來用自定義插件擴展Chepy的功能。所有的Chepy插件必須繼承ChepyCore類,如需使用插件庫,請運行下列命令:

git clone https://github.com/securisec/chepy_plugins.git

然後編輯Chepy配置文件,將pluginpath設置為chepy_plugin目錄。配置文件位於$User/.chepy/chepy.conf路徑下。

下面給出的是配置文件樣本:

[Plugin]

pluginpath = /home/test/chepy_plugins

[Cli]

history_path = /home/test/.chepy/chepy_history

prompt_char = >

prompt_colors = #00ffff #ff0000 #ffd700

show_rprompt = false

prompt_rprompt = #00ff48

prompt_bottom_toolbar = #000000

prompt_toolbar_version = #00ff48

prompt_toolbar_states = #60cdd5

prompt_toolbar_buffers = #ff00ff

prompt_toolbar_type = #ffd700

prompt_toolbar_errors = #ff0000

Chepy vs Cyberchef

Chepy所實現的棧機制比CyberChef要簡單,並且是以模塊化的形式實現的。比如說,CyberChef中的棧概念如下:

但在Chepy中的形式如下:

from chepy import Chepy

file_path = "/tmp/demo/encoding"

print(

Chepy(file_path)

.load_file

.reverse

.rot_13

.base64_decode

.base32_decode

.hexdump_to_str

.o

)

優勢

1、Chepy以純Python實現,並且支持各種Python API;

2、Chepy提供了命令行接口;

3、Chepy命令行接口支持完整的自動化補全;

4、支持對PE、ELF和其他特殊文件格式進行解析;

5、可通過插件系統實現功能擴展;

6、可利用各種Python庫實現不同功能;

7、Chepy可與CyberChef Web應用程式進行交互;

8、Chepy Python庫的速度比CyberChef Node庫要快很多;

9、支持HTTP/HTTPS請求;

劣勢

1、Chepy不是一個Web應用程式;

2、Chepy沒有100%實現CyberChef的每一個功能;

3、Chepy目前還不提供magic方法;

工具使用樣例

請識別以下二維碼關注

部分文字、圖片來源於網絡,如涉及版權請聯繫刪除。

相關焦點

  • Python命令行庫:Click 簡易教程
    Click 是 Python 下一款命令行庫,可以用來快速輕鬆實現Python命令行程序。
  • 四個 Python 庫,實現超實用的命令行功能
    UI 終端應用文章中,我們探索了「提示工具包」,「命令行界面創建工具包「,「Pygments」和「模糊搜索」。這是我的二部曲終端應用程式與偉大的命令行界面的第二部分。 在第一篇文章中,我介紹了幾個能使使用命令行程序充滿樂趣的功能。 在第二部分中,我將介紹如何在幾個 Python 庫的幫助下實現這些功能。
  • sqlite-utils:用於構建SQLite資料庫的Python庫和命令行工具
    sqlite-utils是我在過去六個月中一直在構建的Python庫和命令行工具的合集,旨在儘可能快速簡便地創建新的SQLite資料庫
  • KITT-Lite:基於Python實現的輕量級命令行滲透測試工具集
    KITT滲透測試框架-輕量級版本KITT滲透測試框架是一種基於Python實現的輕量級命令行滲透測試工具集,本質上上來說,它就是一個針對滲透測試人員設計的開源解決方案
  • Python 命令行之旅:使用 argparse 實現 git 命令
    作者:HelloGitHub-Prodesire前言 在前面三篇介紹 argparse 的文章中,我們全面了解了 argparse 的能力,相信不少小夥伴們都已經摩拳擦掌,想要打造一個屬於自己的命令行工具。
  • 用Click編寫Python命令行工具
    這意味著很大一部分Python代碼被編寫為腳本和命令行界面(CLI)。構建這些命令行界面和工具是非常強大的,因為它使得幾乎所有的東西都可以自動化。 因此,隨著時間的推移,CLI可能變得相當複雜。通常從一個非常簡單的腳本開始,運行這些python代碼來完成一件特定的事情。
  • 乾貨|Python滲透測試工具庫
    >https://github.com/RandomStorm/DVWA資料庫注入練習平臺 :https://github.com/Audi-1/sqli-labs用node編寫的漏洞練習平臺,like OWASP Node Goat:https://github.com/cr0hn/vulnerable-nodeRuby編寫的一款工具
  • GitHub最火的Python庫|看看你用過幾個
    ,經常走走看看,會有很多好東西,讓你眼前一亮!3.Httpie 人氣指數:33190HTTPie是一個命令行的HTTP客戶端,這款神器使得命令行下調用web服務非常方便人性化.而且是彩色的輸出,很漂亮,內置了測試,分析功能非常強大。
  • mycli,一款讓你忘記mysql-client的命令行客戶端神器
    而在日常工作或者使用中,通過命令連接 MySQL 還是更方便的,不過對於命令行愛好者或者對 MySQL 命令不熟悉的同學來說,如果只用官方提供的 client,其實體驗還是比較差的,下面就給大家推薦一款絕佳的 MySQL 命令行客戶端工具吧!
  • 如何編寫完美的 Python 命令行程序?
    比如在我的數據科學項目中,我要從命令行運行腳本來訓練模型,以及計算算法的準確率等。因此,更方便更易用的腳本能夠很好地提高生產力,特別是在有多個開發者從事同一個項目的場合下。假設已經有個寫好的 encrypt 函數(實現如下),我們需要創建一個簡單的腳本,用來加密和解密消息。我們希望讓用戶通過命令行參數選擇加密模式(默認)和解密模式,並選擇一個秘鑰(默認為 1)。
  • Python | 使用argparse解析命令行參數
    今天是Python專題第27篇文章,我們來聊聊Python當中的命令行參數工具argparse。命令行參數工具是我們非常常用的工具,比如當我們做實驗希望調節參數的時候,如果參數都是通過硬編碼寫在代碼當中的話,我們每次修改參數都需要修改對應的代碼和邏輯顯然這不太方便。
  • 基於Python的交換機實時監控系統的設計與實現
    整個系統系統採用B/S模式,基於輕量級的web開發框架web.py實現。後端採用Python程式語言實現對交換機各項數據的獲取,實時數據以HTML頁面的形式供系統前端訪問。該系統一方面能協助校園網管理運維人員快速及時定位網絡交換機故障,提高了和快速反應能力和工作效率,另一方面通過對交換機性能的監控,為實現對交換機的性能調優提供數據支持。
  • 運維工程師必備 | 18個監控網絡帶寬的Linux命令行工具
    本文介紹了一些可以用來監控網絡使用情況的Linux命令行工具。這些工具可以監控通過網絡接口傳輸的數據,並測量目前哪些數據所傳輸的速度。
  • 花了好幾天整理出來的Python庫,非常全面!
    好了,話不多說,開始進入今天的正文~目錄一覽: 算法和設計模型 構建工具 緩存 代碼分析 命令行工具 兼容性 計算機視覺 並發和並行 加密 數據分析 數據驗證 數據可視化 數據框驅動 資料庫 日期和時間
  • Python 命令行之旅:初探 argparse
    是否考慮過由自己實現一個命令行工具,幫你執行和處理任務?是否了解過陪伴在你身邊的 Python 有著豐富的庫,來幫你輕鬆打造命令行工具?別著急,本文作為 Python 命令行之旅的第一篇將帶你逐步揭開命令行解析的面紗,介紹如何使用 Python 內置的 argparse 標準庫解析命令行,並在後續的系列文章中介紹各具特色的第三方命令行庫,講講它們的異同,進而全面地體驗這次探索的旅程。
  • 如何編寫完美的 Python 命令行程序?
    這篇文章將教你如何編寫完美的 Python 命令行程序,提高團隊的生產力,讓大家的工作更舒適。作為 Python 開發者,我們經常要編寫命令行程序。比如在我的數據科學項目中,我要從命令行運行腳本來訓練模型,以及計算算法的準確率等。
  • 運用python實現埠掃描
    python的第三方模塊中,使用python-nmap模塊實現高效的埠掃描。每一個埠都會支持這兩種協議,因此可以基於這兩種協議進行埠掃描,由於 UDP 埠掃描的可靠性不高,還是基於 TCP 埠掃描來實現。TCP SYN 掃描,是一種常用的埠掃描方式,又稱半開放連接。
  • Python命令行神器之Click
    但是如果使用純文本編輯器,或者是在做整個系統開發時,與其他模型進行接口調用時,命令行模式就顯得非常重要了。目前有很多熱門的命令行工具,本文會一一介紹一下,並且重點介紹一下最近發現的一款命令行神器Click。命令行模式在Python開發中並不陌生,簡單的說就是python hello_world.py這種使用命令的模式運行Python程序。
  • 使用ESP32來學習Python之開發環境搭建
    Python是近來比較火的一種語言,對嵌入式人員來說,通過ESP32來學習Python是一種比較便捷、靠譜的方法。
  • 七個Python必備GUI庫
    與之相對應的則是CUI(命令行用戶交互),就是常見的Dos命令行操作,需要記憶一些常用的命令,對於普通人而言,操作起來學習難度還是蠻高的。一個好看又好用的GUI,可以大大提高大家的使用體驗,提高效率。比如你想開發一個計算器,如果只是一個程序輸入,輸出窗口的話,是沒有用戶體驗的。所以開發一個圖像化的小窗口,就變得很有必要。