Domanda

Devo intercettare esecuzione in molto grande applicazione in molti luoghi.

Quali programmi posso usare per fare questo? Quali tecniche esiste per questo problema?

manualmente il reverse engineering e ganci aggiunta è forse soluzione non ottimale per questo problema, perché l'applicazione è molto grande e una parte di applicazione può essere aggiornata in un certo tempo, penso che con alcuni strumenti o buone pratiche per questo problema che ho può fare questo più veloce , qualcuno sa come fare?

Qualcuno mi aiuta?

È stato utile?

Soluzione

visto che la parte strumenti è stato coperto, qui è qualcosa per le tecniche.

A seconda di cosa si tratta è necessario collegare e se non esiste una protezione invloved, ci sono alcuni metodi:

  1. chiamata relativa / JMP patch nel binario virtualizzato: questo è il più semplice, ma anche un sacco di lavoro se non è in grado di trovare automaticamente tutti i riferimenti a una funzione, questo probabilmente non funziona in questa causa a causa i vostri criteri.

  2. IAT / EAT agganciando: questo è uso per le importazioni (IAT) e delle esportazioni (EAT), grande se il targeting di un noto importted insieme / esportazione di funzioni API. un buon esempio di questo può essere trovato qui o qui

  3. Hot-patching: Windows XP SP2 ha introdotto qualcosa chiamato "hot-patching" (utilizzato per gli aggiornamenti funzionali di sistema in tempo reale), in cui tutte le funzioni la sua (il WinAPI) iniziano con un 'mov edi, edi', permettendo una salto rispetto a essere patchato nello spazio libero creato sopra ogni funzione hot-patchable ( si può farlo anche ). Questo è generalmente utilizzato per i programmi che ci checksum IAT del o avere altre forme divertenti di protezione, maggiori informazioni si possono trovare qui e qui

  4. Codice-Speleologia: cattura flusso di esecuzione mettendo ridirezioni nello spazio di codice arbitrario. vedi qui , qui o qui

  5. VFT / COM reindirizzamento: fondamentalmente voci sovrascrittura in una tabella di oggetti funzione virtuale, utile per / com applicazioni basate OOP. vedi questo

Ci sono un sacco di librerie 3rd party, più famoso probabilmente sarebbe MS Detours , si può anche guardare APIHijack o un motore mini-gancio .

Naturalmente nulla può sostituire la frugando iniziale, è necessario fare con un debugger come OllyDbg , ma conoscendo il metodo per l'utilizzo da andando può drasticamente breve loro il tempo quantità tempo trascorso rovistando

Altri suggerimenti

Alcuni dettagli su cosa esattamente dovete fare (ad esempio, come si fa a determinare dove a rompere) sarebbe bello. A seconda della situazione, qualcosa di simile a Pin lavoro potrebbe.

Io suggerisco di usare Deviare API Hook . E 'il modo più semplice che si può fare quello che ti serve. Ha alcuni oggetti COM che è possibile utilizzare per collegare un'applicazione da un processo diverso. Nel processo si ottiene informazioni complete dei parametri e si può utilizzare in qualsiasi linguaggio di programmazione (sto usando C # e funziona come un fascino). Se avete bisogno di API del Registro di intercettare Propongo di usare Deviare per eseguire il debug ciò che è necessario intercettare, ma poi si dovrà fare i propri ganci, in caso contrario, troverete problemi di prestazioni.

Si può fare API Hooking Se siete interessati a intercettare le chiamate di metodo.

o usare qualche disassembler come softice o OllyDbg o Win32Dasm .

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