Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIRST plugin fails on latest IDA Version 7.0.171130 Windows x64 #14

Closed
demonduck opened this issue Dec 7, 2017 · 2 comments
Closed
Assignees

Comments

@demonduck
Copy link
Contributor

From @hunterbr72 (Cisco-Talos/FIRST#7)

FIRST crashes with the latest IDA version 7.0.171130

Traceback (most recent call last):
File "C:/Program Files/IDA 7.0/plugins/first.py", line 3412, in ev_auto_queue_empty
return self.auto_queue_empty(arg, before7=False)
File "C:/Program Files/IDA 7.0/plugins/first.py", line 3455, in auto_queue_empty
return super(self.class, self).ev_auto_queue_empty(arg)
File "C:\Program Files\IDA 7.0\python\ida_ida.py", line 770, in __wrapper
rc = do_call(cb, *args)
File "C:\Program Files\IDA 7.0\python\ida_idp.py", line 2389, in __call_IDP_Hooks_auto_queue_empty
old_rc = cb(qtype)
File "C:/Program Files/IDA 7.0/plugins/first.py", line 3454, in auto_queue_empty
return super(self.class, self).auto_queue_empty(arg)
AttributeError: 'super' object has no attribute 'auto_queue_empty'
Exception in IDP Hook function: SWIG director method error. Error detected when calling 'IDP_Hooks.ev_auto_queue_empty'
Traceback (most recent call last):
File "C:/Program Files/IDA 7.0/plugins/first.py", line 3412, in ev_auto_queue_empty
return self.auto_queue_empty(arg, before7=False)
File "C:/Program Files/IDA 7.0/plugins/first.py", line 3455, in auto_queue_empty
return super(self.class, self).ev_auto_queue_empty(arg)
File "C:\Program Files\IDA 7.0\python\ida_ida.py", line 770, in __wrapper
rc = do_call(cb, *args)
File "C:\Program Files\IDA 7.0\python\ida_idp.py", line 2389, in __call_IDP_Hooks_auto_queue_empty
old_rc = cb(qtype)
File "C:/Program Files/IDA 7.0/plugins/first.py", line 3454, in auto_queue_empty
return super(self.class, self).auto_queue_empty(arg)
AttributeError: 'super' object has no attribute 'auto_queue_empty'
Exception in IDP Hook function: SWIG director method error. Error detected when calling 'IDP_Hooks.ev_auto_queue_empty'

tested with:
VERSION = 'BETA'
DATE = 'August 2017'
BEGIN = 2014
END = 2017

Seems to be related to HexRays removing an API from their IDP hook class

@demonduck
Copy link
Contributor Author

This issue is caused by the evolution of IDA Python and its exposed APIs. Prior to IDA Pro 7.0 IDP_Hooks used auto_queue_empty to handle auto queue events. IDA Pro 7.0 migrated to ev_auto_queue_empty, doing away with the auto_queue_empty IDP_Hooks method. IDA Pro 7.0 service pack did away with both, however ev_auto_queue_empty is still being called even through the parent class does not contain this method.

The exception occurs when FIRST starts up, thereby, preventing essential configuration and initialization. Code below is not executed and causes issues with the plugin.
https://github.com/vrtadmin/FIRST-plugin-ida/blob/0cb96fd4fe186c8edd1f3956ee14583c6ab5c244/first_plugin_ida/first.py#L3430-L3451

demonduck added a commit that referenced this issue Dec 7, 2017
@demonduck
Copy link
Contributor Author

@hunterbr72 Fix added, check out 5c20ff8. Reopen issue if you discover new bugs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant