class Mihari::Analyzers::BinaryEdge

Constants

PAGE_SIZE

Public Instance Methods

artifacts() click to toggle source
# File lib/mihari/analyzers/binaryedge.rb, line 13
def artifacts
  results = search
  return [] unless results || results.empty?

  results.map do |result|
    events = result["events"] || []
    events.filter_map do |event|
      event.dig "target", "ip"
    end
  end.flatten.compact.uniq
end

Private Instance Methods

api() click to toggle source
# File lib/mihari/analyzers/binaryedge.rb, line 66
def api
  @api ||= ::BinaryEdge::API.new(Mihari.config.binaryedge_api_key)
end
configuration_keys() click to toggle source
# File lib/mihari/analyzers/binaryedge.rb, line 62
def configuration_keys
  %w[binaryedge_api_key]
end
search_with_page(query, page: 1) click to toggle source

Search with pagination

@param [String] query @param [Integer] page

@return [Hash]

# File lib/mihari/analyzers/binaryedge.rb, line 37
def search_with_page(query, page: 1)
  api.host.search(query, page: page)
rescue ::BinaryEdge::Error => e
  raise RetryableError, e if e.message.include?("Request time limit exceeded")

  raise e
end