Questo file PE distrugge la sua tabella degli indirizzi di importazione. Tuttavia, tutti gli indirizzi delle funzioni si trovano in questo segmento _rdata
qui:
Qualche modo diretto per rinominare queste funzioni?
Questo file PE distrugge la sua tabella degli indirizzi di importazione. Tuttavia, tutti gli indirizzi delle funzioni si trovano in questo segmento _rdata
qui:
Qualche modo diretto per rinominare queste funzioni?
Prima di eseguire il dump della memoria del processo su disco, utilizzare uno strumento come Scylla per ricostruire la tabella di importazione.
Mentre sei nel debugger, seleziona la tabella di importazione ed esegui idc\renimp.idc
.
Primo commento dal file:
/ * Rinomina le importazioni. Questo script rinomina le voci di una tabella di importazione creata dinamicamente. Ad esempio, da una tabella come questa: dd compensato ntdll_NtPowerInformation dd compensato ntdll_NtInitiatePowerAction dd compensato ntdll_NtSetThreadExecutionState dd compensato ntdll_NtRequestWakeupLatency dd compensato ntdll_NtGetDevicePowerState dd compensato ntdll_NtIsSystemResumeAutomatic dd compensato ntdll_NtRequestDeviceWakeup dd compensato ntdll_NtCancelDeviceWakeupRequest dd compensato ntdll_RtlQueryRegistryValues si creerà una tabella come questa: NtPowerInformation dd compensato ntdll_NtPowerInformation NtInitiatePowerAction dd Offset ntdll_NtInitiatePowerAction NtSetThreadExecutionState dd compensato ntdll_NtSetThreadExecutionState NtRequestWakeupLatency dd compensare ntdll_NtRequestWakeupLatency NtGetDevicePowerState dd compensato ntdll_NtGetDevicePowerState NtIsSystemResumeAutomatic dd compensato ntdll_NtIsSystemResumeAutomatic NtRequestDeviceWakeup dd compensato ntdll_NtRequestDeviceWakeup NtCancelDeviceWakeupRequest dd compensato ntdll_NtCancelDev iceWakeupRequest RtlQueryRegistryValues dd offset ntdll_RtlQueryRegistryValues Utilizzo: seleziona la tabella di importazione ed esegui lo script. Problemi noti: se il nome della dll contiene un trattino basso, i nomi delle funzioni potrebbero essere errati. Viene prestata particolare attenzione a ws2_32.dll ma altre DLL avranno nomi di funzione errati. * /
Molto probabilmente stai utilizzando un dump del processo. quegli indirizzi dipenderanno dalla versione di Windows e dal service pack. Se hai avuto la possibilità di eseguirlo in una VM, prova la volatilità. fare un procdump quindi impscan. impscan può darti un idc che rinomina quegli indirizzi con i rispettivi nomi API.
questo metodo funziona bene anche con codici non inseriti in PE.