def __init__(self, module, address, symbol, recentOnEnter, recentOnLeave): Form.__init__( self, r"""STARTITEM {id:script_enter} BUTTON YES* Save BUTTON CANCEL Cancel Function Hook {segment} {address}: {symbol} <Once:{set_once}> <Permanent:{set_perm}>{trigger}> Recent onEnter script file:{src_file_enter} <##onEnter script\::{script_enter}> <##Load from file:{loadfile_enter}><##Update from file:{update_enter}> Recent onLeave script file:{src_file_leave} <##onLeave script\::{script_leave}> <##Load from file:{loadfile_leave}><##Update from file:{update_leave}> """, { 'segment': Form.StringLabel("[" + module + "]", tp='F'), 'address': Form.StringLabel(address, tp='A'), 'symbol': Form.StringLabel(symbol, tp='X'), 'trigger': Form.RadGroupControl(("set_once", "set_perm")), 'src_file_enter': Form.StringLabel( recentOnEnter if recentOnEnter is not None else "", tp='f'), 'script_enter': Form.MultiLineTextControl(flags=self.textFlags, tabsize=self.textTab, width=200, swidth=200), 'loadfile_enter': Form.ButtonInput(self.onLoadEnter), 'update_enter': Form.ButtonInput(self.onUpdateEnter), 'src_file_leave': Form.StringLabel( recentOnLeave if recentOnLeave is not None else "", tp='f'), 'script_leave': Form.MultiLineTextControl(flags=self.textFlags, tabsize=self.textTab, width=200, swidth=200), 'loadfile_leave': Form.ButtonInput(self.onLoadLeave), 'update_leave': Form.ButtonInput(self.onUpdateLeave), }) self.recentScriptFileEnter = recentOnEnter self.recentScriptFileLeave = recentOnLeave
def __init__(self, start_ea, end_ea): Form.__init__( self, r"""BUTTON YES* Import Import data {FormChangeCb} <##Start EA :{intStartEA}> <##End EA :{intEndEA}> Import type: Patching options: <hex string:{rHex}><##Trim to selection:{cSize}>{cGroup}> <string literal:{rString}> <binary file:{rFile}>{rGroup}> <:{strPatch}> <##Import BIN file:{impFile}> """, { 'intStartEA': Form.NumericInput(swidth=40, tp=Form.FT_ADDR, value=start_ea), 'intEndEA': Form.NumericInput(swidth=40, tp=Form.FT_ADDR, value=end_ea), 'cGroup': Form.ChkGroupControl(("cSize", )), 'rGroup': Form.RadGroupControl(("rHex", "rString", "rFile")), 'strPatch': Form.MultiLineTextControl( swidth=80, flags=Form.MultiLineTextControl.TXTF_FIXEDFONT), 'impFile': Form.FileInput(swidth=50, open=True), 'FormChangeCb': Form.FormChangeCb(self.OnFormChange), }) self.Compile()
def __init__(self): Form.__init__(self, r"""STARTITEM 0 BUTTON YES* Yeah BUTTON NO Nope BUTTON CANCEL NONE Form Test {FormChangeCb} <Multilinetext:{txtMultiLineText}> """, { 'txtMultiLineText': Form.MultiLineTextControl(text="Hello"), 'FormChangeCb': Form.FormChangeCb(self.OnFormChange), })
def __init__(self, addr_str, fpos_str, patch_str, org_str): Form.__init__(self, r"""Edit patch bytes Address {strAddr} File offset {strFpos} <:{strPatch}> """, { 'strAddr': Form.StringLabel(addr_str), 'strFpos': Form.StringLabel(fpos_str), 'strPatch': Form.MultiLineTextControl(text=patch_str, flags = Form.MultiLineTextControl.TXTF_FIXEDFONT), }) self.Compile()
def __init__(self, addr_str, fpos_str, patch_str, org_str): Form.__init__(self, r"""BUTTON YES* Restore BUTTON CANCEL Cancel Restore patch bytes Address {strAddr} File offset {strFpos} <:{strOrg}> """, { 'strAddr': Form.StringLabel(addr_str), 'strFpos': Form.StringLabel(fpos_str), 'strOrg': Form.MultiLineTextControl(text=org_str, flags = Form.MultiLineTextControl.TXTF_FIXEDFONT | Form.MultiLineTextControl.TXTF_READONLY), }) self.Compile()
def __init__(self, db_list): Form.__init__(self, r"""STARTITEM {id:db_id} BUTTON YES* Exec BUTTON CANCEL Cancel Execute Query <##DB ID\::{db_id}> <##Query\::{db_query}> """, { 'db_id': Form.DropdownListControl( items=db_list, readonly=True, selval=0, swidth=20, width=20), 'db_query': Form.MultiLineTextControl(flags=self.textFlags, tabsize=self.textTab, width=200, swidth=200), })
def __init__(self, engine, recentFile): Form.__init__(self, r"""STARTITEM {id:script} BUTTON YES* Save BUTTON CANCEL Close Execute Custom Frida Script Recent source file:{src_file} <##Script source code\::{script}> <##Load from file:{loadfile}><##Update from file:{update}><##Execute:{execute}> """, { 'src_file': Form.StringLabel(recentFile if recentFile is not None else "", tp='f'), 'script': Form.MultiLineTextControl(flags=self.textFlags, tabsize=self.textTab, width=200, swidth=200), 'loadfile': Form.ButtonInput(self.onLoad), 'update': Form.ButtonInput(self.onUpdate), 'execute': Form.ButtonInput(self.onExecute), }) self.engine = engine self.recentScriptFile = recentFile
def __init__(self, module, address, symbol, recent): Form.__init__( self, r"""STARTITEM {id:ret_type} BUTTON YES* Save BUTTON CANCEL Cancel Function Implementation Replace {segment} {address}: {symbol} <##return type\::{ret_type}> <##arguments\::{args}> {orig_call} Recent source file:{src_file} <##Script source code\::{script}> <##Load from file:{loadfile}><##Update from file:{update}> """, { 'segment': Form.StringLabel("[" + module + "]", tp='F'), 'address': Form.StringLabel(address, tp='A'), 'symbol': Form.StringLabel(symbol, tp='X'), 'ret_type': Form.StringInput(swidth=10), 'args': Form.StringInput(swidth=40), 'orig_call': Form.StringLabel( "NOTE: Original implementation can be called using `frlOriginalImpl()`" ), 'src_file': Form.StringLabel(recent if recent is not None else "", tp='f'), 'script': Form.MultiLineTextControl(flags=self.textFlags, tabsize=self.textTab, width=200, swidth=200), 'loadfile': Form.ButtonInput(self.onLoadScript), 'update': Form.ButtonInput(self.onUpdateScript), }) self.recentScriptFile = recent
def __init__(self): Form.__init__( self, r"""STARTITEM {id:db_id} BUTTON YES* Save BUTTON CANCEL Cancel Create New DB <##DB ID\: :{db_id}> <##DB File\::{db_path}> <##First Table Query\::{db_table}> """, { 'db_id': Form.StringInput(swidth=15), 'db_path': Form.FileInput(save=True), 'db_table': Form.MultiLineTextControl(flags=self.textFlags, tabsize=self.textTab, width=200, swidth=200), })
def __init__(self, module, address, mnemonic, recentFile): Form.__init__( self, r"""STARTITEM {id:script} BUTTON YES* Save BUTTON CANCEL Cancel Instruction Hook {segment} {address}: {mnemonic} <Once:{set_once}> <Permanent:{set_perm}>{trigger}> Recent source file:{src_file} <##Script source code\::{script}> <##Load from file:{loadfile}><##Update from file:{update}> """, { 'segment': Form.StringLabel("[" + module + "]", tp='F'), 'address': Form.StringLabel(address, tp='A'), 'mnemonic': Form.StringLabel(mnemonic, tp='X'), 'trigger': Form.RadGroupControl(("set_once", "set_perm")), 'src_file': Form.StringLabel(recentFile if recentFile is not None else "", tp='f'), 'script': Form.MultiLineTextControl(flags=self.textFlags, tabsize=self.textTab, width=200, swidth=200), 'loadfile': Form.ButtonInput(self.onLoad), 'update': Form.ButtonInput(self.onUpdate), }) self.recentScriptFile = recentFile
def __init__(self, modules, recentOnEnter, recentOnLeave): Form.__init__( self, r"""STARTITEM {id:module} BUTTON YES* Save BUTTON CANCEL Cancel Arbitrary Hook !!! MAKE SURE YOU KNOW WHAT YOU ARE DOING HERE !!! <Module\: :{module}> <##Address\::{address}> <##Comment\::{comment}> <Instruction:{set_inst}><Function:{set_func}>{hook_type}><Once:{set_once}><Permanent:{set_perm}>{trigger}> Recent onEnter script file:{src_file_enter} <##onEnter script\::{script_enter}> <##Load from file:{loadfile_enter}><##Update from file:{update_enter}> Recent onLeave script file:{src_file_leave} <##onLeave script\::{script_leave}> <##Load from file:{loadfile_leave}><##Update from file:{update_leave}> """, { 'module': Form.DropdownListControl(items=modules, readonly=True, selval=0, swidth=20, width=20), 'address': Form.NumericInput(swidth=20, tp=Form.FT_HEX), 'comment': Form.StringInput(swidth=60), 'hook_type': Form.RadGroupControl( ("set_inst", "set_func"), secondary=False), 'trigger': Form.RadGroupControl(("set_once", "set_perm"), secondary=True), 'src_file_enter': Form.StringLabel( recentOnEnter if recentOnEnter is not None else "", tp='f'), 'script_enter': Form.MultiLineTextControl(flags=self.textFlags, tabsize=self.textTab, width=200, swidth=200), 'loadfile_enter': Form.ButtonInput(self.onLoadEnter), 'update_enter': Form.ButtonInput(self.onUpdateEnter), 'src_file_leave': Form.StringLabel( recentOnLeave if recentOnLeave is not None else "", tp='f'), 'script_leave': Form.MultiLineTextControl(flags=self.textFlags, tabsize=self.textTab, width=200, swidth=200), 'loadfile_leave': Form.ButtonInput(self.onLoadLeave), 'update_leave': Form.ButtonInput(self.onUpdateLeave), }) self.recentScriptFileEnter = recentOnEnter self.recentScriptFileLeave = recentOnLeave