Quote:
|
Originariamente inviato da Dr Nick Riviera
Ho dato un po' una lettura a questo file di testo, sono arrivato alle import table e viene fatto l'esempio con notepad.exe.. Intanto l'esempio non corrisponde a quello che faccio io.. cioè, lui dice che RVA è 00006000 e invece a me viene 00007604...
|
si vede che hai una build diversa, nulla di strano; da me per esempio la IAT di Blocco Note si trova all'RVA 0x00001000, e la IDT all'RVA 0x00006650. tu a quale "Import Table" ti riferisci?
Quote:
|
quindi lui dice che sono già allineati e invece non è così..
|
allineati in che senso? allineati al page bound? mica deve per forza essere così... non vedo che problemi ti crei se una struttura dati si trova ad un indirizzo piuttosto che un altro.
Quote:
|
e non capisco come si faccia l'allineamento dato che non lo spiega..
|
tu non devi mica modificare l'exe; se la IAT o la IDT del tuo Blocco Note non è allineata al page bound chissene
Quote:
|
inoltre poi con il debugger vengono mostrate le dword a gruppi di 5 e dice che la prima dword riguarda una unoin: IMPORT FLAGS or OriginalFirstThunk
|
ok, quindi ti riferisci alla IAT, non alla IDT.
Quote:
|
e il valore di questo punta a un indirizzo che contiene le funzioni importate.. ma io non lo trovo sul debugger..
|
che vuol dire non lo trovi scusa...

tu vai a consultare la IAT originale, ok? leggi la prima entry; leggi il primo DWORD della prima entry; quel DWORD ti da tutte le informazioni necessarie per trovare il nome oppure la hint di quella funzione (non sempre le funzioni vengono importate "by name"). dopodiché, vuoi sapere il nome o la hint dell'N-esima funzione importata? fai la stessa cosa per l'N-esima entry della IAT.
deve funzionare per forza, se non va avrai sbagliato qualcosa.