PDA

View Full Version : Osservare il comportamento di un programma


Heian
22-10-2010, 16:10
Sto cercando un software in grado di tracciare il comportamento dei miei programmi .exe del tipo:

-Visualizzare quali librerie di sistema carica ( ad esempio sotto windows )

-Che parametri passa ai programmi tipo rundll32.exe o al registro o ad altri eseguibili se previsti al suo interno... tipo se gli faccio eseguire un "dir d:\" e memorizzo l'output su un file... si può vedere questo passaggio ad esempio in memoria passo passo mentre lo sta facendo e riconoscere i file che genera ?

-Quali chiamate fa ai processi di sistema se previste al suo interno e visualizzarne i nomi dei file richiamati

etc...

insomma esiste una specie di "debugger di sistema" o "traccia eventi" con la possibilità di vedere in tempo reale il comportamento del programma ?

rEDTUNING
22-10-2010, 20:36
Non so se ho capito bene quello che cerchi, comunque con un debugger puoi vedere tutti i passaggi che effettua il tuo programma e fanno uso di disassembler integrati che scompongono il tuo eseguibile in codice assembly per farti vedere in modo visuale step per step i passaggi, servono dunque ad analizzare il programma nelle singole istruzioni e verificarne il comportamento...in alcuni debugger puoi vedere i caricamenti delle dll o chiamate di sistema, processi correlati e quant'altro...certo detto così è semplice ma bisogna saperli usare, avere i concetti fondamentali di debugging e sicuramente se vuoi capire quello che sta facendo il programma conoscere l'assembler. Come debugger ne conosco uno, OllyDbg, è dotato di interfaccia grafica, se no in CLI il gdb di GNU per utenti sotto linux o l'utility "debug" sotto windows

jappilas
22-10-2010, 21:25
Sto cercando un software in grado di tracciare il comportamento dei miei programmi .exe del tipo:
-Visualizzare quali librerie di sistema carica ( ad esempio sotto windows ) debugger a parte, magari ti possono essere utili anche il Dependency Walker (http://www.dependencywalker.com/)
-Quali chiamate fa ai processi di sistema se previste al suo interno e visualizzarne i nomi dei file richiamatie il Winternals Process monitor (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx)...

tomminno
23-10-2010, 00:21
-Che parametri passa ai programmi tipo rundll32.exe o al registro o ad altri eseguibili se previsti al suo interno... tipo se gli faccio eseguire un "dir d:\" e memorizzo l'output su un file... si può vedere questo passaggio ad esempio in memoria passo passo mentre lo sta facendo e riconoscere i file che genera ?


Il file lo puoi spiare come già suggerito con ProcessMonitor.
Ma per seguire lo svolgimento del programma passo passo senza averne i sorgenti significa ricorrere ai decompilatori e... essere molto esperti di Assembly x86.

Se i tuoi eseguibili fossero in .Net e non offuscati, tramite reflector puoi riottenere perfino la soluzione di Visual Studio :D

Heian
23-10-2010, 15:51
I disassemblatori lavorano a basso livello...un po' troppo basso per i miei scopi, Process monitor fa proprio al caso mio... mi elenca tutte le interazioni degli eseguibili con il sistema operativo.

Grazie a tutti per i suggerimenti.

Riguardo l'offuscamento degli eseguibili che procedure dovrei eseguire se poi intendo produrre a fini aziendali ?

rEDTUNING
23-10-2010, 19:22
I disassemblatori lavorano a basso livello...un po' troppo basso per i miei scopi, Process monitor fa proprio al caso mio... mi elenca tutte le interazioni degli eseguibili con il sistema operativo.

Grazie a tutti per i suggerimenti.

Riguardo l'offuscamento degli eseguibili che procedure dovrei eseguire se poi intendo produrre a fini aziendali ?

si mi sa che io ho inteso la situazione in modo diverso e ti ho parlato di debug proprio a basso livello, mi disp :D