Amikor hasonló feladatot kellett elvégeznem, végül összekötöttem az IDB mentési eseményt, majd minden felhasználó mentése előtt az IDA API segítségével módosítottam az IDB-t. Körülbelül néhány másodpercig tartott a teljes függvénylista beolvasása, összegyűjtve a legtöbb információt mind a függvényekről, mind az adatelemekről.
Számomra ez praktikusabb megközelítésnek tűnik, mint az IDA visszafejtése és ezeknek a horgoknak a javítása. , különösen akkor, ha olyan felhasználói felület eseményeket próbál megkapni, mint például a felhasználói gyorsbillentyűk.
Azonban meg kell jegyezni, hogy a struktúra / enum adatok összesítése nehéz lehet, ha úgy dönt, hogy nem támaszkodik az IDA azonosító számaira, ha egynél több IDB fájlt kezel.
Ha vissza akarja állítani az IDA mérnököt, nagyon érdekes lesz valahol csatlakozni a téma megbeszéléséhez. mivel az IDA most már a legtöbbet Qt-val használja Felhasználói felület (bár feltételezem, hogy a Qt-re való áttérés nem volt olyan zökkenőmentes, mint remélni lehetett), a Qt-ba nagyszerű kiindulópont lesz Daniel Pistelli Qt belső és visszafordító cikke, amely tartalmaz egy IDAPython-t is szkript a végén (ennek ellenére nagyon ajánlott az egész cikk elolvasása).
kissé elavult, de feltételezve, hogy az IDA a Qt 4.8-at használja. x nincs sok különbség (ha szeretné felsorolni azokat, amikről tudok).
Alapvetően, mivel a Qt nagyon eseményvezérelt (és némi szerencsével az IDA 6.0-t is ezzel tervezték) szem előtt tartva) előfordulhat, hogy csak hallgatnia kell, a Qt-dialektusban ezt úgy hívják, hogy connect
- slot
(eseménykezelő) és jel
(esemény), legalább néhány olyan eseményhez, amelyet összekapcsolni szeretne.
Korábban néhány mérsékelt Qt-IDA feltörést hajtottam végre, ahogy hívom őket, a Qt és a PyQt használatával manipulálni Qt objektumok az IDA alkalmazásában. Ugyanígy sikerült manuálisan hozzáadnom és szerkesztenem a menüelemeket és az eszközsorokat, feltétlenül lehetséges a helyi menü előugró ablakának megkeresése, amikor jobb gombbal kattintunk az IDA szétszerelési nézetében, vagy összekapcsoljuk a gyorsbillentyűket.
Ez a RE.SE válaszom jó kiindulópont lehet.