def __init__(self, path, **attrs):
# FIXME: go through all files in plugin/ and call PLUGIN_ENTRY() on each module
# this should return an idaapi.plugin_t.
# idaapi.plugin_t will contain an init, run, and term method.
# also, are some attributes to process:
# 'wanted_name' which is for idc.
# 'wanted_hotkey', which should be mapped to a keypress.
# 'comment' self-explanatory
# 'help' self-explanatory
# hotkey can be done by:
# idaapi.CompileLine('static myname() { RunPythonStateMent("CallSomePython()") }')
# idc.AddHotKey(module.wanted_hotkey, "myname")
# idaapi.require
pass
## ida's native api
def api(dll, proc):
'''
get a callable Windows API function.
Python>idaapi.require("idawilli.dbg")
Python>idawilli.dbg.api("kernel32.dll", "SetLastError")(0x31337)
0x0L
Python>idawilli.dbg.api("kernel32.dll", "GetLastError")()
0x31337L
'''
hmod = LoadLibraryA(dll)
pfunc = GetProcAddress(hmod, proc)
decl = get_winapi_decl(proc)
return ida_idd.Appcall.proto(pfunc.value, decl)