All Projects → cmu-sei → Pharos

cmu-sei / Pharos

Licence: other
Automated static analysis tools for binary programs

Projects that are alternatives of or similar to Pharos

Avatar2
Python core of avatar²
Stars: ✭ 334 (-65.03%)
Mutual labels:  binary-analysis, reverse-engineering
Security Notes
📓 Some security related notes
Stars: ✭ 422 (-55.81%)
Mutual labels:  binary-analysis, reverse-engineering
Decomp
Components of a decompilation pipeline.
Stars: ✭ 343 (-64.08%)
Mutual labels:  binary-analysis, reverse-engineering
E9patch
A powerful static binary rewriting tool
Stars: ✭ 317 (-66.81%)
Mutual labels:  binary-analysis, reverse-engineering
Goblin
An impish, cross-platform binary parsing crate, written in Rust
Stars: ✭ 591 (-38.12%)
Mutual labels:  binary-analysis, reverse-engineering
Idenlib
idenLib - Library Function Identification [This project is not maintained anymore]
Stars: ✭ 322 (-66.28%)
Mutual labels:  binary-analysis, reverse-engineering
Sec skills
软件安全工程师技能表
Stars: ✭ 410 (-57.07%)
Mutual labels:  binary-analysis, reverse-engineering
Drsemu
DrSemu - Sandboxed Malware Detection and Classification Tool Based on Dynamic Behavior
Stars: ✭ 237 (-75.18%)
Mutual labels:  binary-analysis, reverse-engineering
Kam1n0 Community
The Kam1n0 Assembly Analysis Platform
Stars: ✭ 467 (-51.1%)
Mutual labels:  binary-analysis, reverse-engineering
Binaryninja Api
Public API, examples, documentation and issues for Binary Ninja
Stars: ✭ 437 (-54.24%)
Mutual labels:  binary-analysis, reverse-engineering
Macbook
《macOS软件安全与逆向分析》随书源码
Stars: ✭ 302 (-68.38%)
Mutual labels:  binary-analysis, reverse-engineering
Die Engine
DIE engine
Stars: ✭ 648 (-32.15%)
Mutual labels:  binary-analysis, reverse-engineering
Freki
🐺 Malware analysis platform
Stars: ✭ 285 (-70.16%)
Mutual labels:  binary-analysis, reverse-engineering
Ddisasm
A fast and accurate disassembler
Stars: ✭ 325 (-65.97%)
Mutual labels:  binary-analysis, reverse-engineering
B2r2
B2R2 is a collection of useful algorithms, functions, and tools for binary analysis.
Stars: ✭ 262 (-72.57%)
Mutual labels:  binary-analysis, reverse-engineering
Cwe checker
cwe_checker finds vulnerable patterns in binary executables
Stars: ✭ 372 (-61.05%)
Mutual labels:  binary-analysis, reverse-engineering
Lief
Authors
Stars: ✭ 2,730 (+185.86%)
Mutual labels:  binary-analysis, reverse-engineering
Radare2
UNIX-like reverse engineering framework and command-line toolset
Stars: ✭ 15,412 (+1513.82%)
Mutual labels:  binary-analysis, reverse-engineering
Pev
The PE file analysis toolkit
Stars: ✭ 422 (-55.81%)
Mutual labels:  binary-analysis, reverse-engineering
Andromeda
Andromeda - Interactive Reverse Engineering Tool for Android Applications
Stars: ✭ 627 (-34.35%)
Mutual labels:  binary-analysis, reverse-engineering

Pharos Static Binary Analysis Framework

The Pharos static binary analysis framework is a project of the Software Engineering Institute at Carnegie Mellon University. The framework is designed to facilitate the automated analysis of binary programs. It uses the ROSE compiler infrastructure developed by Lawrence Livermore National Laboratory for disassembly, control flow analysis, instruction semantics, and more. This software is released under a BSD license.

The current distribution is a substantial update to the previous version, and adds a variety of features including improvements to the OOAnalyzer tool, experimental path analysis code, partitioner improvements, multi-threading, and many other smaller features.

The Pharos framework is a research project, and the code is undergoing active development. No warranties of fitness for any purpose are provided. While this release provides build instructions, unit tests, and some documentation, much work remains to be done. We've tested a few select build configurations, but we have not actively tested the portability of the source code. See the installation instructions for more details.

Since the primary objective for releasing this code is to provide transparency into our research and stimulate conversation with other binary static analysis researchers, please feel free to contact Cory Cohen [email protected] with questions you may have about this work. I may be unable to respond in a timely manner, but I will do my best.

Pharos Static Binary Analysis Tools

APIAnalyzer

ApiAnalyzer is a tool for finding sequences of API calls with the specified data and control relationships. This capability is intended to be used to detect common operating system interaction paradigms like opening a file, writing to it, and the closing it.

OOAnalyzer

OOAnalyzer is a tool for the analysis and recovery of object oriented constructs. This tool was the subject of a paper titled "Using Logic Programming to Recover C++ Classes and Methods from Compiled Executables" which was published at the ACM Conference on Computer and Communications Security in 2018. The tool identifies object members and methods by tracking object pointers between functions in the program. A previous implementation of this tool was named "Objdigger", but it was renamed to reflect a substantial redesign using Prolog rules to recover the object attributes. For more detailed instructons on how to run OOAnalyzer on very large executables, see these notes.

CallAnalyzer

CallAnalyzer is a tool for reporting the static parameters to API calls in a binary program. It is largely a demonstration of our current calling convention, parameter analysis, and type detection capabilities, although it also provides useful analysis of the code in a program.

FN2Yara

FN2Yara is a tool to generate YARA signatures for matching functions in an executable program. Programs that share significant numbers of functions are are likely to have behavior in common.

FN2Hash

FN2Hash is tool for generating a variety of hashes and other descriptive properties for functions in an executable program. Like FN2Yara it can be used to support binary similarity analysis, or provide features for machine learning algorithms.

DumpMASM

DumpMASM is a tool for dumping disassembly listings from an executable using the Pharos framework in the same style as the other tools. It has not been actively maintained, and you should consider using ROSE's standard recursiveDisassemble instead http://rosecompiler.org/ROSE_HTML_Reference/rosetools.html.

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