-
Notifications
You must be signed in to change notification settings - Fork 500
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Binary package: Base module for binary analysis #1856
Conversation
This commit initializes the new binary package which will house our code for performing verification and analysis of binary executables. This first iteration adds the base implementations to open and extract data from the executable headers of ELF (Linux), Mach-O (MacOS) and PE (Win) binaries. The binary object has two methods: * `Arch()` returns the GOARCH label obtained from analyzing a binary * `OS()` returns the GOOS label that indicates the operating system of the binary The `binary` object has a Header object which can be queried to get some platform sepcifics info. Has currently one method: `WordLength()` which returns an integer (32/64) which will determine if the file is a 32 or 64 bit binary.i Signed-off-by: Adolfo García Veytia (Puerco) <adolfo.garcia@uservers.net>
Signed-off-by: Adolfo García Veytia (Puerco) <adolfo.garcia@uservers.net>
Signed-off-by: Adolfo García Veytia (Puerco) <adolfo.garcia@uservers.net>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: puerco, saschagrunert The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
What type of PR is this?
/kind feature
What this PR does / why we need it:
This commit initializes the new binary package which will house our new code for performing
verification and analysis of binary executables.
This first iteration adds the base implementations to open and extract data from the executable
headers of ELF (Linux), Mach-O (MacOS) and PE (Win) binaries.
The
binary.Binary
object has two methods:Arch()
returns the GOARCH label obtained from analyzing a binaryOS()
returns the GOOS label that indicates the operating system of the binaryThe object has a
Header
object which can be queried to get some platform-specific info. Currentlyhas one method:
WordLength()
which returns an integer (32/64) which will determine if the file is a32 or 64 bit binary.i
Signed-off-by: Adolfo García Veytia (Puerco) adolfo.garcia@uservers.net
Which issue(s) this PR fixes:
Part of #1837
Part of the fix for #1521
Special notes for your reviewer:
Base scaffolding for the module. It currently has simple functionality which will get new features as the BOM work progresses
Example usage:
Tests are included
Does this PR introduce a user-facing change?