ida-7.1 crashing when loading ipyida plugin
RobinDavid opened this issue · 8 comments
After updating from ida-7.0sp1 to ida-7.1, IPyIDA makes IDA to crash.
IDA segfault both when ipyida.ida_plugin.load()
is launched from idapythonrc.py
and manually in the python shell. Note that it seems to work when copy-pasting ida_plugin.py in the plugins directory of IDA.
I think it might have something to do with the Qt5 version used but I am not sure.
Does it also occurs for you ?
(I am using Debian testing)
This is a bug in IDAPython 7.1 (due to the notion of NAMESPACE_AWARE that was introduced ( http://www.hexblog.com/?p=1151 ))
Please contact us on < support at hex-rays.com > (mentioning your license ID) for fixed IDAPython components.
I got it working by putting ida_plugin.py
in the directory ida-7.1/plugins
but thanks for your solution 😉
Thanks @aundro for the documenting the cause here, it saved me quite some time debugging this. Am I right to understand that load_plugin
no longer accept absolute paths?
Marc-Étienne,
with the fixed IDAPython binaries you'll get after contacting us on support@hex-rays.com, you should be able to load plugins using load_plugin() and absolute paths.
Ok so it's an upstream bug with IDAPython. I sent an email sent to support for updated binary.
Since I can't redistribute it, I'll try to find a workaround (or at least display a warning) for IPyIDA users that updated to 7.1 so it doesn't crash until the next IDA release.
@marc-etienne instead of using load_plugin()
on the module file, a better solution would be to place ipyida_plugin_stub.py into get_user_idadir()+ "/plugins"
I agree, I will update the installer when I have a minute to look into it.
Adding the stub in $IDADIR/plugins/
is much nicer and as less side effects. I changed in install script to do that instead. If anyone wants to test, here is how you can install from the master
branch:
IPYIDA_PACKAGE_LOCATION="https://github.com/eset/ipyida/archive/master.tar.gz"
import urllib2
exec urllib2.urlopen('https://github.com/eset/ipyida/raw/master/install_from_ida.py').read()