Kérdés:
Hogyan lehet értesítést kapni az IDA adatbázis eseményeiről, amelyekre nem vonatkozik az IDA SDK?
0xC0000022L
2013-04-29 06:12:29 UTC
view on stackexchange narkive permalink

Az előző kérdésemben eredetileg ezt kértem, de mivel a kérdés ezen aspektusát teljesen figyelmen kívül hagyták, kénytelen vagyok külön feltenni.

Bizonyos tények eseményekre nyilvánvalóan nem terjed ki az IDA SDK. A fenti összekapcsolt kérdésben megtudtam, hogy az elülső és a hátsó megjegyzéseket támogatják, de mi a helyzet más eseményekkel, például amikor megnyomom a h gombot (pl. A 2Ah -ból 42 kód>) a szám megváltoztatására 10-es (és vissza) alapra, vagy r -re, hogy karakterként jelenjen meg (pl. a 2Ah -ból * lesz). / p>

Hogyan keresném ezeket?

Megjegyzés: általában ez a kérdés az IDA verziókra is vonatkozna, mielőtt azok támogatnák az adott eseményről szóló értesítést. . Például. az IDA SDK 6.4 Igor szerint bejelentette az elülső és a hátsó megjegyzéseket. Hogyan érhetem el a régebbi verziókat és a 6.4-et a w.r.t. ezek az események a cooperREate -vel együtt?

Tudom, hogy megengedett maga az IDA mérnökök visszafejtése, ezért amit keresek, azok mutatók.

Abban az esetben, ha még nem látta, a Dumpinfo.idc jó kezdet lehet. Itt van egy [link] (https://www.hex-rays.com/products/ida/support/freefiles/dumpinfo.idc) a J.C. Roberts által létrehozott IDC szkripthez. Nem vagyok biztos benne, hogy megválaszolja-e a kérdéseit, ezért hozzászólásként.
@alexanderh: nem, erről még nem tudtam. Köszönöm a mutatót. Minden bizonnyal kiindulópontnak tűnik.
Úgy gondolom, hogy erre a kérdésre az egyetlen lehetséges válasz a "fordított tervezés". Fedezze fel a mechanizmust, amellyel az Önt érdeklő művelet elindul, majd javítsa ki az IDA-t (vagy használjon DLL-injekciót stb.) Valamiféle egyedi értesítés küldéséhez. Kétlem azonban, hogy ilyen könnyű lesz; számíthat arra, hogy több kódút is felelős ugyanazért a műveletért. Remélem, ha ilyen egyszerű lenne, a Hex-Rays maguk adnák hozzá az értesítéseket.
Egy válasz:
NirIzr
2013-06-01 03:20:56 UTC
view on stackexchange narkive permalink

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.

Köszönjük, hogy időt szán a válaszra. Ez egy jó kezdet abban az irányban, amelyben Rolf tartja az egyetlen megvalósítható módszert.


Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...