Domanda

Io lavoro per analizzare i file binari, utilizzando Python. Sono stato con debugger di fare un'analisi dinamica (vale a dire che esegue l'applicazione e l'utilizzo di punti di interruzione per ottenere l'esecuzione runtime). tuttavia, i risultati possono essere migliorata se posso usare qualche fremework strumentazione binario come PIN . Il PIN è sviluppato in C ++ e disponibile come sorgente chiuso (DLL solo). Scriviamo qualcosa chiamato PinTools non descrivono dove e che cosa che vogliamo intercettazioni. Voglio funzionalità PIN porta in Python in modo che io continuo con Python. Sono a conoscenza di "ctypes" e spinta-python.

Il mio problema è il seguente: per poter utilizzare il PIN, scriviamo una pintool ed eseguire il nostro eseguibile bibnary con Pin e pintool (è come correre applicazione con JIT). Ora, non ho idea se posso usare ctypes ecc per importare le funzioni di PIN e utilizzando questo codice python per analizzare dinamicamente il binario. Si può fornire alcuni suggerimenti o linee guida su come procedere con questo compito.

Quindi, in noce-n-shell, voglio creare un'interfaccia Python (involucro) per quadro PIN.

È stato utile?

Soluzione

Scopri il progetto ProcessTap. Appare per implementare esattamente quello che stai cercando: http://code.google.com/p/processtap/

Altri suggerimenti

Stavo pensando a questo di recente, mentre non ho guardato dentro, vorrei affrontare il problema come questo: scrivere un pintool che, dopo l'inizializzazione, inizia un interprete Python integrato e le importazioni un modulo Python. Mi piacerebbe guardare con SWIG per generare attacchi per tutte le chiamate API PIN che si desidera utilizzare. Poi il pintool sarebbe chiamare una funzione hardcoded nel modulo python importata che pubblica inviti alle API per registrare più funzioni e fare quello che vuoi fare.

Non sono sicuro di come i callback avrebbe funzionato, non so abbastanza di SWIG. Inoltre, questo potrebbe non riuscire se il programma che si sta cercando di strumento stesso utilizza Python. Ma è così che mi piacerebbe provare a risolvere questo problema per iniziare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top