Пример #1
0
 def __init__(self, ioctl, driver):
     idaapi.Form.__init__(
         self, """Send IOCTL
                     {form_change}
                     <#Input Buffer#~I~nput Buffer:{in_buf}>
                     <#Input Buffer Size#~I~nput Buffer Size:{in_size}>
                     <#Output Buffer#~O~utput Buffer:{out_buf}>
                     <#Output Buffer Size#~O~utput Buffer Size:{out_size}>
                     <#Send IOCTL#~S~end IOCTL:{sendIOCTL}>
                     """, {
             "form_change": idaapi.Form.FormChangeCb(self.form_change),
             "in_buf": idaapi.Form.MultiLineTextControl(),
             "out_buf": idaapi.Form.MultiLineTextControl(),
             "in_size": idaapi.Form.NumericInput(),
             "out_size": idaapi.Form.NumericInput(),
             "sendIOCTL": idaapi.Form.ButtonInput(self.send_ioctl)
         })
     self.driver = driver
     global ioctl_tracker
     for inst in ioctl_tracker.ioctl_locs:
         value = get_operand_value(inst)
         function = ioctl_decoder.get_function(value)
         if function == int(ioctl[1], 16):
             self.ioctl = value
     self.Compile()
     self.in_size.value = 0x20
     self.out_size.value = 0x20
     self.in_buf.value = "\\x41" * 0x20
     self.Execute()
Пример #2
0
def get_all_defines():
    """Returns the C defines for all ICOTL codes which have been marked during the current session"""

    global ioctl_tracker
    defines = []
    for inst in ioctl_tracker.ioctl_locs:
        value = get_operand_value(inst)
        function = ioctl_decoder.get_function(value)
        device_name, device_code = ioctl_decoder.get_device(value)
        method_name, method_code = ioctl_decoder.get_method(value)
        access_name, access_code = ioctl_decoder.get_access(value)
        define = ioctl_decoder.get_define(value)
        defines.append(["0x%X" % (inst,), "0x%X" % (function,), "%s (0x%X)" % (device_name, device_code), "%s (0x%X)" % (method_name, method_code), "%s (0x%X)" % (access_name, access_code), define])
    return defines