-
Notifications
You must be signed in to change notification settings - Fork 6
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
Types setting/getting/callbacks no longer work in IDA 9 #62
Comments
Something to keep in mind (for a timeline) is that the old API is supposed to be deprecated in the next major version according to support@. They also plan on updating the frame API to use local types too, if I'm understanding them correctly. Somewhat enraging... |
Oh I am well aware... @arizvisa lol. Yeah it's not ideal.
Wait, like stack variables? |
Yessir. (quoted directly from email)
I've been incrementally tracking all the things that'll be broken in my own project at arizvisa/ida-minsc#158 (comment) as a result of it. Literally all the interval and structure/union/frame arithmetic (things that I use every day for laying out structs and frames), slice assignments, struct and member xrefs (recently refactored), and serialization/deserialization between databases (should be using libbs for this, tho) will likely remain broken in my plugin until some point after the next major version. It is what it is, though. Just kind of praying the hooks will be remotely similar to the legacy hooks so that I can still track things without being too crazy. It'd just suck to have to process the entirety of a |
Great... welp. Looks like binsync is going to be broken during that time period as well until I port everything. It is already not working perfectly anymore in 8.4, so I'll likely have to do all these changes before 9.0 drops. However, it also sucks since it means older versions of IDA will be left behind. |
"Creation — that is the great salvation from suffering, and life's alleviation. But for the creator to appear, suffering itself is needed, and much change." |
(from leaked 9.0 beta sdk) new frame events:
new type events:
All former structure and enum event types have also been deleted. |
@arizvisa I got into more of the internals today, and my god, this change is brutal in 9. Not only did they kill all the old events as they did in 8.4, but they completely deleted This will be a time-consuming refactor for 9.0 support. |
More info: https://docs.hex-rays.com/pre-release/developer-guide/idapython/idapython-porting-guide-ida-9. Looks like we can keep a lot of the same functionality... hopefully |
@arizvisa I started doing some porting this weekend, and man, wow, the freaking change of |
Yeah, that was my biggest concern :-/. I use my plugin for doing all sorts of structure arithmetic, like finding fields in overlapped frames or laying out structures/frames contiguously. (Sometimes using I also use tags to describe how I want the debugger to render structures/frames. This is done by maintaining an index using the "address/id" to track modifications to things in the database. I'm just hoping that in IDA9, I can still assume that _every_ frame/structure/union member will still always have a "tid" so that I can continue to store metadata for things being notated in the idb. However, the general idea of
Heh..Thinking about that too, the way I'm handling structure alignment will need to be revisited too since Anyways, the other major qualm I had was the idea of the Now that these flags are gone for structures/frames/unions, I'll need to come up with a way to map these semantics to Thank you for fighting with these changes first btw. I'm super grateful for that. |
In version 9 of IDA Pro, they changed how structs and enums work in the backend. All of them now use a centralized system called "local types." They also literally removed
ida_structs
as an importable module.This is a problem for three reasons:
$324235235...
, which will get dropped by BinSync.This has been partially addressed in #101 for at least listing support of Structs in version 9.
EDIT: updated issue to be targetted at IDA 9.
The text was updated successfully, but these errors were encountered: