https://github.com/fxb-cocacoding/smda-reader
JAVA library (with maven support) for parsing SMDA disassembly reports
https://github.com/fxb-cocacoding/smda-reader
Last synced: about 1 year ago
JSON representation
JAVA library (with maven support) for parsing SMDA disassembly reports
- Host: GitHub
- URL: https://github.com/fxb-cocacoding/smda-reader
- Owner: fxb-cocacoding
- License: apache-2.0
- Created: 2019-03-05T23:16:58.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-05-20T20:55:55.000Z (about 4 years ago)
- Last Synced: 2023-03-09T07:17:48.776Z (over 3 years ago)
- Language: Java
- Size: 6.27 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# smda-reader
JAVA library (with maven support) for parsing SMDA disassembly reports.
Version 0.6.x is supposed to work with YARA-Signator >= 0.6 and with smda reports in version 1.5.10.
### SMDA Version
This software has been tested to work with [smda](https://github.com/danielplohmann/smda) disassembly report format 1.5.10.
You can get the latest smda version via pip.
### Unit Tests
The Unit Tests are developed against SMDA reports for format 1.5.10. This is only a safety measure as long as you operate on smda disassembly reports in format 1.2.15. It is possible that new versions break the format and therefore might not be directly supported (although we keep smda-reader up-to-date against future smda releases).
### What does it do?
You can use this project to parse SMDA disassembly reports (https://github.com/danielplohmann/smda).
Those disassembly reports are processed as SMDA objects. It saves you the time to write a json parser for the complex structure, for example gson (Google JSON JAVA library) cannot simply interpret the function graph.
PLUS: This projects can generate Ngrams for you from the instructions in the smda reports. It reads all instructions that follow each other into a fixed sized Ngram and skips code caves (but it does not continue, it breaks at code caves and starts new Ngrams, since you usually do not want to build a code cave over a uncertain amount of e.g. padding bytes).
### What dependencies does it use?
It uses gson. The rest is basically standard stuff. See the pom.xml file to see the details.
### How to use it:
You can easily integrate this repository into your codebase using maven:
```
git clone https://github.com/fxb-cocacoding/smda-reader.git
cd smda-reader
mvn package
mvn install:install-file -Dfile=target/smda-reader-0.6.0-SNAPSHOT.jar -DpomFile=pom.xml
```
Then add the project to your maven repository (the ``-section of your pom.xml) using the following statement:
```
com.cocacoding
smda-reader
0.6.0-SNAPSHOT
```
But you can use the generated jar-files also without maven, just add them to your JAVA project. The provided pom.xml file builds you a jar-file containing only the project and one with all dependencies (similar to a statically linked program). This makes it even easier for your to proceed.