Welcome to the UNPACME API! All the malware unpacking and file analysis features that you are familiar with on the unpac.me website are available through our API. You can easily integrate our unpacker into your malware analysis pipeline and begin unpacking at scale!
The public UNPACME API is publicly available and can be accessed without authentication.
In order to use the private UNPACME API you must sign up for an account with UNPACME. Once you have a valid user account you can view your personal API key in your user profile.
When interacting with the UNPACME API, if the request was correctly handled, a 200 HTTP status code will be returned. The body of the response will usually be a JSON object (except for file downloads).
Status Code | Description | Notes |
---|---|---|
200 | OK | The request was successful |
400 | Bad Request | The request was somehow incorrect. This can be caused by missing arguments or arguments with wrong values. |
401 | Unauthorized | The supplied credentials, if any, are not sufficient to access the resource |
403 | Forbidden | The account does not have enough privileges to make the request. |
404 | Not Found | The requested resource is not found |
429 | Too Many Requests | The request frequency has exceeded one of the account quotas (minute, daily or monthly). Monthly quotas are reset on the 1st of the month at 00:00 UTC. |
500 | Server Error | The server could not return the representation due to an internal server error |
If an error has occurred while handling the request an error status code will be returend along with a JSON error message with the following properties.
Property | Description |
---|---|
Error | The error type |
Description | A more informative message |
This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.
- API version: 1.0.0
- Package version: 1.0.0
- Build package: org.openapitools.codegen.languages.GoClientCodegen
Install the following dependencies:
go get github.com/stretchr/testify/assert
go get golang.org/x/oauth2
go get golang.org/x/net/context
Install the module:
go get github.com/kryptoslogic/unpacme-go
Import:
import openapiclient "github.com/kryptoslogic/unpacme-go"
To use a proxy, set the environment variable HTTP_PROXY
:
os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")
All URIs are relative to https://api.unpac.me/api/v1
Class | Method | HTTP request | Description |
---|---|---|---|
FeedApi | GetPrivateFeed | Get /private/feed/unpacked | Get full unpacked sample feed |
FeedApi | GetPrivateFeedYaraFiltered | Get /private/feed/unpacked/yara/{yara_rule} | Get full unpacked sample feed filtered by yara rule |
FeedApi | GetPrivateFeedYaraTags | Get /private/feed/unpacked/yara | Get list of yara tags in feed |
PublicApi | GetPublicFeed | Get /public/feed | Get public feed |
PublicApi | GetPublicResults | Get /public/results/{unpack_id} | Get unpack results by ID |
PublicApi | GetPublicUnpackStatus | Get /public/status/{unpack_id} | Get unpack status by ID |
UnpackingApi | GetPrivateDownload | Get /private/download/{sample_hash} | Download sample by hash |
UnpackingApi | GetPrivateHistory | Get /private/history | Get history |
UnpackingApi | GetPrivateResults | Get /private/results/{unpack_id} | Get unpack results by ID |
UnpackingApi | GetPrivateSearchbyHash | Get /private/search/hash/{sample_hash} | Search for parent submission by hash |
UnpackingApi | GetPrivateUnpackStatus | Get /private/status/{unpack_id} | Get unpack status by ID |
UnpackingApi | PostPrivateUpload | Post /private/upload/ | Submit sample for unpacking |
UserApi | DeletePrivateUserMalpedia | Delete /private/user/malpedia | Remove Malpedia authentication |
UserApi | GetPrivateUserAccess | Get /private/user/access | Get user settings |
UserApi | GetPrivateUserMalpedia | Get /private/user/malpedia | Get user Malpedia info |
UserApi | PostPrivateUserMalpedia | Post /private/user/malpedia | Authenticate user to Malpedia |
- DeepmatchEntity
- DeepmatchEntityAllOf
- DetectitEntity
- DetectitEntityAllOf
- Export
- ExportAllOf
- FeedEntity
- Function
- FunctionAllOf
- History
- HistoryEntity
- ImportEntity
- ImportEntityAllOf
- InlineObject
- InlineObject1
- InlineResponse200
- InlineResponse2001
- MalwareId
- MalwareIdAllOf
- MalwareIdShort
- MalwareIdShortAllOf
- PrivateFeed
- PrivateFeedEntity
- PrivateFeedEntityChildren
- PrivateFeedFiltered
- PrivateFeedYaraTags
- PublicFeed
- Resource
- ResourceAllOf
- ResourceEntity
- ResourceEntry
- Result
- ResultAllOf
- ResultAllOfAnalysis
- ResultAllOfAnalysisExports
- ResultAllOfAnalysisImports
- ResultAllOfAnalysisMetadata
- ResultAllOfAnalysisMetadataVersionInfo
- ResultAllOfAnalysisMetadataVersionInfoStringInfo
- ResultAllOfAnalysisMetadataVersionInfoVarInfo
- ResultAllOfAnalysisRichHeaders
- ResultAllOfHashes
- ResultAllOfStrings
- RichHeader
- RichHeaderAllOf
- SearchEntity
- SearchResults
- Section
- SectionAllOf
- Status
- UnpackResults
- UnpackResultsAllOf
- UnpackStatus
- UnpackStatusAllOf
- UserAccess
- UserAccessAllOf
- Type: API key
- API key parameter name: Authorization
- Location: HTTP header
Note, each API key must be added to a map of map[string]APIKey
where the key is: Authorization and passed in as the auth context for each request.
Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:
PtrBool
PtrInt
PtrInt32
PtrInt64
PtrFloat
PtrFloat32
PtrFloat64
PtrString
PtrTime
Kryptos Logic