OmniStatic is a command-line tool designed to consolidate multiple static analysis utilities into one place. It's a tool primarily aimed at analyzing executables on Linux, with planned support for Office document analysis in the future. The goal is to streamline the use of various command-line tools and make static analysis easier for cybersecurity professionals.
- Analyze Executables: Use tools like
strings,objdump,file,readelf, and more to analyze binary executables. - Analyze PDFs: Utilize tools such as
pdfinfoandexiftoolfor static PDF analysis. - User-Friendly CLI: Simple, easy-to-navigate command-line interface.
- Extensible: Future support for static analysis of Office documents.
Note: OmniStatic is still in development and many features are yet to be implemented. As soon as my academic workload eases, I will continue to add new features and improvements.
OmniStatic integrates the following tools, which are either built into Ubuntu or require minimal installation.
strings– Extract printable strings from binaries. Part of the GNU Binutils package, maintained by the GNU Project.objdump– Display information from object files, also part of the GNU Binutils.file– Determine file type. Created by Ian Darwin, and now maintained by Christos Zoulas.readelf– Display ELF file headers. Another tool from the GNU Binutils.nm– List symbols from object files, included in the GNU Binutils package by the GNU Project.xxd– Create a hex dump of a given file or convert a hex dump back to its binary form. Part of thevim-commonpackage, maintained by the Vim Project.
pdfinfo– Extract metadata and document structure information from PDFs. Part of the Poppler PDF Utilities.exiftool– Extract, modify, and analyze metadata from PDF files and many other file types. Created and maintained by Phil Harvey.
- Executable Tools: Most tools for executable analysis are typically available on a standard Linux installation. If any tools are missing, follow the on-screen instructions during execution or install them manually.
- PDF Tools: Before using the PDF section of OmniStatic, execute the script
dep.shlocated in theomnistatic/directory to install the necessary tools.
To run OmniStatic, use the build.sh script located in the yourpath/omnistatic directory. This script will create the build directory and run CMake using the CMakeLists.txt file. The default compiler specified in CMakeLists.txt is clang++, but you can change it to your preferred compiler if needed.
- Navigate to the main Directory:
cd yourpath/omnistatic/ - Run build script using:
bash build.sh
- Navigate to build Directory and Run Omnistatic::
cd build ./omnistatic
To use omnistatic from any directory, add the directory yourpath/omnistatic/build to your PATH environment variable. Follow these steps:
-
Edit
.bashrc(or.zshrcif you use Zsh):nano ~/.bashrc -
Add your path:
export PATH=$PATH:yourpath/omnistatic/build
-
Save and Close If using nano, press CTRL + O to save and CTRL + X to exit.
-
Reload
source ~/.bashrc
-
Now(atfer you have compiled) you can run omnistatic from any directory in your terminal using:
omnistatic