Per aggiungere una MessageBox che prima non esisteva in un eseguibile compilato ci sono diverse cose che devi considerare:
Non ho mai usato PETools per cui non so dirti se e' normale che venga inizializzata con quelle istruzioni.
- MessageBox[A|W] e' presente nella IAT?
- Si
- ; ... push parametri a MessageBoxA
- call MessageBoxA
- No
- push ptr->"user32.dll"
- call LoadLibraryA
- push ptr->"MessageBoxA"
- push eax ; hModuleUser32
- call GetProcAddress
- ; ... push parametri a MessageBoxA
- call eax
- Si
- Le stringhe da passare come parametro sono:
- Aggiunte in .rdata
- push puntatore
- Direttamente nel codice (es. spezzettate in DWORD ed assemblate a runtime)
- Aggiunte in .rdata
Non ho mai usato PETools per cui non so dirti se e' normale che venga inizializzata con quelle istruzioni.