{"id":23557506,"url":"https://github.com/akiidjk/projectfabt","last_synced_at":"2025-05-15T23:30:56.804Z","repository":{"id":245448434,"uuid":"817975465","full_name":"akiidjk/ProjectFABT","owner":"akiidjk","description":"FABT (Fast Analysis Binary Tool) is designed to help with the execution of binary files and the subsequent analysis of their output. This tool is particularly useful for Capture The Flag (CTF) competitions where quick and efficient binary analysis can be crucial.","archived":false,"fork":false,"pushed_at":"2024-07-23T09:02:40.000Z","size":69,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-17T14:45:32.476Z","etag":null,"topics":["binary","ctf","pwntools","python","tool"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akiidjk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-20T21:00:19.000Z","updated_at":"2024-07-23T09:02:43.000Z","dependencies_parsed_at":"2024-07-23T11:02:54.046Z","dependency_job_id":null,"html_url":"https://github.com/akiidjk/ProjectFABT","commit_stats":null,"previous_names":["akiidjk/projectfabt"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiidjk%2FProjectFABT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiidjk%2FProjectFABT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiidjk%2FProjectFABT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiidjk%2FProjectFABT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akiidjk","download_url":"https://codeload.github.com/akiidjk/ProjectFABT/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254442198,"owners_count":22071860,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binary","ctf","pwntools","python","tool"],"created_at":"2024-12-26T14:31:32.730Z","updated_at":"2025-05-15T23:30:56.775Z","avatar_url":"https://github.com/akiidjk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FABT | Fast Analysis Binary Tool\n\nA tool for executing binaries and searching keywords or regex in stdout, created for CTF.\n\n## Description\n\nFABT (Fast Analysis Binary Tool) is designed to help with the execution of binary files and the subsequent analysis of\ntheir output. This tool is particularly useful for Capture The Flag (CTF) competitions where quick and efficient binary\nanalysis can be crucial.\n\nWith FABT, users can specify binaries to execute, distributions for WSL, and search for specific keywords or regular\nexpressions within the output. It can be configured via the command line or a `config.json` file.\n\n## Requirements\n\n- Linux/Windows\n- python3\n- colorama installed with ```pip install colorama```\n\n## Installation\n\nSimple run the ```sudo setup.sh``` if you are on linux or ```setup.ps1``` if you are on windows (for sure remember to run as\nadmin)\n\n## Usage\n\n### Command Line Arguments\n\n- **`-f` or `--filepath`**:\n    - Description: Path to the binary for execution.\n    - Default: `None`\n\n- **`-d` or `--distro`**:\n    - Description: Specify the WSL distribution.\n    - Default: `\"\"` (empty string)\n\n- **`-v` or `--version`**:\n    - Description: Print the version and exit.\n\n- **`-s` or `--search`**:\n    - Description: Enable search in stdout for keywords or regex specified via command line or `config.json`.\n\n- **`-k` or `--keywords`**:\n    - Description: Specify keywords or regex (e.g., `^[0-9A-Fa-f]+$`) for searching in stdout. Separate multiple entries\n      with a single space. Can be specified via command line or `config.json`.\n    - Default: `None`\n\n- **`-i` or `--init-main`**:\n    - Generate a Python file named `main.py` that includes a template designed for leveraging `pwntools` to facilitate\n      binary exploitation tasks. For insert a personal template edit the file /lib/template.py\n\n### Config\n\nSo for add command simple modify the config.json file and add in the list a map with this format\n\n**Command config**\n\n```json\n{\n  \"command\": \"The command to be executed (e.g., 'strings').\",\n  \"args\": \"One or more arguments for the command, with '{file}' as a placeholder for the file path.\",\n  \"check\": \"An argument used to verify the correctly functioning of the command. (e.g., '-v or --version')\"\n  \"timeout\": \"*OPTIONAL* The maximum time in seconds for the command to execute.\"\n}\n```\n\nSome example they are already in the file\n\n**Logging config**\n\nThe possible value for the logging are: [DEBUG,INFO,WARNING,ERROR] i advice INFO\n\n**Keywords config**\n\nSimple add regex or word in the list of keywords\n\n**The standard template file (template.py)**\n\n```python\n\n# !/usr/bin/env python3\nfrom sys import argv\n\nfrom pwn import *\n\nhost = \"127.0.0.1\"\nport = 1337\nelf = ELF(\"./binary\")\n\n# context.arch = 'amd64'\ncontext.terminal = ['mate-terminal', '-x', 'sh', '-c']\ncontext.level = 'info'\n\n\ndef main(mode: str):\n    if mode == \"local\":\n        p = elf.process()\n        g = gdb.attach(p, gdbscript='''''')\n    elif mode == \"remote\":\n        p = connect(host, port)\n    else:\n        Error(\"Usage: python3 exploit.py [local|remote]\")\n        exit(1)\n\n    p.interactive()\n\n\nif __name__ == \"__main__\":\n    main(argv[1])\n\n# Good luck by @akiidjk\n\n\n```\n\n## Notes:\n\nFABT uses subprocess.Popen and when using a command such as strace or ltrace, it can request an input that can be given\nwith a simple text when execution appears to be blocked\n\n### Example Command\n\n```sh\nfabt -f /path/to/binary -d Ubuntu -s -k \"keyword1 ^[0-9A-Fa-f]+$\" -i\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakiidjk%2Fprojectfabt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakiidjk%2Fprojectfabt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakiidjk%2Fprojectfabt/lists"}