📚 OpenRCE is preserved as a read-only archive. Launched at RECon Montreal in 2005. Registration and posting are disabled.








Flag: Tornado! Hurricane!

 Forums >>  IDA Pro  >>  IDA PLW Development Testing

Topic created on: July 27, 2006 05:06 CDT by tagetora .

Hi all,

when I'm developing an IDA plugin, I often test the plugin, then add some changes and then test again. Doing this way, I need to close and open IDA in order to "reload" the new plugin version.

Anybody has any trick or found any "better" way to do "plw testing"?

Thanks ;)

  aeppert     July 27, 2006 08:19.06 CDT
Sadly, no.  IDA Pro does not currently support dynamic loading and unloading of modules.  (And if it does, I really need to get my eyes check as I cannot find references to it in _any_ header file!)

This is a problem I have been debating seeing if I can do something about as I too have run into the same situation more than I care to remember.

  tagetora   July 27, 2006 09:43.28 CDT
Ok, thanks. Now I know I'm not alone with this problem ;D

I will try to do some testing, maybe it's possible to add some LoadLibrary/FreeLibrary code inside a plugin (like a loader-plugin) or patch the IDA binary^H^H^H^H^H^H erm.. well... just wandering

  Sirmabus     July 27, 2006 18:20.09 CDT
Or, get the fastest machine you can with 1GB+ memory and the fastest HD you can find so IDA reloads fast :-)

  sp     July 28, 2006 02:12.22 CDT
I don't know about the scope of the plugins you're talking about but if the functionality you're testing is sufficiently small and isolated it might be faster to prototype the code using IdaRub or IdaPython.

  hexrays     July 28, 2006 03:52.11 CDT
There is a way to unload a plugin immediately after run().

For that, set the PLUGIN_UNL flag in the plugin descriptor.

This flag can not be used if your plugin sets some hooks and wants to stay in the memory, but in simpler cases it will work.

  RolfRolles     July 29, 2006 18:20.23 CDT
Put the following code into the run() function of the plugin:

if(arg == -1)
{
    PLUGIN.flags |= PLUGIN_UNL;
}

Then bring up the IDC command window and execute the command

RunPlugin( "plugin name" , -1 );

Works like a charm.

Rolf @ SABRE

  tagetora   July 31, 2006 04:15.57 CDT
Thanks to everybody,

I tested just now the code that Rolf suggested and it's just perfect (thanks Rolf and Ilfak) ;D

Once the plugin sets the PLUGIN_UNL flag, the next time it is called, the plugin is reloaded.

Thanks guys!

Note: Registration is required to post to the forums.

There are 31,328 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
let 'IDAPython' impo...
Sep/24
set 'IDAPython' as t...
Sep/24
GuessType return une...
Sep/20
About retrieving the...
Sep/07
How to find specific...
Aug/15
How to get data depe...
Jul/07
Identify RVA data in...
May/06
Question about memor...
Dec/12


Recent Forum Posts
Finding the procedur...
rolEYder
Question about debbu...
rolEYder
Identify RVA data in...
sohlow
let 'IDAPython' impo...
sohlow
How to find specific...
hackgreti
Problem with ollydbg
sh3dow
How can I write olly...
sh3dow
New LoadMAP plugin v...
mefisto...
Intel pin in loaded ...
djnemo
OOP_RE tool available?
Bl4ckm4n


Recent Blog Entries
halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

hasherezade
Sep/24
IAT Patcher - new tool for ...

oleavr
Aug/27
CryptoShark: code tracer ba...

oleavr
Jun/25
Build a debugger in 5 minutes

More ...


Recent Blog Comments
nieo on:
Mar/22
IAT Patcher - new tool for ...

djnemo on:
Nov/17
Kernel debugger vs user mod...

acel on:
Nov/14
Kernel debugger vs user mod...

pedram on:
Dec/21
frida.github.io: scriptable...

capadleman on:
Jun/19
Using NtCreateThreadEx for ...

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit