My favorites | Sign in
Project Logo
                
Details: Show all Hide all

Last 7 days

  • Jan 05, 2010
    r267 (IDAPython 1.3.0 / IDA Pro 5.6 (For older versions please us...) committed by elias.bachaalany   -   IDAPython 1.3.0 / IDA Pro 5.6 (For older versions please use the 1.2.90 branch)
    IDAPython 1.3.0 / IDA Pro 5.6 (For older versions please use the 1.2.90 branch)
  • Jan 04, 2010
    r266 ([No log message]) committed by elias.bachaalany   -   [No log message]
    [No log message]

Last 30 days

  • Dec 28, 2009
    issue 44 (Abount Functions()) reported by codexb   -   I used to follwing statement to get a all function list for funcea in Functions(SegStart(self.seg_start),SegEnd(self.seg_start)): ... MakeNameEx(funcea,self.funcList[i+1],0x100) ... but sometimes It don't get a all functions with MakeNameEX() What version of the product are you using? On what operating system? idapython 1.2 with IDA 5.5
    I used to follwing statement to get a all function list for funcea in Functions(SegStart(self.seg_start),SegEnd(self.seg_start)): ... MakeNameEx(funcea,self.funcList[i+1],0x100) ... but sometimes It don't get a all functions with MakeNameEX() What version of the product are you using? On what operating system? idapython 1.2 with IDA 5.5
  • Dec 20, 2009
    issue 43 (Rerunning script from the recent script box (Alt-7) does not...) commented on by cbwhiz   -   You could also work around this by editing init.py's ScriptBox.run method: change: if n > 0: return self.list[n-1] to: if n > 0: file = self.list[n-1] runscript(file) return None
    You could also work around this by editing init.py's ScriptBox.run method: change: if n > 0: return self.list[n-1] to: if n > 0: file = self.list[n-1] runscript(file) return None
  • Dec 20, 2009
    issue 42 (Modules imported from scripts will not reload when script is...) commented on by cbwhiz   -   PS: http://pyunit.sourceforge.net/notes/reloading.html is where I got the idea for the ModuleCleaner object.
    PS: http://pyunit.sourceforge.net/notes/reloading.html is where I got the idea for the ModuleCleaner object.
  • Dec 19, 2009
    issue 42 (Modules imported from scripts will not reload when script is...) commented on by cbwhiz   -   This code will still fail if the recent file box (Alt-7) is used due to issue 43.
    This code will still fail if the recent file box (Alt-7) is used due to issue 43.
  • Dec 19, 2009
    issue 43 (Rerunning script from the recent script box (Alt-7) does not...) reported by cbwhiz   -   You can see that if the recent script box is used, the c++ module executes the file directly: http://code.google.com/p/idapython/source/browse/trunk/python.cpp#284 What it should do, like is done via Alt-9, is call runscript() in init.py: http://code.google.com/p/idapython/source/browse/trunk/python.cpp#219 and http://code.google.com/p/idapython/source/browse/trunk/python.cpp#221 The problem is that customizations made to runscript() will fail, and even if (for example) issue 42 is fixed, it will still fail if the user used Alt-7 instead of Alt-9
    You can see that if the recent script box is used, the c++ module executes the file directly: http://code.google.com/p/idapython/source/browse/trunk/python.cpp#284 What it should do, like is done via Alt-9, is call runscript() in init.py: http://code.google.com/p/idapython/source/browse/trunk/python.cpp#219 and http://code.google.com/p/idapython/source/browse/trunk/python.cpp#221 The problem is that customizations made to runscript() will fail, and even if (for example) issue 42 is fixed, it will still fail if the user used Alt-7 instead of Alt-9
  • Dec 19, 2009
    issue 42 (Modules imported from scripts will not reload when script is...) commented on by cbwhiz   -   I'm sorry, there was a mistake in my above code. Corrected, the function should look like: def runscript(script): """ Run the specified script after adding its directory path to system path. This function is used by the low-level plugin code. """ _mc = ModuleCleaner() try: addscriptpath(script) watchdog.reset() argv = sys.argv sys.argv = [ script ] execfile(script, globals()) sys.argv = argv except: raise finally: _mc.revert() and this should be at the bottom (or wherever, really): class ModuleCleaner(object): def __init__(self): self.path = sys.path self.std = [sys.stdin, sys.stdout, sys.stderr] self.baseModules = sys.modules.copy() def revert(self): for moduleName in sys.modules.keys(): if not self.baseModules.has_key(moduleName): del(sys.modules[moduleName]) #forcibly unload the module sys.stdin, sys.stdout, sys.stderr = self.std sys.path = self.path
    I'm sorry, there was a mistake in my above code. Corrected, the function should look like: def runscript(script): """ Run the specified script after adding its directory path to system path. This function is used by the low-level plugin code. """ _mc = ModuleCleaner() try: addscriptpath(script) watchdog.reset() argv = sys.argv sys.argv = [ script ] execfile(script, globals()) sys.argv = argv except: raise finally: _mc.revert() and this should be at the bottom (or wherever, really): class ModuleCleaner(object): def __init__(self): self.path = sys.path self.std = [sys.stdin, sys.stdout, sys.stderr] self.baseModules = sys.modules.copy() def revert(self): for moduleName in sys.modules.keys(): if not self.baseModules.has_key(moduleName): del(sys.modules[moduleName]) #forcibly unload the module sys.stdin, sys.stdout, sys.stderr = self.std sys.path = self.path
  • Dec 19, 2009
    issue 42 (Modules imported from scripts will not reload when script is...) reported by cbwhiz   -   What steps will reproduce the problem? 1. Run script.py from Alt-9, which has 'import mymodule' 2. Observe output 3. Modify mymodule.py 4. Run script.py from Alt-9, which has 'import mymodule' What is the expected output? What do you see instead? Expected: import mymodule rereads mymodule.py Actual: because mymodule is in sys.modules, it skips reading it from the disk What version of the product are you using? On what operating system? IDAPython 1.2.0 Please provide any additional information below. To fix, edit init.py as follows: At the bottom of the file, add: class ModuleCleaner(object): def __init__(self): self.path = sys.path self.std = [sys.stdin, sys.stdout, sys.stderr] self.baseModules = sys.modules.copy() def revert(self): for moduleName in sys.modules.keys(): if not self.baseModules.has_key(moduleName): del(sys.modules[moduleName]) #forcibly unload the module sys.stdin, sys.stdout, sys.stderr = self.std sys.path = self.path _mc = ModuleCleaner() as the first thing inside of def runscript(), add: global _mc _mc.revert()
    What steps will reproduce the problem? 1. Run script.py from Alt-9, which has 'import mymodule' 2. Observe output 3. Modify mymodule.py 4. Run script.py from Alt-9, which has 'import mymodule' What is the expected output? What do you see instead? Expected: import mymodule rereads mymodule.py Actual: because mymodule is in sys.modules, it skips reading it from the disk What version of the product are you using? On what operating system? IDAPython 1.2.0 Please provide any additional information below. To fix, edit init.py as follows: At the bottom of the file, add: class ModuleCleaner(object): def __init__(self): self.path = sys.path self.std = [sys.stdin, sys.stdout, sys.stderr] self.baseModules = sys.modules.copy() def revert(self): for moduleName in sys.modules.keys(): if not self.baseModules.has_key(moduleName): del(sys.modules[moduleName]) #forcibly unload the module sys.stdin, sys.stdout, sys.stderr = self.std sys.path = self.path _mc = ModuleCleaner() as the first thing inside of def runscript(), add: global _mc _mc.revert()

Older

  • Nov 23, 2009
    issue 41 (idautils.Functions() makes incorrect assumption) commented on by gergely.erdelyi   -   This should be fixed by http://code.google.com/p/idapython/source/detail?r=199 If it reproduces for you with the trunk version of idautils.py, please send me an example IDB. You can just copy the latest version of the script over the one that comes with 5.5.
    This should be fixed by http://code.google.com/p/idapython/source/detail?r=199 If it reproduces for you with the trunk version of idautils.py, please send me an example IDB. You can just copy the latest version of the script over the one that comes with 5.5.
  • Nov 20, 2009
    issue 41 (idautils.Functions() makes incorrect assumption) commented on by rosskinder   -   We're having this issue too with 5.5. I think you can just call idaapi.get_next_func(0) to find the first function? Maybe?
    We're having this issue too with 5.5. I think you can just call idaapi.get_next_func(0) to find the first function? Maybe?
  • Nov 13, 2009
    r265 (idc.py: RefreshDebuggerMemory() was broken) committed by elias.bachaalany   -   idc.py: RefreshDebuggerMemory() was broken
    idc.py: RefreshDebuggerMemory() was broken
  • Nov 05, 2009
    issue 41 (idautils.Functions() makes incorrect assumption) reported by pedram.amini   -   If MinEA() does not reside in a function then the following (equivalent) calls will return nothing: idautils.Functions() idautils.Functions(idc.MinEA(), idc.MaxEA()) The problem is on line 218: http://code.google.com/p/idapython/source/browse/trunk/python/idautils.py#218 func = idaapi.get_func(start) This needs to be encapsulated in a loop to find the start of the first function: func = None while not func: func = idaapi.get_func(start) start += 1
    If MinEA() does not reside in a function then the following (equivalent) calls will return nothing: idautils.Functions() idautils.Functions(idc.MinEA(), idc.MaxEA()) The problem is on line 218: http://code.google.com/p/idapython/source/browse/trunk/python/idautils.py#218 func = idaapi.get_func(start) This needs to be encapsulated in a loop to find the start of the first function: func = None while not func: func = idaapi.get_func(start) start += 1
  • Nov 03, 2009
    issue 40 (Idapython 64bit linux build issue: LONG_BIT definition appea...) changed by gergely.erdelyi   -   Do I understand correctly that you are trying to compile the plugin in a 64-bit host? If that is the case, I am afraid it will not work. As far as I can see only the most essential libraries are installed in their 32-bit form, at least on Debian Lenny. For example I did not find any of the Python libraries. Trying to link to 64-bit Python libs will not do much good as the IDA binary itself is 32-bit.
    Status: WontFix
    Owner: gergely.erdelyi
    Do I understand correctly that you are trying to compile the plugin in a 64-bit host? If that is the case, I am afraid it will not work. As far as I can see only the most essential libraries are installed in their 32-bit form, at least on Debian Lenny. For example I did not find any of the Python libraries. Trying to link to 64-bit Python libs will not do much good as the IDA binary itself is 32-bit.
    Status: WontFix
    Owner: gergely.erdelyi
  • Oct 31, 2009
    issue 40 (Idapython 64bit linux build issue: LONG_BIT definition appea...) commented on by samshepperd   -   Log with --ea64 enabled.
    Log with --ea64 enabled.
  • Oct 31, 2009
    issue 40 (Idapython 64bit linux build issue: LONG_BIT definition appea...) commented on by samshepperd   -   /usr/include/python2.5/pyport.h: #ifndef LONG_BIT #define LONG_BIT (8 * SIZEOF_LONG) #endif #if LONG_BIT != 8 * SIZEOF_LONG /* 04-Oct-2000 LONG_BIT is apparently (mis)defined as 64 on some recent * 32-bit platforms using gcc. We try to catch that here at compile-time * rather than waiting for integer multiplication to trigger bogus * overflows. */ #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)." #endif
    /usr/include/python2.5/pyport.h: #ifndef LONG_BIT #define LONG_BIT (8 * SIZEOF_LONG) #endif #if LONG_BIT != 8 * SIZEOF_LONG /* 04-Oct-2000 LONG_BIT is apparently (mis)defined as 64 on some recent * 32-bit platforms using gcc. We try to catch that here at compile-time * rather than waiting for integer multiplication to trigger bogus * overflows. */ #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)." #endif
  • Oct 31, 2009
    issue 40 (Idapython 64bit linux build issue: LONG_BIT definition appea...) reported by samshepperd   -   Log attached. The same svn checkout builds fine on a 32bit linux machine. Similar issue: https://bugzilla.redhat.com/show_bug.cgi?id=139911#c2
    Log attached. The same svn checkout builds fine on a 32bit linux machine. Similar issue: https://bugzilla.redhat.com/show_bug.cgi?id=139911#c2
  • Oct 30, 2009
    r264 (bytes.i: wrapped nextthat/prevthat()) committed by elias.bachaalany   -   bytes.i: wrapped nextthat/prevthat()
    bytes.i: wrapped nextthat/prevthat()
  • Oct 29, 2009
    r263 (idapython: it is possible to load IdaPython at an early stag...) committed by elias.bachaalany   -   idapython: it is possible to load IdaPython at an early stage and keep it loaded as long as IDA is running. (One needs to pass the "--early-load" switch to build.py)
    idapython: it is possible to load IdaPython at an early stage and keep it loaded as long as IDA is running. (One needs to pass the "--early-load" switch to build.py)
  • Oct 29, 2009
    r262 (added from_cobject method to both loader_input_t and qfile_t...) committed by elias.bachaalany   -   added from_cobject method to both loader_input_t and qfile_t python classes
    added from_cobject method to both loader_input_t and qfile_t python classes
  • Oct 21, 2009
    r261 (diskio.i: wrapped enumerate_files and enumerate_system_files) committed by elias.bachaalany   -   diskio.i: wrapped enumerate_files and enumerate_system_files
    diskio.i: wrapped enumerate_files and enumerate_system_files
  • Oct 21, 2009
    r260 (minor changes) committed by elias.bachaalany   -   minor changes
    minor changes
  • Oct 21, 2009
    r259 (diskio.i: wrapped linput_t* related functions into loader_in...) committed by elias.bachaalany   -   diskio.i: wrapped linput_t* related functions into loader_input_t python class
    diskio.i: wrapped linput_t* related functions into loader_input_t python class
  • Oct 21, 2009
    r258 (wrapped qfile related functions in a qfile_t class) committed by elias.bachaalany   -   wrapped qfile related functions in a qfile_t class
    wrapped qfile related functions in a qfile_t class
  • Oct 21, 2009
    r257 (minor changes) committed by elias.bachaalany   -   minor changes
    minor changes
  • Oct 21, 2009
    r256 (ida.i: fixed %ignore so we ignore functions from the idainfo...) committed by elias.bachaalany   -   ida.i: fixed %ignore so we ignore functions from the idainfo class
    ida.i: fixed %ignore so we ignore functions from the idainfo class
  • Oct 19, 2009
    r255 (build.py: slightly modified the build.py script so that it c...) committed by elias.bachaalany   -   build.py: slightly modified the build.py script so that it can be imported and used from other build scripts
    build.py: slightly modified the build.py script so that it can be imported and used from other build scripts
  • Oct 19, 2009
    r254 (idautils.py: added procregs to identify registers and modifi...) committed by elias.bachaalany   -   idautils.py: added procregs to identify registers and modified DecodeInstruction(). It is now possible to identify the registers of a decoded instruction with: cmd = DecodeInstruction(here()) if cmd[0].is_reg(proc_regs.eax): print "EAX is used" or something like: if cmd[1].is_reg(proc_regs.al): print "al is used"
    idautils.py: added procregs to identify registers and modified DecodeInstruction(). It is now possible to identify the registers of a decoded instruction with: cmd = DecodeInstruction(here()) if cmd[0].is_reg(proc_regs.eax): print "EAX is used" or something like: if cmd[1].is_reg(proc_regs.al): print "al is used"
  • Oct 17, 2009
    r253 (idc.py: Whitespace and indentation fixes ) committed by gergely.erdelyi   -   idc.py: Whitespace and indentation fixes
    idc.py: Whitespace and indentation fixes
  • Oct 17, 2009
    r252 (idc.py: Fixed RunTo() and GetExceptionQty() ) committed by gergely.erdelyi   -   idc.py: Fixed RunTo() and GetExceptionQty()
    idc.py: Fixed RunTo() and GetExceptionQty()
  • Oct 17, 2009
    r251 (has_key() is slowly getting deprecated. Might make sense to ...) committed by gergely.erdelyi   -   has_key() is slowly getting deprecated. Might make sense to stop using it.
    has_key() is slowly getting deprecated. Might make sense to stop using it.
  • Oct 17, 2009
    r250 (idautils.py: Rearranged function order to be more logical ) committed by gergely.erdelyi   -   idautils.py: Rearranged function order to be more logical
    idautils.py: Rearranged function order to be more logical
  • Oct 17, 2009
    r249 (idautils.py: Classes are all newskool. Fixed a pylint warnin...) committed by gergely.erdelyi   -   idautils.py: Classes are all newskool. Fixed a pylint warning.
    idautils.py: Classes are all newskool. Fixed a pylint warning.
  • Oct 17, 2009
    r248 (idautils.py: Small whitespace and indentation fixes ) committed by gergely.erdelyi   -   idautils.py: Small whitespace and indentation fixes
    idautils.py: Small whitespace and indentation fixes
  • Oct 17, 2009
    r247 (idautils.py: Added missing self ) committed by gergely.erdelyi   -   idautils.py: Added missing self
    idautils.py: Added missing self
  • Oct 16, 2009
    r246 (build.py: now build.py will use the "IDA" environment variab...) committed by elias.bachaalany   -   build.py: now build.py will use the "IDA" environment variable (if it exists) to tell where the SDK is. (for example if IDA=$HOME/idasdk, then build will use $IDA/include and $IDA/libXXXXX)
    build.py: now build.py will use the "IDA" environment variable (if it exists) to tell where the SDK is. (for example if IDA=$HOME/idasdk, then build will use $IDA/include and $IDA/libXXXXX)
  • Oct 12, 2009
    r245 (idapython was not compiling since r239 (it was using an unpu...) committed by elias.bachaalany   -   idapython was not compiling since r239 (it was using an unpublished API)
    idapython was not compiling since r239 (it was using an unpublished API)
  • Oct 05, 2009
    r244 (idautils.py: Added Threads() iterator to enum threads) committed by elias.bachaalany   -   idautils.py: Added Threads() iterator to enum threads
    idautils.py: Added Threads() iterator to enum threads
  • Oct 05, 2009
    r243 (kernwin.i: added code markers to choose2 wrapper code (for e...) committed by elias.bachaalany   -   kernwin.i: added code markers to choose2 wrapper code (for easier maintenance)
    kernwin.i: added code markers to choose2 wrapper code (for easier maintenance)
  • Oct 05, 2009
    r242 (dbg.i/idd.i: wrapped some functions from the dbg/debugger_t ...) committed by elias.bachaalany   -   dbg.i/idd.i: wrapped some functions from the dbg/debugger_t class: get_manual_regions/dbg_get_memory _info/dbg_get_registers/dbg_get_thread_sreg_base/dbg_read_memory/dbg_write_memory/dbg_can_query
    dbg.i/idd.i: wrapped some functions from the dbg/debugger_t class: get_manual_regions/dbg_get_memory _info/dbg_get_registers/dbg_get_thread_sreg_base/dbg_read_memory/dbg_write_memory/dbg_can_query
  • Oct 05, 2009
    r241 (graph.i: fixed a small bug with gettext / background color -...) committed by elias.bachaalany   -   graph.i: fixed a small bug with gettext / background color - removed some whitespaces - added some code markers
    graph.i: fixed a small bug with gettext / background color - removed some whitespaces - added some code markers
  • Oct 02, 2009
    r240 (graph.i: added graph support (works only with the GUI versio...) committed by elias.bachaalany   -   graph.i: added graph support (works only with the GUI version)
    graph.i: added graph support (works only with the GUI version)
  • Sep 24, 2009
    r239 (added Choose2() support) committed by elias.bachaalany   -   added Choose2() support
    added Choose2() support
  • Sep 24, 2009
    r238 (kernwin.i: fixed a reference leak) committed by elias.bachaalany   -   kernwin.i: fixed a reference leak
    kernwin.i: fixed a reference leak
  • Sep 24, 2009
    r237 (idautils.py: GetDataList() was not working with 64bit addres...) committed by elias.bachaalany   -   idautils.py: GetDataList() was not working with 64bit addresses
    idautils.py: GetDataList() was not working with 64bit addresses
  • Sep 23, 2009
    r236 (idautils.py: added qword support for GetDataList()) committed by elias.bachaalany   -   idautils.py: added qword support for GetDataList()
    idautils.py: added qword support for GetDataList()
  • Sep 22, 2009
    r235 (typeinf.i: fixed %rename directive for load_til_header()) committed by elias.bachaalany   -   typeinf.i: fixed %rename directive for load_til_header()
    typeinf.i: fixed %rename directive for load_til_header()
  • Sep 22, 2009
    r234 (kernwin.i: added add_menu_item to ignore list (it was being ...) committed by elias.bachaalany   -   kernwin.i: added add_menu_item to ignore list (it was being wrapped twice (as overloaded function))
    kernwin.i: added add_menu_item to ignore list (it was being wrapped twice (as overloaded function))
  • Sep 22, 2009
    r233 (idp.i: added AssembleLine() which is similar to assemble() b...) committed by elias.bachaalany   -   idp.i: added AssembleLine() which is similar to assemble() but assembles into a buffer instead idautils.py: added Assemble() utility function
    idp.i: added AssembleLine() which is similar to assemble() but assembles into a buffer instead idautils.py: added Assemble() utility function
  • Sep 17, 2009
    r232 (- added NearestName class) committed by elias.bachaalany   -   - added NearestName class
    - added NearestName class
 
Hosted by Google Code