Code:
012417C0 FF15 00202401 call near dword ptr [1242000]
Dein Problem sind dieses Mal die Imports. Die RVA der Import Table ist inkorrekt, weshalb die IAT nicht erzeugt wird.
Deine Import-Table liegt in .rdata, welche nun an 0x3000 liegt (die RVA 0x2234 ist also nicht mehr richtig). Richtig wäre 0x3234 und entsprechend die Anpassung der RVAs in der Tabelle selbst. Ich nehme an, dass du daran schon arbeitest.
Des Weiteren musst du alle Referenzen im Code (siehe obigen Codeblock) auf die neue VA der IT (und somit auch der IAT, siehe IT.FirstThunk) abändern.
Üblicherweise sind es nur folgende Pattern, die du lokalisieren und abändern musst (von der Fehleranfälligkeit her ist dieser Ansatz recht unbedenklich):
Code:
call dword ptr [__imp]
jmp dword ptr [__imp]
mov reg32, dword ptr [__imp]
Deshalb kannst du die IT-Section nicht ohne Weiteres vertauschen.
Schön, dass du nicht aufgegeben hast.
edit: Was ich noch fast vergessen hätte (was einem im IRC nicht alles einfällt): Referenziert beispielsweise deine .text-Section Variablen in einer anderen Section (.data/.bss/...), musst du diese Verweise natürlich auch noch anpassen, was wiederum auf eine hundertprozentig korrekte Disassembly hinausläuft.
Damit (Imports und Daten) sollten aber so ziemlich alle üblicheren Zugriffe in eine andere Section abgedeckt sein.