Domanda:
IDA Pro Ridenominazione delle importazioni
IChooseYou
2014-08-25 22:33:56 UTC
view on stackexchange narkive permalink

Questo file PE distrugge la sua tabella degli indirizzi di importazione. Tuttavia, tutti gli indirizzi delle funzioni si trovano in questo segmento _rdata qui:

rdata_segment

Qualche modo diretto per rinominare queste funzioni?

Tre risposte:
Jason Geffner
2014-08-25 22:36:21 UTC
view on stackexchange narkive permalink

Prima di eseguire il dump della memoria del processo su disco, utilizzare uno strumento come Scylla per ricostruire la tabella di importazione.

Scylla

Igor Skochinsky
2014-08-25 22:47:39 UTC
view on stackexchange narkive permalink

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. * /  
user19438
2017-03-09 07:21:30 UTC
view on stackexchange narkive permalink

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.

https: // github .com / volatilityfoundation / volatility / wiki / Command% 20Reference% 20Mal # impscan



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...