#!/usr/bin/env ruby

# Copyright (c) 2009 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This is an idarub script for extracting system call numbers from a DLL that
# has been loaded into the IDA disassembler.  The interesting system call stubs
# are contained in ntdll.dll, user32.dll, gdi32.dll, and imm32.dll.

require 'idarub'

ida, = IdaRub.auto_client

curea = 0

filename = ida.get_root_filename

while true
  curea = ida.find_binary(
      curea, ida.BADADDR, 'ba 00 03 fe 7f', 16, ida.SEARCH_DOWN)
  break if curea == ida.BADADDR

  raise "z" if ida.get_byte(curea - 5) != 0xb8

  syscall = ida.get_long(curea - 4)
  # Remove the IDA _ prefix and the @argsize trailing decorator...
  funcname = ida.get_func_name(curea).split('@', 2)[0].split('_', 2)[-1]
  puts '%d: "%s!%s",' % [syscall, filename, funcname]

  curea += 1
end
