Repository Analysis

Gallopsled/pwntools

CTF framework and exploit development library

20.7 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of Gallopsled/pwntools, a Python project with 13,590 GitHub stars. SynthScan v2.0 examined 156,867 lines of code across 417 source files, recording 3932 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 20.7 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

20.7
Adjusted Score
20.7
Raw Score
100%
Time Factor
2026-07-05
Last Push
13.6K
Stars
Python
Language
156.9K
Lines of Code
417
Files
3.9K
Pattern Hits
2026-07-14
Scan Date
0.11
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 47MEDIUM 86LOW 3799

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 3932 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Over-Commented Block3235 hits · 2266 pts
SeverityFileLineSnippetContext
LOWpwnlib/regsort.py321COMMENT
LOWpwnlib/regsort.py341 # - Y = ZCOMMENT
LOWpwnlib/log.py681#COMMENT
LOWpwnlib/libcdb.py1001 """COMMENT
LOWpwnlib/libcdb.py1021 # 181 Displaying notes found at file offset 0x00000174 with length 0x00000024:COMMENT
LOWpwnlib/context/__init__.py1761 self.bits = valueCOMMENT
LOWpwnlib/shellcraft/registers.py301# 'arm': arm,COMMENT
LOWpwnlib/rop/rop.py1481 # - pop regCOMMENT
LOWpwnlib/rop/rop.py1561 arg = int(add.match(insn).group(1), 16)COMMENT
LOWpwnlib/rop/gadgets.py1class Gadget:COMMENT
LOWpwnlib/rop/gadgets.py21 #:COMMENT
LOWpwnlib/encoders/i386/xor.py1# Source:COMMENT
LOWpwnlib/encoders/mips/xor.py1# Source:COMMENT
LOWpwnlib/data/includes/freebsd.h1#define STDIN_FILENO 0COMMENT
LOWpwnlib/data/includes/freebsd.h21#define EDEADLK 11COMMENT
LOWpwnlib/data/includes/freebsd.h41#define EMLINK 31COMMENT
LOWpwnlib/data/includes/freebsd.h61#define EADDRNOTAVAIL 49COMMENT
LOWpwnlib/data/includes/freebsd.h81#define EDQUOT 69COMMENT
LOWpwnlib/data/includes/freebsd.h101#define EBADMSG 89COMMENT
LOWpwnlib/data/includes/freebsd.h121#define O_NOFOLLOW 0x0100COMMENT
LOWpwnlib/data/includes/freebsd.h141#define AT_SYMLINK_FOLLOW 0x400COMMENT
LOWpwnlib/data/includes/freebsd.h161#define F_DUP2FD_CLOEXEC 18COMMENT
LOWpwnlib/data/includes/freebsd.h181#define PROT_NONE 0x00COMMENT
LOWpwnlib/data/includes/freebsd.h201#define MCL_CURRENT 0x0001COMMENT
LOWpwnlib/data/includes/freebsd.h221#define MADV_PROTECT 10COMMENT
LOWpwnlib/data/includes/freebsd.h241#define SIGKILL 9COMMENT
LOWpwnlib/data/includes/freebsd.h261#define SIGINFO 29COMMENT
LOWpwnlib/data/includes/freebsd.h281#define BUS_ADRALN 1COMMENT
LOWpwnlib/data/includes/freebsd.h301#define CLD_STOPPED 5COMMENT
LOWpwnlib/data/includes/freebsd.h321#define SI_ASYNCIO 0x10004COMMENT
LOWpwnlib/data/includes/freebsd.h341#define SOCK_SEQPACKET 5COMMENT
LOWpwnlib/data/includes/freebsd.h361#define SO_RCVLOWAT 0x1004COMMENT
LOWpwnlib/data/includes/freebsd.h381#define AF_PUP 4COMMENT
LOWpwnlib/data/includes/freebsd.h401#define AF_IPX 23COMMENT
LOWpwnlib/data/includes/freebsd.h421#define AF_VENDOR03 45COMMENT
LOWpwnlib/data/includes/freebsd.h441#define AF_VENDOR23 85COMMENT
LOWpwnlib/data/includes/freebsd.h461#define AF_VENDOR43 125COMMENT
LOWpwnlib/data/includes/freebsd.h481#define PF_DECnet 12COMMENT
LOWpwnlib/data/includes/freebsd.h501#define PF_SLOW 33COMMENT
LOWpwnlib/data/includes/freebsd.h521#define MSG_NOTIFICATION 0x2000COMMENT
LOWpwnlib/data/includes/freebsd.h541#define S_ISUID 0x800COMMENT
LOWpwnlib/data/includes/freebsd.h561#define S_IFCHR 0x2000COMMENT
LOWpwnlib/data/includes/freebsd.h581#define SF_IMMUTABLE 0x00020000COMMENT
LOWpwnlib/data/includes/freebsd.h601#define SYS_freebsd4_getfsstat 18COMMENT
LOWpwnlib/data/includes/freebsd.h621#define SYS_dup 41COMMENT
LOWpwnlib/data/includes/freebsd.h641#define SYS_sbrk 69COMMENT
LOWpwnlib/data/includes/freebsd.h661#define SYS_socket 97COMMENT
LOWpwnlib/data/includes/freebsd.h681#define SYS_shutdown 134COMMENT
LOWpwnlib/data/includes/freebsd.h701#define SYS_msgsys 170COMMENT
LOWpwnlib/data/includes/freebsd.h721#define SYS_freebsd6_truncate 200COMMENT
LOWpwnlib/data/includes/freebsd.h741#define SYS_clock_gettime 232COMMENT
LOWpwnlib/data/includes/freebsd.h761#define SYS_netbsd_lchown 275COMMENT
LOWpwnlib/data/includes/freebsd.h781#define SYS_kldfirstmod 309COMMENT
LOWpwnlib/data/includes/freebsd.h801#define SYS_sched_get_priority_max 332COMMENT
LOWpwnlib/data/includes/freebsd.h821#define SYS___acl_delete_fd 352COMMENT
LOWpwnlib/data/includes/freebsd.h841#define SYS___mac_set_proc 385COMMENT
LOWpwnlib/data/includes/freebsd.h861#define SYS_ksem_unlink 406COMMENT
LOWpwnlib/data/includes/freebsd.h881#define SYS_sigwait 429COMMENT
LOWpwnlib/data/includes/freebsd.h901#define SYS_setaudit 450COMMENT
LOWpwnlib/data/includes/freebsd.h921#define SYS_sctp_generic_recvmsg 474COMMENT
3175 more matches not shown…
Unused Imports297 hits · 262 pts
SeverityFileLineSnippetContext
LOWpwnlib/runner.py3CODE
LOWpwnlib/regsort.py4CODE
LOWpwnlib/log.py94CODE
LOWpwnlib/timeout.py4CODE
LOWpwnlib/__init__.py1CODE
LOWpwnlib/__init__.py41CODE
LOWpwnlib/args.py52CODE
LOWpwnlib/gdb.py145CODE
LOWpwnlib/fmtstr.py96CODE
LOWpwnlib/fmtstr.py103CODE
LOWpwnlib/fmtstr.py106CODE
LOWpwnlib/libc/__init__.py4CODE
LOWpwnlib/libc/glibc.py4CODE
LOWpwnlib/flag/__init__.py1CODE
LOWpwnlib/util/misc.py2CODE
LOWpwnlib/util/misc.py9CODE
LOWpwnlib/util/misc.py21CODE
LOWpwnlib/util/fiddling.py5CODE
LOWpwnlib/util/fiddling.py19CODE
LOWpwnlib/util/iters.py5CODE
LOWpwnlib/util/iters.py12CODE
LOWpwnlib/util/proc.py2CODE
LOWpwnlib/util/packing.py32CODE
LOWpwnlib/util/sh_string.py241CODE
LOWpwnlib/util/sh_string.py246CODE
LOWpwnlib/term/term.py3CODE
LOWpwnlib/term/term.py5CODE
LOWpwnlib/term/term.py8CODE
LOWpwnlib/term/term.py15CODE
LOWpwnlib/term/__init__.py3CODE
LOWpwnlib/term/termcap.py4CODE
LOWpwnlib/term/termcap.py6CODE
LOWpwnlib/filesystem/__init__.py4CODE
LOWpwnlib/filesystem/__init__.py5CODE
LOWpwnlib/filesystem/ssh.py7CODE
LOWpwnlib/filesystem/ssh.py8CODE
LOWpwnlib/filesystem/ssh.py9CODE
LOWpwnlib/filesystem/ssh.py15CODE
LOWpwnlib/filesystem/path.py3CODE
LOWpwnlib/shellcraft/internal.py1CODE
LOWpwnlib/shellcraft/registers.py1CODE
LOWpwnlib/shellcraft/__init__.py164CODE
LOWpwnlib/commandline/constgrep.py8CODE
LOWpwnlib/commandline/update.py7CODE
LOWpwnlib/commandline/errno.py1CODE
LOWpwnlib/commandline/disasm.py1CODE
LOWpwnlib/commandline/disasm.py9CODE
LOWpwnlib/commandline/version.py8CODE
LOWpwnlib/commandline/unhex.py1CODE
LOWpwnlib/commandline/scramble.py7CODE
LOWpwnlib/commandline/libcdb.py9CODE
LOWpwnlib/commandline/phd.py10CODE
LOWpwnlib/commandline/checksec.py1CODE
LOWpwnlib/commandline/checksec.py2CODE
LOWpwnlib/commandline/checksec.py4CODE
LOWpwnlib/commandline/disablenx.py2CODE
LOWpwnlib/commandline/shellcraft.py4CODE
LOWpwnlib/commandline/shellcraft.py9CODE
LOWpwnlib/commandline/asm.py7CODE
LOWpwnlib/commandline/hex.py1CODE
237 more matches not shown…
Decorative Section Separators58 hits · 188 pts
SeverityFileLineSnippetContext
MEDIUMpwnlib/regsort.py347 # ╰──────── ← ────────╯COMMENT
MEDIUMpwnlib/regsort.py395 # ╰──────── ← ────────╯COMMENT
MEDIUMpwnlib/regsort.py405 # ╰──────── ← ────────╯COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/random_funcs.py13# ==================================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/ARM_Instructions.py21# ====================================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/ARM_Instructions.py47# ======================================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/ARM_Instructions.py66# ==========================================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/ARM_Instructions.py89# =================================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/ARM_Instructions.py108# ============================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/ARM_Instructions.py113# ============================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/ARM_Instructions.py118# ==============COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/ARM_Instructions.py128# ============COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/ARM_Instructions.py133# ===========================================================================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/alphanum_byte.py12# ====================================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/alphanum_byte.py20# =================================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/alphanum_byte.py25# ==========================================================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/alphanum_byte.py34# =======================================================================COMMENT
MEDIUMpwnlib/encoders/arm/alphanumeric/alphanum_byte.py45# =========================================================================COMMENT
MEDIUMextra/docker/develop/ipython_config.py5#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py7#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py437#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py439#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py100#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py102#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py202#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py204#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py359#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py361#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py380#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py382#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py421#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py423#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py489#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py491#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py529#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py531#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py553#------------------------------------------------------------------------------COMMENT
MEDIUMextra/docker/develop/ipython_config.py555#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py5#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py7#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py437#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py439#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py100#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py102#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py202#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py204#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py359#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py361#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py380#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py382#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py421#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py423#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py489#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py491#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py529#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py531#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py553#------------------------------------------------------------------------------COMMENT
MEDIUMtravis/docker/ipython_config.py555#------------------------------------------------------------------------------COMMENT
Docstring Block Structure23 hits · 115 pts
SeverityFileLineSnippetContext
HIGHpwnlib/windbg.py254attach(target, dbgscript=None, dbg_args=[]) -> int Attach to a running process with WinDbg or x64dbg. ArgumentSTRING
HIGHpwnlib/gdb.py423 Launch a GDB server with the specified command line, and launches GDB to attach to it. Arguments: STRING
HIGHpwnlib/gdb.py945 Start GDB in a new terminal and attach to `target`. Arguments: target: The target to attach to. STRING
HIGHpwnlib/context/__init__.py524local(**kwargs) -> context manager Create a context manager for use with the ``with`` statement. For mSTRING
HIGHpwnlib/util/iters.py298repeat_func(func, *args, **kwargs) -> iterator Repeatedly calls `func` with positional arguments `args` and keywordSTRING
HIGHpwnlib/util/iters.py563random_product(*args, repeat = 1) -> tuple Arguments: args: One or more iterables repeat(int): NumberSTRING
HIGHpwnlib/util/packing.py47pack(number, word_size = None, endianness = None, sign = None, **kwargs) -> str Packs arbitrary-sized integer. STRING
HIGHpwnlib/util/packing.py163unpack(data, word_size = None, *, endianness = None, sign = None, **kwargs) -> int Unpacks arbitrary-sized integer.STRING
HIGHpwnlib/util/packing.py237unpack_many(data, word_size = None, *, endianness = None, sign = None) -> int list Splits `data` into groups of ``wSTRING
HIGHpwnlib/util/packing.py654make_packer(word_size = None, endianness = None, sign = None) -> number → str Creates a packer by "freezing" the giSTRING
HIGHpwnlib/util/packing.py718make_unpacker(word_size = None, endianness = None, sign = None, **kwargs) -> str → number Creates an unpacker by "STRING
HIGHpwnlib/util/packing.py1363overlap(*structs: bytes | tuple[bytes, int]) -> bytes Merge multiple byte sequences with possible positional offsetSTRING
HIGHpwnlib/tubes/tube.py108recv(numb = 4096, timeout = default) -> bytes Receives up to `numb` bytes of data from the tube, and returns STRING
HIGHpwnlib/tubes/tube.py215recvpred(pred, timeout = default) -> bytes Receives one byte at a time from the tube, until ``pred(all_bytes)``STRING
HIGHpwnlib/tubes/tube.py269recvn(numb, timeout = default) -> bytes Receives exactly `n` bytes. If the request is not satisfied beSTRING
HIGHpwnlib/tubes/tube.py315recvuntil(delims, drop=False, timeout=default) -> bytes Receive data until one of `delims` is encountered. STRING
HIGHpwnlib/tubes/tube.py405recvlines(numlines, drop=True, timeout=default) -> list of bytes objects Receive up to ``numlines`` lines. STRING
HIGHpwnlib/encoders/i386/ascii_shellcode.py48 Pack shellcode into only ascii characters that unpacks itself and executes (on the stack) Args: STRING
HIGHpwnlib/encoders/i386/ascii_shellcode.py113 Allocate enough space on the stack for the shellcode int_size is taken from the context Args: STRING
HIGHpwnlib/encoders/i386/ascii_shellcode.py154 Find two bitwise negatives in the vocab so that when they are and-ed the result is 0. int_size is takeSTRING
HIGHpwnlib/encoders/i386/ascii_shellcode.py192 Covert the sellcode to sub eax and posh eax instructions int_size is taken from the context Args: STRING
HIGHpwnlib/encoders/i386/ascii_shellcode.py229 Given `target` and `last`, return a list of integers that when subtracted from `last` will equal `target` whilSTRING
HIGHpwnlib/elf/elf.py1274search(needle, writable = False, executable = False) -> generator Search the ELF's virtual address space for thSTRING
Deep Nesting101 hits · 96 pts
SeverityFileLineSnippetContext
LOWpwnlib/update.py44CODE
LOWpwnlib/ui.py47CODE
LOWpwnlib/ui.py127CODE
LOWpwnlib/ui.py254CODE
LOWpwnlib/libcdb.py335CODE
LOWpwnlib/windbg.py146CODE
LOWpwnlib/dynelf.py515CODE
LOWpwnlib/dynelf.py1007CODE
LOWpwnlib/asm.py154CODE
LOWpwnlib/asm.py750CODE
LOWpwnlib/useragents.py11CODE
LOWpwnlib/gdb.py944CODE
LOWpwnlib/memleak.py171CODE
LOWpwnlib/util/misc.py144CODE
LOWpwnlib/util/misc.py268CODE
LOWpwnlib/util/fiddling.py97CODE
LOWpwnlib/util/fiddling.py326CODE
LOWpwnlib/util/fiddling.py630CODE
LOWpwnlib/util/fiddling.py1052CODE
LOWpwnlib/util/lists.py37CODE
LOWpwnlib/util/iters.py869CODE
LOWpwnlib/util/proc.py17CODE
LOWpwnlib/util/proc.py295CODE
LOWpwnlib/util/proc.py395CODE
LOWpwnlib/util/packing.py46CODE
LOWpwnlib/util/packing.py853CODE
LOWpwnlib/util/packing.py1109CODE
LOWpwnlib/util/packing.py1362CODE
LOWpwnlib/util/sh_string.py275CODE
LOWpwnlib/util/cyclic.py134CODE
LOWpwnlib/util/splash.py26CODE
LOWpwnlib/util/splash.py30CODE
LOWpwnlib/util/crc/known.py5CODE
LOWpwnlib/util/crc/known.py18CODE
LOWpwnlib/term/readline.py52CODE
LOWpwnlib/term/readline.py69CODE
LOWpwnlib/term/readline.py99CODE
LOWpwnlib/term/readline.py159CODE
LOWpwnlib/term/readline.py367CODE
LOWpwnlib/term/term.py167CODE
LOWpwnlib/term/term.py247CODE
LOWpwnlib/term/term.py275CODE
LOWpwnlib/term/key.py20CODE
LOWpwnlib/term/key.py184CODE
LOWpwnlib/term/key.py224CODE
LOWpwnlib/term/key.py429CODE
LOWpwnlib/term/key.py117CODE
LOWpwnlib/term/keymap.py34CODE
LOWpwnlib/term/keymap.py58CODE
LOWpwnlib/term/unix_termcap.py8CODE
LOWpwnlib/term/text.py25CODE
LOWpwnlib/term/text.py110CODE
LOWpwnlib/shellcraft/__init__.py45CODE
LOWpwnlib/commandline/constgrep.py58CODE
LOWpwnlib/commandline/libcdb.py225CODE
LOWpwnlib/commandline/shellcraft.py176CODE
LOWpwnlib/commandline/debug.py51CODE
LOWpwnlib/commandline/template.py34CODE
LOWpwnlib/commandline/template.py114CODE
LOWpwnlib/adb/adb.py402CODE
41 more matches not shown…
Cross-Language Confusion22 hits · 82 pts
SeverityFileLineSnippetContext
HIGHpwnlib/gdb.py202 adb.push(tmp_elf, android_path)STRING
HIGHpwnlib/gdb.py239 adb.push(tmp_elf, android_path)STRING
HIGHpwnlib/gdb.py1007 >>> io.sendline(b'echo Hello from bash && exit')CODE
HIGHpwnlib/gdb.py1034 >>> io.sendline(b'echo Hello from bash && exit')CODE
HIGHpwnlib/gdb.py1055 >>> io.sendline(b'echo Hello from bash && exit')CODE
HIGHpwnlib/gdb.py1078 >>> gdbserver.sendline(b'echo Hello from bash && exit')CODE
HIGHpwnlib/filepointer.py282 self.setdefault(null)STRING
HIGHpwnlib/filepointer.py351 def setdefault(self,null):STRING
HIGHpwnlib/context/__init__.py94 >>> t.push()STRING
HIGHpwnlib/context/__init__.py555 self._tls.push()STRING
HIGHpwnlib/util/misc.py627 tube.sendline('which python || echo')CODE
HIGHpwnlib/util/misc.py632 tube.sendline('which perl || echo')CODE
HIGHpwnlib/adb/adb.py564 >>> adb.push('./filename', '/data/local/tmp')STRING
HIGHpwnlib/adb/adb.py568 >>> adb.push('./filename', '/does/not/exist')STRING
HIGHpwnlib/adb/adb.py1388 >>> sent = adb.push(filename, "/data/local/tmp")CODE
HIGHpwnlib/tubes/tube.py1200 self.sendlineafter(end_markerb, "command -v {} && echo YEP || echo NOPE{}".format(utility, echo_end).encSTRING
HIGHpwnlib/tubes/ssh.py1396 cmd = '(sha256 || sha256sum || openssl sha256) 2>/dev/null < 'CODE
HIGHpwnlib/tubes/ssh.py1703 untar = self.system(b'cd %s && tar -xzf %s' % (sh_string(remote), sh_string(remote_tar)))CODE
HIGHpwnlib/tubes/ssh.py1929 wd, status = self.run_to_end('x=$(mktemp -d) && cd $x && chmod +x . && echo $PWD', cwd='.')CODE
HIGHpwnlib/tubes/ssh.py1066 script = 'echo PWNTOOLS; for py in python3 python2.7 python2 python; do test -x "$(command -v $py 2>&1)" && STRING
HIGHpwnlib/data/syscalls/generate.py121 ${{pwnlib.shellcraft.push(arg)}}STRING
HIGHpwnlib/elf/elf.py2013 return (!cpu_has_rixi && exstack == EXSTACK_DEFAULT);CODE
Excessive Try-Catch Wrapping75 hits · 71 pts
SeverityFileLineSnippetContext
LOWpwnlib/update.py156 except Exception:CODE
LOWpwnlib/libcdb.py669 except Exception as e:CODE
LOWpwnlib/libcdb.py677 except Exception:CODE
LOWpwnlib/windbg.py163 except Exception:CODE
LOWpwnlib/atexit.py91 except Exception:CODE
LOWpwnlib/gdb_api_bridge.py54 except Exception as exc:CODE
LOWpwnlib/asm.py680 except Exception:STRING
LOWpwnlib/asm.py893 except Exception:STRING
LOWpwnlib/asm.py996 except Exception:STRING
LOWpwnlib/atexception.py101 except Exception:CODE
LOWpwnlib/memleak.py193 except Exception as e:STRING
LOWpwnlib/flag/flag.py68 except Exception:CODE
LOWpwnlib/util/misc.py911except Exception:CODE
LOWpwnlib/util/misc.py957except Exception:CODE
LOWpwnlib/util/misc.py963except Exception:CODE
LOWpwnlib/util/proc.py89 except Exception:CODE
LOWpwnlib/util/proc.py128 except Exception:CODE
LOWpwnlib/term/readline.py40 except Exception:CODE
LOWpwnlib/term/key.py18except Exception: _fd = os.open(os.devnull, os.O_RDONLY)CODE
LOWpwnlib/term/completer.py108 except Exception:CODE
LOWpwnlib/internal/dochelper.py26 except Exception:CODE
LOWpwnlib/commandline/checksec.py35 except Exception as e:CODE
LOWpwnlib/commandline/common.py15 except Exception: passCODE
LOWpwnlib/commandline/common.py17 except Exception: passCODE
LOWpwnlib/commandline/common.py19 except Exception: argCODE
LOWpwnlib/commandline/common.py21 except Exception: passCODE
LOWpwnlib/commandline/template.py158 except Exception as e:CODE
LOWpwnlib/commandline/template.py191 except Exception:CODE
LOWpwnlib/adb/adb.py424 except Exception:CODE
LOWpwnlib/tubes/tube.py256 except Exception:STRING
LOWpwnlib/tubes/tube.py375 except Exception:STRING
LOWpwnlib/tubes/tube.py452 except Exception:STRING
LOWpwnlib/tubes/tube.py612 except Exception:STRING
LOWpwnlib/tubes/process.py449 except Exception:STRING
LOWpwnlib/tubes/process.py458 except Exception:STRING
LOWpwnlib/tubes/process.py465 except Exception:STRING
LOWpwnlib/tubes/process.py472 except Exception:STRING
LOWpwnlib/tubes/process.py480 except Exception:STRING
LOWpwnlib/tubes/process.py568 except Exception:STRING
MEDIUMpwnlib/tubes/ssh.py549def sock(self):CODE
LOWpwnlib/tubes/ssh.py514 except Exception:CODE
LOWpwnlib/tubes/ssh.py524 except Exception:CODE
LOWpwnlib/tubes/ssh.py724 except Exception as e:CODE
LOWpwnlib/tubes/ssh.py805 except Exception:CODE
LOWpwnlib/tubes/ssh.py810 except Exception:CODE
LOWpwnlib/tubes/ssh.py834 except Exception:CODE
LOWpwnlib/tubes/ssh.py2014 except Exception:CODE
LOWpwnlib/tubes/ssh.py2025 except Exception:CODE
LOWpwnlib/tubes/ssh.py2036 except Exception:CODE
LOWpwnlib/tubes/ssh.py2052 except Exception:CODE
LOWpwnlib/tubes/ssh.py2061 except Exception:CODE
LOWpwnlib/tubes/ssh.py2109 except Exception:CODE
LOWpwnlib/tubes/ssh.py2118 except Exception:CODE
LOWpwnlib/tubes/ssh.py422 except Exception:STRING
LOWpwnlib/tubes/ssh.py476 except Exception as e:STRING
LOWpwnlib/tubes/ssh.py489 except Exception as e:STRING
LOWpwnlib/tubes/ssh.py2004 except Exception:STRING
LOWpwnlib/protocols/adb/__init__.py103 except Exception:CODE
LOWpwnlib/elf/corefile.py1341 except Exception:CODE
LOWpwnlib/elf/corefile.py1347 except Exception:CODE
15 more matches not shown…
Self-Referential Comments21 hits · 50 pts
SeverityFileLineSnippetContext
MEDIUMpwnlib/windbg.py112 # Create a new process, and stop it at 'main'STRING
MEDIUMpwnlib/dynelf.py761 # Create a fake leaker which just leaks out of the 'loaded' ELFCOMMENT
MEDIUMpwnlib/asm.py830 # Create a temporary copy of the cached file to avoid modification.STRING
MEDIUMpwnlib/gdb.py275 # Create a temporary file to hold the scriptSTRING
MEDIUMpwnlib/fmtstr.py89 # Create a FmtStr object and give to him the functionCOMMENT
MEDIUMpwnlib/util/misc.py225 # Create a duplicate so we can modify itCOMMENT
MEDIUMpwnlib/util/misc.py241 # Create a duplicate so we can modify it safelyCOMMENT
MEDIUMpwnlib/util/cyclic.py372 >>> g = cyclic_gen() # Create a generatorSTRING
MEDIUMpwnlib/constants/__init__.py158# Create the module structureCOMMENT
MEDIUMpwnlib/shellcraft/__init__.py47 # Create a dictionary of submodulesCOMMENT
MEDIUMpwnlib/shellcraft/__init__.py169# Create the module structureCOMMENT
MEDIUMpwnlib/adb/adb.py1350 # Create the directoriesSTRING
MEDIUMpwnlib/tubes/process.py319 # Create the PTY if necessarySTRING
MEDIUMpwnlib/elf/elf.py1591 # Create a new view of memory, for just what we needSTRING
MEDIUMpwnlib/elf/elf.py2616 # Create a copy of the ELF to patch instead of the original file.STRING
MEDIUMdocs/source/conf.py4# This file is execfile()d with the current directory set to its containing dir.COMMENT
MEDIUMextra/docker/develop/ipython_config.py14# The following methods should be called by the :meth:`initialize` method of theCOMMENT
MEDIUMextra/docker/develop/ipython_config.py115# Create a massive crash report when IPython encounters what may be an internalCOMMENT
MEDIUMtravis/ssh_setup.sh27 # Create the new user accountCOMMENT
MEDIUMtravis/docker/ipython_config.py14# The following methods should be called by the :meth:`initialize` method of theCOMMENT
MEDIUMtravis/docker/ipython_config.py115# Create a massive crash report when IPython encounters what may be an internalCOMMENT
Modern Structural Boilerplate31 hits · 29 pts
SeverityFileLineSnippetContext
LOWpwnlib/exception.py1__all__ = ['PwnlibException']CODE
LOWpwnlib/runner.py9__all__ = ['run_assembly', 'run_shellcode', 'run_assembly_exitcode', 'run_shellcode_exitcode']CODE
LOWpwnlib/log.py113__all__ = [CODE
LOWpwnlib/libcdb.py1049__all__ = ['get_build_id_offsets', 'search_by_build_id', 'search_by_sha1', 'search_by_sha256', 'search_by_md5', 'search_CODE
LOWpwnlib/__init__.py7__all__ = [CODE
LOWpwnlib/atexit.py18__all__ = ['register', 'unregister']CODE
LOWpwnlib/asm.py65__all__ = ['asm', 'cpp', 'disasm', 'make_elf', 'make_elf_from_assembly']STRING
LOWpwnlib/useragents.py4__all__ = ['getall', 'random']CODE
LOWpwnlib/atexception.py13__all__ = ['register', 'unregister']CODE
LOWpwnlib/memleak.py11__all__ = ['MemLeak', 'RelativeMemLeak']CODE
LOWpwnlib/libc/__init__.py6__all__ = ['glibc']CODE
LOWpwnlib/flag/__init__.py3__all__ = [CODE
LOWpwnlib/context/__init__.py29__all__ = ['context', 'ContextType', 'Thread']CODE
LOWpwnlib/util/iters.py17__all__ = [CODE
LOWpwnlib/util/net.py9__all__ = ['getifaddrs', 'interfaces', 'interfaces4', 'interfaces6', 'sockaddr']CODE
LOWpwnlib/util/__init__.py1__all__ = [CODE
LOWpwnlib/term/term.py21__all__ = ['output', 'init']CODE
LOWpwnlib/term/key.py11__all__ = ['getch', 'getraw', 'get', 'unget']CODE
LOWpwnlib/term/keymap.py3__all__ = ['Keymap']CODE
LOWpwnlib/term/unix_termcap.py1__all__ = ['get']CODE
LOWpwnlib/term/spinners.py1__all__ = ['spinners']CODE
LOWpwnlib/term/termcap.py1__all__ = ['get']CODE
LOWpwnlib/term/windows_termcap.py10__all__ = ['get']CODE
LOWpwnlib/filesystem/__init__.py7__all__ = ['SSHPath', 'Path']CODE
LOWpwnlib/filesystem/ssh.py780__all__ = ['SSHPath']STRING
LOWpwnlib/shellcraft/internal.py8__all__ = ['make_function']CODE
LOWpwnlib/commandline/__init__.py1__all__ = [CODE
LOWpwnlib/tubes/__init__.py21__all__ = ['tube', 'sock', 'remote', 'listen', 'process', 'serialtube', 'server', 'ssh']CODE
LOWpwnlib/rop/rop.py434__all__ = ['ROP']STRING
LOWpwnlib/encoders/amd64/delta.py44__all__ = ['encode']STRING
LOWpwnlib/elf/elf.py93__all__ = ['load', 'ELF']CODE
Hyper-Verbose Identifiers29 hits · 26 pts
SeverityFileLineSnippetContext
LOWpwnlib/libcdb.py26def _turbofast_extract_build_id(path):CODE
LOWpwnlib/libcdb.py557def _find_libc_package_lib_url(libc: ELF, extra_mirrors: list[str] | None = None) -> Generator[str, None, None]:CODE
LOWpwnlib/libcdb.py685def _handle_multiple_matching_libcs(matching_libcs):CODE
LOWpwnlib/gdb_api_bridge.py92 def exposed_set_finish_breakpoint(self, client, has_stop, has_out_of_scope, *args, **kwargs):CODE
LOWpwnlib/asm.py103def print_binutils_instructions(util, context):STRING
LOWpwnlib/fmtstr.py358def find_min_hamming_in_range_step(prev, step, carry, strict):STRING
LOWpwnlib/fmtstr.py416def find_min_hamming_in_range(maxbytes, lower, upper, target):STRING
LOWpwnlib/context/__init__.py1536 def throw_eof_on_incomplete_line(self, v):STRING
LOWpwnlib/util/fiddling.py625def update_cyclic_pregenerated(size):CODE
LOWpwnlib/util/iters.py633def random_combination_with_replacement(iterable, r):CODE
LOWpwnlib/commandline/libcdb.py210def collect_synthetic_symbols(exe):CODE
LOWpwnlib/commandline/shellcraft.py172def is_not_a_syscall_template(name):CODE
LOWpwnlib/commandline/template.py34def get_docker_image_libraries():CODE
LOWpwnlib/adb/adb.py303 def __do_deferred_initialization(self):CODE
LOWpwnlib/adb/adb.py498def _create_adb_push_pull_callback(w):CODE
LOWpwnlib/tubes/process.py909 def __pty_make_controlling_tty(self, tty_fd):STRING
LOWpwnlib/tubes/ssh.py1413 def _verify_local_fingerprint(self, fingerprint):CODE
LOWpwnlib/tubes/ssh.py1962 def _init_remote_platform_info(self):CODE
LOWpwnlib/encoders/arm/alphanumeric/alphanum_byte.py27def alphanumeric_get_byte_ltmax(max):CODE
LOWpwnlib/encoders/arm/alphanumeric/alphanum_byte.py46def alphanumeric_get_complement(c):CODE
LOWpwnlib/elf/corefile.py1356 def systemd_coredump_corefile(self):CODE
LOWpwnlib/elf/corefile.py1282 def apport_crash_extract_corefile(self, crashfile_data):CODE
LOWpwnlib/elf/corefile.py1383 def wsl_capture_crash_corefile(self):CODE
LOWpwnlib/elf/elf.py994 def _populate_synthetic_symbols(self):STRING
LOWpwnlib/elf/plt.py56def __ensure_memory_to_run_unicorn():CODE
LOWpwnlib/elf/plt.py77def prepare_unicorn_and_context(elf, got, address, data):CODE
LOWpwnlib/elf/plt.py159def emulate_plt_instructions_inner(uc, elf, got, pc, data):CODE
LOWextra/docker/develop/ipython_config.py51 def continuation_prompt_tokens(self, cli=None, width=None):CODE
LOWtravis/docker/ipython_config.py51 def continuation_prompt_tokens(self, cli=None, width=None):CODE
Slop Phrases5 hits · 16 pts
SeverityFileLineSnippetContext
LOWpwnlib/elf/corefile.py379 Don't forget to call :meth:`.ELF.save` to save the changes to disk.CODE
MEDIUMextra/docker/develop/ipython_config.py446# printers. Here is a simple example::COMMENT
MEDIUMextra/docker/develop/ipython_config.py344# Set the size of the output cache. The default is 1000, you can change itCOMMENT
MEDIUMtravis/docker/ipython_config.py446# printers. Here is a simple example::COMMENT
MEDIUMtravis/docker/ipython_config.py344# Set the size of the output cache. The default is 1000, you can change itCOMMENT
Redundant / Tautological Comments11 hits · 12 pts
SeverityFileLineSnippetContext
LOWpwnlib/libcdb.py159# Check if the local system libc matches the requested hash.COMMENT
LOWpwnlib/libcdb.py226 # Check if all symbols have been matchedCOMMENT
LOWpwnlib/libcdb.py387 # Check if we tried this buildid before.COMMENT
LOWpwnlib/libcdb.py776 # Check if no matches are foundCOMMENT
LOWpwnlib/util/misc.py251 # Check if = is in the key, Required check since we sometimes call ctypes.execve directlyCOMMENT
LOWpwnlib/commandline/constgrep.py91 # Check if the value has proper typeCOMMENT
LOWpwnlib/commandline/template.py150 # Check if the binary is statically linked before trying to extract libraries from DockerCOMMENT
LOWpwnlib/tubes/process.py729 # Check if process is still running.STRING
LOWpwnlib/encoders/i386/ascii_shellcode.py135 # Set target to the `size` argSTRING
LOWpwnlib/elf/elf.py889 # Close the file descriptor so that it may be executedSTRING
LOWpwnlib/elf/elf.py2631 # Set RUNPATH to library path in order to find other libraries.STRING
AI Slop Vocabulary10 hits · 12 pts
SeverityFileLineSnippetContext
LOWpwnlib/log.py628 # if 'pwnlib_msgtype' is not set (or set to `None`) we just return theCOMMENT
MEDIUMpwnlib/timeout.py49 self.obj._timeout = self.timeout # leverage validationCODE
LOWpwnlib/tubes/process.py650 # Normally we could just use PIPE and be happy.STRING
MEDIUMpwnlib/tubes/process.py742 # In order to facilitate retrieving core files, force an updateSTRING
LOWpwnlib/tubes/ssh.py426 # If we never completely started up, just use the parent implementationSTRING
LOWpwnlib/rop/rop.py1277 # If we can find a function with that name, just call itSTRING
LOWpwnlib/data/includes/generator/freebsd/sys/errno.h188#define EJUSTRETURN (-2) /* don't modify regs, just return */COMMENT
LOWpwnlib/data/includes/generator/freebsd/sys/socket.h105#define SO_DONTROUTE 0x0010 /* just use interface addresses */COMMENT
LOWpwnlib/elf/corefile.py841 # No embedded siginfo structure, so just return theCOMMENT
LOWpwnlib/elf/elf.py825 # Any existing files we can just useCOMMENT
AI Structural Patterns12 hits · 10 pts
SeverityFileLineSnippetContext
LOWpwnlib/gdb.py285CODE
LOWpwnlib/gdb.py421CODE
LOWpwnlib/fmtstr.py835CODE
LOWpwnlib/util/misc.py756CODE
LOWpwnlib/util/fiddling.py630CODE
LOWpwnlib/util/fiddling.py794CODE
LOWpwnlib/tubes/serialtube.py14CODE
LOWpwnlib/tubes/process.py237CODE
LOWpwnlib/tubes/ssh.py600CODE
LOWpwnlib/tubes/ssh.py874CODE
LOWpwnlib/tubes/ssh.py1408CODE
LOWpwnlib/rop/rop.py1657CODE
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHpwnlib/regsort.py337 # In this example below, X, Y, or Z cannot be a temporary register,COMMENT
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHpwnlib/data/includes/generator/freebsd/sys/mman.h69#define MAP_FIXED 0x0010 /* map addr must be exactly as requested */COMMENT