Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Capitolo 1

Home » Programma il Computer » Tutorial Assembly

Capitolo 1 - Il processore - Il Debugger

  Il Processore e il Debugger

DEBUG 12/22 [40 di 60] 

    

 

Aggiornato  24 settembre 2003 e 17 febbraio 2005
    Comando S -  Cerca in memoria 
     
bulletIl comando S (SEARCH, cerca) si dimostra spesso utile, non tanto per cercare stringhe, per le quali è perfettamente abilitato, ma soprattutto per cercare determinate sequenze di bytes; l'esperienza dimostra che con esso è possibile trovare tutti i punti di un programma in cui viene, per esempio, chiamata una certa procedura di sistema.
bulletCome è noto ogni istruzione è codificata con uno o più bytes, di solito un codice operativo e un operando; a forza di ficcare il naso nei programmi eseguibili con il buon vecchio debug non ci vuole molto tempo per imparare i principali accoppiamenti tra istruzioni e relativi bytes.
bulletCosì, per esempio, può essere utile sapere in quali punti un dato programma cita l'istruzione INT 10H, codici CD 10; niente di più facile: basta coinvolgere questo comando specificando l'indirizzo (offset) iniziale e finale e la sequenza di bytes da cercare.
bulletL'immagine seguente mostra il risultato della ricerca in una zona di memoria in cui è stato caricato un programma prova.com in dotazione nella cartella di lavoro, che usa questa istruzione 10 volte:
              
Apri una finestra DOS su Arch-Lab Se fai click sull'icona a sinistra si apre l'Ambiente Assembly e puoi provare DEBUG  on-line.
S
cegli il pulsante di opzione "Aprire il file" o "Esegui l'applicazione"  e conferma con OK.
NB: alcuni gestori di protezione (per esempio SP2 di WinXP) non ti consentono questa operazione:
in questo caso scrivi
c:\arch-lab\bin\sys\assembler.pif direttamente nel campo indirizzo del Browser

      

bulletSe la coppia di bytes non viene trovata il comando non produce (ovviamente) effetto: nel nostro caso, invece viene elencata la sequenza degli indirizzi in cui la coppia viene trovata. 
bulletNon serve sottolineare che, in realtà, l'indagine da per certo il rilevamento della coppia di bytes richiesta, CD 10, in 10 punti (indirizzi) della memoria sottoposta a test; questo non significa che, in quei punti, sia presente l'istruzione INT 10H, ma la cosa è altamente probabile
bulletPuò succedere infatti che la sequenza dei 2 bytes sia quella di un operando o di qualche dato casualmente coincidente; per avere certezza del risultato è necessario analizzare anche i bytes nell'intorno dell'indirizzo scoperto dal comando S, sebbene, come detto, raramente si abbiano brutte sorprese!

      

bulletIl comando S è particolarmente versatile; come anticipato il suo terzo parametro può essere di diverso tipo; oltre alle sequenze di bytes possono essere cercate anche stringhe Ascii di qualunque lunghezza; la cosa è particolarmente utile per trovare, per esempio, la zona dei messaggi di un dato programma. L'esempio che segue riprende l'analisi della pagina dedicata al comando D, in cui si suggeriva la ricerca dei messaggi del dos: l'osservazione della figura mostra la presenza della parola "Inserire" in più posizioni ; vediamo come se la sbriga il comando S:
              

      

bulletFavoloso: 2 parole presenti, 2 parole trovate! Il comando D conferma il rilevamento agli indirizzi trovati dal comando S. Come si può notare il comando è stato passato sotto forma di indirizzo iniziale, lunghezza
bulletPer finire possiamo ricordare che, sebbene sia particolarmente ridicolo, l'indagine può essere condotta anche per la ricerca di un singolo carattere o di un singolo byte; per esempio avendo riempito di asterischi l'area
              

    

Pagina Precedente Capitolo 1 Pagina Successiva DEBUG 12/22   Torna alla Home  del Capitolo1 del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
40 di 60
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

    

CAP. 1 » 1. Processore 80x86 2. Istruzioni 80x86  3. Debug  4. La Grande Libreria
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati