A bináris kód szétszerelése meglehetősen nehéz téma, de egyelőre csak két (naiv) algoritmust látszik széles körben használni az eszközökben.
- Linear Sweep : Alapvető algoritmus, amely az összes kód ként megjelölt szakaszt felveszi és szétszedi az utasítások egymás utáni elolvasásával.
- Rekurzív áthaladás : Finomítsa a lineáris söprést emlékeztetve arra, hogy mikor (és hol) vettek fel egy
hívást
, és visszatérve az utolsóhívásra
, amikor találkozunk egyret
-val.
Ezen algoritmusok leírása meglehetősen homályos. A való életben használt eszközökben kissé finomították őket a szétszerelés pontosságának javítása érdekében.
Például a objdump
lineáris seprést végez, de az összes szimbólumból indul (és nem csak a kód
-ként megjelölt szakaszok elejéből.
Tehát valaki adhat reálisabb leírást a rekurzív bejárási algoritmusról ( eg mivel az IDAPro kódolja)?