Fishhook is a binary instrumentation library for iOS and iOS simulators. It functions as a Mach-O symbol rebinder and instrumenter, allowing for the replacement of system library implementations with custom logic at runtime.
The main features of facebook/fishhook are: Dynamic Hooking, Binary Instrumentation, Mach-O Symbol Rebinding, Dynamic Hooking Libraries, Application Instrumentation, Linker Redirection, Runtime Memory Redirection, iOS and macOS Utilities.
Open-source alternatives to facebook/fishhook include: biliroamingx/biliroamingx — BiliRoamingX is a collection of binary modifications and an application feature unlocker for a mobile client. It… dvyukov/go-fuzz — go-fuzz is a coverage-guided randomized testing tool for identifying crashes and logic bugs in Go code. It consists of… google/afl — AFL is a coverage-guided fuzzer and security vulnerability scanner used to identify software bugs and memory… google/fuzzing — This project is a comprehensive software fuzzing knowledge base and technical guide designed for discovering software… google/sanitizers — This project is a suite of runtime diagnostic tools designed to detect memory leaks, concurrency races, and… iqiyi/xhook — xHook is a low-level instrumenter and hooking library for Android ELF binaries. It functions as a framework for…
BiliRoamingX is a collection of binary modifications and an application feature unlocker for a mobile client. It functions as a set of patches designed to unlock hidden features, remove regional restrictions, and modify the behavior and appearance of the application. The project utilizes a customization framework to remove unwanted page elements and adjust interface scales. It includes a media playback optimizer that forces default high resolutions and enables custom playback speeds for video streams. The modification suite covers regional restriction bypasses, content feed filtering, and su
AFL is a coverage-guided fuzzer and security vulnerability scanner used to identify software bugs and memory corruption by feeding programs mutated data. It functions as a binary instrumentation tool and a test case minimizer to locate crashes and isolate the smallest set of bytes causing a fault. The project distinguishes itself through its ability to operate as a parallel fuzzing orchestrator, distributing workloads across multiple CPU cores or networked machines. It utilizes dictionary-based mutation for complex file formats and performs input sensitivity analysis to identify critical sect
go-fuzz is a coverage-guided randomized testing tool for identifying crashes and logic bugs in Go code. It consists of a fuzzer that evolves random inputs based on code execution paths, an instrumentation tool that produces binaries for tracking coverage, and a seed corpus manager. The tool utilizes compile-time binary instrumentation to monitor branch coverage and employs a feedback-driven mutation loop to prioritize inputs that reach new sections of the codebase. It includes capabilities for comparative differential testing to identify logic errors by executing different implementations of
This project is a comprehensive software fuzzing knowledge base and technical guide designed for discovering software bugs and vulnerabilities. It serves as a resource for implementing coverage-guided, structure-aware, and hybrid fuzzing across various targets, including compiled binaries and hardware kernels. The resource provides specialized guidance on using grammars and defined data formats to generate syntactically valid inputs for complex APIs. It also details methods for combining grey-box fuzzing with symbolic execution to reach deep execution paths and utilizes binary instrumentation