You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Like in #33, question is about new functionality added in IDA 7.2, shifted pointers. While they resemble CONTAINING_RECORD macro which you use(?) in core/negative_offsets.py, Hex-Rays claims that shifted pointers are more powerful. I thought you might be interested in this feature.
I also want to note some quirks of shifted pointers: when you use them as seen in example and you take some other int from structure, Hex-Rays would likely show it as myptr[42], not expected ADJ(myptr)->some_other_int. I tried some tweaks to pointer type like _UNKNOWN *__shifted(mystruct,20) myptr; but failed to get consistent use of ADJ with complex structures with lots of members of different types. Maybe you will be more successful.
The text was updated successfully, but these errors were encountered:
Actually I didn't work a lot with negative offsets, is it really that much of improvement? What the difference I see is that __shifted is the same as CONTAINING_RECORD but shorter and with offset rather than filed name. Implementing this doesn't not requires much changing in my code by the way and I could do it. But I think CONTAINING_RECORD gives more information and that information is not that useless.
This is a question rather than an issue.
Like in #33, question is about new functionality added in IDA 7.2, shifted pointers. While they resemble
CONTAINING_RECORD
macro which you use(?) incore/negative_offsets.py
, Hex-Rays claims that shifted pointers are more powerful. I thought you might be interested in this feature.I also want to note some quirks of shifted pointers: when you use them as seen in example and you take some other int from structure, Hex-Rays would likely show it as
myptr[42]
, not expectedADJ(myptr)->some_other_int
. I tried some tweaks to pointer type like_UNKNOWN *__shifted(mystruct,20) myptr;
but failed to get consistent use ofADJ
with complex structures with lots of members of different types. Maybe you will be more successful.The text was updated successfully, but these errors were encountered: