Spørsmål:
Behandling av uavhengig kode som en funksjon i IDA Pro
amccormack
2013-03-27 05:13:19 UTC
view on stackexchange narkive permalink

Når jeg programmerer omvendt, finner jeg ofte funksjoner som den nedenfor. Spesielt denne funksjonen har et sett med nestede if / else-blokker (rosa bokser) som vanligvis vil være ganske enkle å følge. Når koden kjøres i den blå boksen, blir koden imidlertid rotete og kan ta en av to uavhengige kodebaner (lilla eller gule). Hvis utvikleren hadde brukt en funksjon (eller ikke brukt en innebygd funksjon) for de lilla eller gule kodeblokkene, ville denne koden være mye lettere å reversere. Som en funksjon kan jeg gi nytt navn og kommentere kodeblokken, og det overordnede programmet blir lettere å lese.

Min vanlige teknikk når jeg kommer over denne typen funksjoner er å bruke farger på kodeblokkene som ser du i grafen nedenfor. Er det en måte for IDA å behandle en vilkårlig samling av kodeblokker som en funksjon som ikke kalles, og / eller er det bedre tilnærminger til å håndtere integrert kode og uavhengige kodeblokker?

Large function

En svar:
Igor Skochinsky
2013-03-27 06:25:07 UTC
view on stackexchange narkive permalink

Det høres ut som det du trenger er nodegrupper. Siden den aller første implementeringen (5.0) tillot IDAs grafvisning å gruppere flere noder i en "supernode" med en tilpasset tittel. Bare velg nodene du vil gruppere med Ctrl-klikk, og velg "Gruppenoder" fra hurtigmenyen.

For mer info, se "Grafnodegrupper" i IDAs hjelp eller online.

På et eget notat vil det hjelpe å sette dine innspill til on-topic-ness / off-topic-ness her http://meta.reverseengineering.stackexchange.com/q/7/189
Hvilket er sannsynligvis utenfor emnet, spørsmålet mitt eller svaret ditt?
@amccormack Spørsmålet, siden det ikke involverer reversering i seg selv, men "hvordan du bruker et RE-verktøy". Men jeg antar at vi kunne stille slike spørsmål om emnet. Vennligst legg til tankene dine [her] (http://meta.reverseengineering.stackexchange.com/questions/52/).
@IgorSkochinsky: så mye som jeg liker (og som du vet;)) for å påpeke at dette ikke skal være for partisk til et bestemt verktøy, jeg tror disse spørsmålene burde være på emnet. Jeg la til "kommentaren" der og håper mange andre vil. Btw: du lever allerede opp til det jeg håper vil være din posisjon snart;) ... se også: http://meta.reverseengineering.stackexchange.com/questions/7
@IgorSkochinsky: Jeg er ikke sikker i og for seg, men på de fleste SE-nettsteder er det ugunstig å bare legge ut en lenke uten å sitere minst en viktig del.
@IgorSkochinsky Jeg tror spørsmålet mitt ikke gjelder metadiskusjonen du hadde listet opp. Men jeg forstår nølingen, så jeg opprettet et nytt metaspørsmål [Spør om verktøy for omvendt konstruksjon om emnet] (http://meta.reverseengineering.stackexchange.com/questions/66/is-asking-about-reverse-engineering-tools -om emnet)
Ok, alle gode poeng, la meg redigere det litt ...


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...