All Projects → Wenzel → Checksec.py

Wenzel / Checksec.py

Licence: gpl-3.0
Checksec tool in Python, Rich output. Based on LIEF

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Checksec.py

checksec.rs
Fast multi-platform (ELF/PE/MachO) binary checksec written in Rust.
Stars: ✭ 71 (-62.23%)
Mutual labels:  elf, pe
The Backdoor Factory
Patch PE, ELF, Mach-O binaries with shellcode new version in development, available only to sponsors
Stars: ✭ 2,904 (+1444.68%)
Mutual labels:  elf, pe
Lief
Authors
Stars: ✭ 2,730 (+1352.13%)
Mutual labels:  elf, pe
Goblin
An impish, cross-platform binary parsing crate, written in Rust
Stars: ✭ 591 (+214.36%)
Mutual labels:  elf, pe
Dissection
The dissection of a simple "hello world" ELF binary.
Stars: ✭ 427 (+127.13%)
Mutual labels:  elf, pe
HatVenom
HatVenom is a HatSploit native powerful payload generation tool that provides support for all common platforms and architectures.
Stars: ✭ 84 (-55.32%)
Mutual labels:  elf, pe
Cave miner
Search for code cave in all binaries
Stars: ✭ 218 (+15.96%)
Mutual labels:  elf, pe
Automated-Malware-Analysis-List
My personal Automated Malware Analysis Sandboxes and Services
Stars: ✭ 20 (-89.36%)
Mutual labels:  elf, pe
Rop Tool
A tool to help you write binary exploits
Stars: ✭ 590 (+213.83%)
Mutual labels:  elf, pe
Filebytes
Library to read and edit files in the following formats: Executable and Linking Format (ELF), Portable Executable (PE), MachO and OAT (Android Runtime)
Stars: ✭ 105 (-44.15%)
Mutual labels:  elf, pe
Bingrep
like ~~grep~~ UBER, but for binaries
Stars: ✭ 1,395 (+642.02%)
Mutual labels:  elf
Pe recovery tools
Helper tools for recovering dumped PE files
Stars: ✭ 104 (-44.68%)
Mutual labels:  pe
Windows Security
Resources About Windows Security. 1100+ Open Source Tools. 3300+ Blog Post and Videos.
Stars: ✭ 165 (-12.23%)
Mutual labels:  pe
Elf Parser
Lightweight elf binary parser with no external dependencies - Sections, Symbols, Relocations, Segments
Stars: ✭ 172 (-8.51%)
Mutual labels:  elf
Floodgate
Hybrid mode plugin to allow for connections from Geyser to join online mode servers.
Stars: ✭ 101 (-46.28%)
Mutual labels:  pe
Rustig
A tool to detect code paths leading to Rust's panic handler
Stars: ✭ 145 (-22.87%)
Mutual labels:  elf
Artifacts Kit
Pseudo-malicious usermode memory artifact generator kit designed to easily mimic the footprints left by real malware on an infected Windows OS.
Stars: ✭ 99 (-47.34%)
Mutual labels:  pe
Fbhookfork
从 fb 的 profilo 项目里提取出来的hook 库,自己用
Stars: ✭ 98 (-47.87%)
Mutual labels:  elf
Memrun
Small tool to run ELF binaries from memory with a given process name
Stars: ✭ 90 (-52.13%)
Mutual labels:  elf
Elfkit
rust elf parsing, manipulation and (re)linking toolkit
Stars: ✭ 180 (-4.26%)
Mutual labels:  elf


checksec.py

Checksec tool in Python, Rich output, based on LIEF

Demo

CI badge PyPI package badge Python version badge

Table of Contents

Overview

A simple tool to verify the security properties of your binaries.

These properties can be enabled by your compiler to enforce the security of your executables, and mitigate exploits. However it can be challenging to apply them on a whole system.

Check the level of security your Linux distro / Windows release is providing you !

Supported formats:

  • [x] ELF
  • [x] PE
  • [ ] Mach-O

Based on:

  • Rich: Beautiful terminal output formatting
  • LIEF: Cross-platform library to parse, modify and abstract ELF, PE and Mach-O formats

Requirements

Setup

Windows

You find the checksec.exe on the latest Github releases:

Linux

python3 -m venv venv
source venv/bin/activate
(venv) pip install checksec.py

Usage

(venv) checkec <file_or_directory>...

Check --help for more options (JSON output, recursive walk, workers count)

FAQ

1️⃣ What's the difference between checksec.py and checksec.sh ?

checksec.py checksec.sh
Cross-Platform support
Distributed workload
Scan file
Scan directory
Scan directory recursively
Specify libc path
Scan process
Scan process libs
Scan kernel config
Output Cli
Output JSON
Output CSV
Output XML
ELF: Relro
ELF: Canary
ELF: NX
ELF: PIE
ELF: RPATH
ELF: RUNPATH
ELF: Symbols
ELF: Fortify
ELF: Fortified
ELF: Fortifable
ELF: Fortify Score

2️⃣ What's the difference between checksec.py and winchecksec ?

checksec.py winchecksec
Cross-Platform support
Distributed workload
Scan file
Scan directory
Scan directory recursively
Output CLI
Output JSON
PE: ASLR - DYNAMIC_BASE
PE: ASLR - HIGHENTROPYVA
PE: INTEGRITYCHECK
PE: Authenticode signed
PE: DEP
PE: Manifest Isolation
PE: SEH
PE: SafeSEH
PE: Control Flow Guard
PE: Return Flow Guard
PE: Stack Cookie

3️⃣ checksec is slow on some huge binaries ! What's happening ?!

checksec.py relies on the LIEF library to parse PE/ELF/MachO formats.

➡️The library doesn't offer at this point on-demand parsing, so it will parse and fetch unnecessary data.

➡️Retrieving symbols can be slow (ex: pandoc, 118M, +300 000 symbols, +2m 20sec). See this issue

4️⃣ I sent a CTRL-C to cancel checksec.py processing, the app doesn't want to quit

checksec.py is working with multiple process workers to parallelize its execution and binary processing. When a CRTL-C is received, checksec.py will wait for them to stop.

Sometimes, this is not working, and I don't know why at this point. You can kill the remaining Python workers afterwards.

References

License

License: GPL v3

Contributors

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].