This year I only have a bunch of little plugins. To install a plugin simply copy it to the `IDA/plugins` directory.

api_palette

Sometimes it is hard to remember what is the exact name of some IDAPython
function. The fact that IDA does not have code completion in the script editor
makes it even harder to find the desired function.  Moreover the functions are
scattered in a bunch of python modules: idc, idaapi, idatutils to name a few.

So I made this plugin that is really a revamped version of my Command Palette
plugin. But this time instead of listing available actions it lists the
available functions and the module they are in.

Just press Ctrl-Shift-W and type either a part of desired function name or some
part of its docstring and then choose from the filtered list the right
function.

Here is a little demonstration where I type a part of IDAPython script that
resets a byte in IDA database to its original value.

member_type

The idea for this plugin is taken from Applying Function Types to Structure Fields in IDA.

Instead of letting the user choose what type should be applied
to the structure member I'm choosing it automatically.

Also instead of aiding the disassembly my goal was to help with the decompilation.

Here is a demonstration where I only name a member of a structure
and then the plugin applies the correct function type.



paste_name

In order to rename a variable in hex-rays you have to press `n, the new name, enter.`

Often I only want to name a variable after a string that in the clipboard.

In that case you usually have to press `n, Ctrl-V, enter`.

Because this is too much work I created this plugin. Now you only have to press `Ctrl-V` to paste a new name from the clipboard.

Note: You will need to install the pyperclip python module to use this plugin, pip install pyperclip should do it.

And here is the demonstration:


natvis


It is very difficult to debug a hex-rays plugin written in C++ because you have
to deal with struct cexpr_t which is a struct with bunch of weird
unions in it.




This is how it usually looks in the Visual Studio debugger:



Luckily Visual studio has a way how to deal with complicated structures.
It is called Views of Native Objects.

To use this plugin just add the file cexpr.natvis to your Visual Studio project



and then you can debug your hex-rays plugins with ease!






Milan Boháček, 2017