Performs easy to use operations on PE Rich Signatures. Supports outputing the signature in a human readable table, as as a JSON object (with the option to save it to a file).
Example image output:
Example usage:
package main
import (
"github.com/roaldi/richdiff"
"fmt"
)
func main(){
// Read from filesystem. Does rich sig extraction, parsing, and byte image creation
results, err := richdiff.RichFileExtraction("sample.exe")
// richdiff.RichExtraction() alternatively uses []byte as an input
// Sorts the results by product ID
results.Sort()
// Saves json to file
results.WriteToFile("sample.json")
// Prints json to the console
fmt.Println(results.String())
// prints the results in a table
results.RichTable()
// Diff the results with another richdiff results object, returns percentage of similarity
changelog, numberOfDiffs, err := results.Diff(richdiff.RichResults{})
fmt.Println(err.Error())
}