C'è uno strumento che analizza e può evidenziare cosa significa ogni riga di codice. Non sto cercando un decompilatore come quello del decompilatore Hex-Rays. Sto cercando uno strumento semplice che possa essere di aiuto nella lettura del codice assembly.Smontaggio braccio
risposta
Che dire dell'utilizzo di objdump?
$ cat add.c
int add(int a, int b) {
return a + b;
}
$ arm-linux-gnueabihf-gcc -c -O2 add.c
$ arm-linux-gnueabihf-objdump -d add.o
add.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <add>:
0: 1840 adds r0, r0, r1
2: 4770 bx lr
Può fornire il codice sorgente di miscelazione e se il file oggetto contiene le informazioni di debug (gcc-g) e se si fornisce -S a objdump.
Che dire di questo programma gratuito :: http://pel.hu/armu/
Websense blocca l'URL: "- ( – tecMav
Il Disassembler Online (APS) supporta ARM e una miriade di altre architetture. È possibile inserire dati binari nella Vista dal vivo e osservare la comparsa del disassemblaggio durante la digitazione, oppure è possibile caricare un file da smontare. Una bella caratteristica di questo sito è che puoi condividere il link per lo smontaggio con gli altri.
" La dimensione massima di caricamento è 256 KB ":( – m0skit0
Come lei ha ricordato nella sua interrogazione, IDA Pro può inserire lo smontaggio troppo.
Inoltre, hai provato ARM DS-5 Development Studio?
Alcune funzionalità sono più correlate all'hardware, ma IDE è molto bello (eclissi).
Caratteristiche: Supporto
- debug per bare-metal, RTOS e Linux e piattaforme Android
- non intrusiva ETM ciclo-accurate e PTM traccia istruzioni
- Supporto completo per i sistemi SMP
- Sessioni di debug automatizzate per cicli di debug più rapidi
- Traccia di strumenti ITM e STM
- Supporto per preconcetto figurati e personalizzati piattaforme
Nel manuale si dice contenga:
- DS-5 Debugger, che copre tutte le fasi di sviluppo del prodotto
- ARM Compiler 5.04 per il codice embedded e bare-metal
- Linaro GCC Toolchain 2013.03 per applicazioni Linux e kernel Linux
- Analizzatore di prestazioni ARM Streamline ™ per vari sistemi operativi, tra cui Linux, Android e RTX
- Eclipse IDE, editor di codice sorgente e responsabile del progetto
- piattaforme virtuali fisse (FVP) per Cortex ™ -A8 e processori quad-core Cortex-A9
- progetti di esempio e documentazione
- 1. Come funziona lo smontaggio delle istruzioni del braccio 'BL'?
- 2. Croce compilazione per il braccio
- 3. Come visualizzare lo smontaggio in Code :: Blocks?
- 4. Smontaggio di sezioni in un programma c
- 5. Come verificare l'esistenza di NEON a braccio?
- 6. Esempio di codice C che dimostra la volatilità nello smontaggio?
- 7. cercando di capire i principali smontaggio prime istruzioni
- 8. Segfault: e lo smontaggio è diverso tra objdump e gdb
- 9. argomento printf Mysterious durante lo smontaggio programma c
- 10. Braccio di montaggio - più ordine push/pop e SP
- 11. braccio-nessuno-EABI-gcc 4.8 errore di segmentazione (ChibiOS-RT)
- 12. problemi di compilazione oggetto usando il braccio-linux-androideabi-gcc
- 13. C'è un nuovo clone di reliquia per braccio (Raspberry PI)?
- 14. Assieme braccio - Funzione di chiamata con più di 4 argomenti
- 15. boost :: program_options si blocca sul braccio "a volte"
- 16. Perché manca "se" con un braccio solo da Racket?
- 17. IntelliJ: mostra lo smontaggio della classe decompilata anche quando è presente la sorgente
- 18. Quali sono queste istruzioni per lo smontaggio extra quando si utilizzano gli intrinsechi SIMD?
- 19. Come si visualizza lo smontaggio di un delegato creato compilando un albero di espressioni?
- 20. In che modo il modello di memoria del braccio è diverso da ia64?
- 21. In che modo la modalità di sistema ARM è diversa dalla modalità di supervisione braccio?
- 22. braccio-nessuno-EABI-gcc con cmake non ha punto di ingresso con la bandiera -nostdlib
- 23. Come arrivare N righe a partire dal braccio della M dalla tabella ordinata in T-SQL
- 24. Braccio/Pollice: utilizzando BX in Thumb code, per chiamare una funzione Thumb, o per passare a un'istruzione Thumb in un'altra funzione
- 25. flusso dal setup alla demolizione in robotium
- 26. Come posso ottenere Eclipse per trovare e utilizzare una toolchain basata su gcc in una posizione non standard
- 27. . L'assemblaggio netto aggiunge il superfluo E quando si imposta il bool su TRUE?
- 28. Libreria di disassemblaggio usata da objdump
- 29. crescente sequenza decrescente
- 30. Librerie API MySQL C per iPhone
il braccio braccio (ARM Manuale di riferimento dell'architettura) per l'architettura specifica (o per ottenerne una più recente in quanto specificherà le differenze di architettura) dettagli su ciascuna istruzione. objdump + ARM ARM è tutto ciò di cui hai bisogno. –
concordato. Lo strumento è quello di integrare e salvare quei preziosi minuti quando si sta eseguendo un programma stretto. – tecMav
il set di istruzioni non è complicato, con una sola occhiata al documento, normalmente non è necessario tornare indietro. Potresti aver imparato le istruzioni impostate più volte nel tempo necessario per cercare e aspettare una risposta a questa domanda. –