HRDevHelper icon indicating copy to clipboard operation
HRDevHelper copied to clipboard

Error in OnGetText

Open cr3m opened this issue 4 years ago • 8 comments

Hi sir,

I got this error message in Output. The bug triggered once I activated HRDevHelper then browsed a sub call in a function.

IDAPython: Error while calling Python callback <OnGetText>:
Traceback (most recent call last):
  File "HRDevHelper.py", line 483, in OnGetText
    return self[node_id]
  File "ida_graph.py", line 2609, in __getitem__
    raise KeyError
KeyError
WARNING: It appears the graph_viewer_t instance is changing its
WARNING: textual/color data without calling refresh() afterwards.
WARNING: In order to provide backwards-compatibility, IDA will
WARNING: still consider the new data, but later versions of IDA
WARNING: will likely not. Please consider calling refresh_viewer()
WARNING: (or the Refresh() method if you are using IDAPython)
WARNING: after changes occur in the data.
IDAPython: Error while calling Python callback <OnGetText>:
Traceback (most recent call last):
  File "HRDevHelper.py", line 483, in OnGetText
    return self[node_id]
  File "ida_graph.py", line 2609, in __getitem__
    raise KeyError
KeyError

cr3m avatar Jul 18 '21 16:07 cr3m

Hi,

I've had this occur as well in the past and thought I had it fixed with one of the "recent" commits. Are you able to reproduce this with the latest version commited to this repository? If yes, could you please provide more information on how to reproduce? An IDA database or executable would help best. Thank you.

patois avatar Jul 21 '21 18:07 patois

Sure,

Here is the sample I would like to share with you to reproduce:

https://drive.google.com/file/d/144Zr4pzA7aF90mpc-rZcpUGkAdtRQ4m-/view?usp=sharing (password: infected)

E.g Activate HRDevHelper with this function: sub_10001AF8. Then double click to sub_10011F26 and the issue comes.

Thanks

cr3m avatar Jul 22 '21 07:07 cr3m

Would it be possible to share it on anything other than google drive please? Also, which IDA version are you using?

patois avatar Jul 22 '21 09:07 patois

Another upload for you: https://wormhole.app/AY2ZP#jgiT8oTwwj-fKHZMK-hetw

I am using IDA 7.4

cr3m avatar Jul 22 '21 09:07 cr3m

I am unable to reproduce the issue. Could you please verify that the version of HrDevHelper you are using is head on the master branch? Please let me know if the problem persists.

patois avatar Jul 22 '21 09:07 patois

Yes, I am using the latest version of script. I tried to create a tiny video for you: https://wormhole.app/qz8En#BGC9-9H8y4Ez71pT4RKGGg

Please note that I browsed to some functions, go back (by using double click then esc) ...

cr3m avatar Jul 22 '21 10:07 cr3m

Thank you. I will look into it (will probably take a few days until I get the chance).

patois avatar Jul 22 '21 10:07 patois

Take your time sir. Thank you :).

cr3m avatar Jul 22 '21 10:07 cr3m

Apologies for the very late response... :P One of the recent commits may have fixed it. I don't think I've got the executable anymore but may I ask you to try and reproduce the issue? If no longer reproducible, I'd like to close the issue. Thank you!

patois avatar Nov 17 '22 15:11 patois

No worries, I am using the latest version of plugin but no any issues :). Alright, I didn't keep that sample so cannot reproduce the bug recently. Anyway, if it hits me again, I will report soon.

Thank you for making this great IDA plugin.

cr3m avatar Nov 17 '22 16:11 cr3m

Now looking at your initial message again, there could potentially be a race condition that may occur if the user places the screen cursor on a ctree item while the plugin was still in the process of rendering the graph (its textual output to be precise). I remember there was a commit at some point that added a dialog box that is shown to the user during graph-rendering. This may have mitigated the issue because it prevents the screen cursor to be changed but it probably didn't really address the root cause. Happy to close the issue for now and please feel free to open it anytime if the issue can be reproduced.

Thank you for using the plugin and finding it useful!

patois avatar Nov 17 '22 17:11 patois