Skip to content

fixed crashes on a 32bits target#2

Merged
herosi merged 1 commit intoherosi:mainfrom
lallouslab:fix32
Apr 4, 2025
Merged

fixed crashes on a 32bits target#2
herosi merged 1 commit intoherosi:mainfrom
lallouslab:fix32

Conversation

@0xeb
Copy link
Copy Markdown
Contributor

@0xeb 0xeb commented Apr 4, 2025

PyClassInformer was prematurely crashing, so now we skip empty entries gracefully.

@herosi
Copy link
Copy Markdown
Owner

herosi commented Apr 4, 2025

Thanks for the PR!
I'm curious why this occurs. Thie vftable has a valid COL and CHD but BCA is empty?
Can you attach the binary here?

@herosi herosi merged commit 4eae8ef into herosi:main Apr 4, 2025
@0xeb
Copy link
Copy Markdown
Contributor Author

0xeb commented Apr 4, 2025

@herosi , first thank you for your good work and for merging this quick fix.

I am very sorry, I can't share this binary at this time.

But here, I kept getting errors all over the place until my patch:

<error>

---------------------------
Warning
---------------------------
Failed while executing plugin_t.run():
Traceback (most recent call last):
 File "C:/Users/elias/Tools/IDA/plugins/pyclassinformer_plugin.py", line 122, in run
   pci_plugmod_t.run_pci(icon=self.act_icon)
 File "C:/Users/elias/Tools/IDA/plugins/pyclassinformer_plugin.py", line 140, in run_pci
   pyclassinformer.pyclassinformer.run_pci(config=config, icon=icon)
 File "C:\Users/elias/Tools/IDA/plugins\pyclassinformer\pyclassinformer.py", line 27, in run_pci
   pyclassinformer.pci_chooser.show_pci_chooser_t(result, icon=icon, libcolor=lib_func_color, defcolor=gen_func_color)
 File "C:\Users/elias/Tools/IDA/plugins\pyclassinformer\pci_chooser.py", line 110, in show_pci_chooser_t
   c = pci_chooser_t("[PyClassInformer]", data, icon, libcolor, defcolor)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "C:\Users/elias/Tools/IDA/plugins\pyclassinformer\pci_chooser.py", line 27, in __init__
   self.items = [
                ^
 File "C:\Users/elias/Tools/IDA/plugins\pyclassinformer\pci_chooser.py", line 33, in <listcomp>
   self.get_hierarychy(data, vftable_ea),
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "C:\Users/elias/Tools/IDA/plugins\pyclassinformer\pci_chooser.py", line 47, in get_hierarychy
   bases = u.get_mdisp_bases(col, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "C:\Users/elias/Tools/IDA/plugins\pyclassinformer\pci_utils.py", line 201, in get_mdisp_bases
   for path in col.chd.bca.paths[col.offset]:
               ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 144

@0xeb 0xeb deleted the fix32 branch April 4, 2025 15:07
@herosi
Copy link
Copy Markdown
Owner

herosi commented Apr 5, 2025

I understand.
I would be grateful if you pasted the PyClassInformer result related to the offset 0x90 (144) and other relevant results of the multi-inheritance class displayed on the Output window and PyClassInformer widget here?

@herosi herosi added bug Something isn't working enhancement New feature or request good first issue Good for newcomers labels May 15, 2025
@herosi
Copy link
Copy Markdown
Owner

herosi commented May 15, 2025

@0xeb , now I improved to handle complex VI classes in this commit.
038e28e

If you have still any problems, please let me know.
Thank you for your commit and cooperation!
I appreciate it!

drakmor pushed a commit to drakmor/PyClassInformer that referenced this pull request Feb 28, 2026
fixed crashes on a 32bits target
drakmor pushed a commit to drakmor/PyClassInformer that referenced this pull request Feb 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request good first issue Good for newcomers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants