ich spiele gerade ein wenig mit IDA Pro und würde den Erzeugten Code gerne wieder mit MASM assemblieren, doch irgendwie will er nicht.
Aber mal von Anfang an, ich habe eine einfache Konsolenanwendung erstellt.
Code: Alles auswählen
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
printf( "Hallo Welt!" );
return 0;
}
Dann mit IDA Pro 5.1 Dissasembliert und als ASM gespeichert.
Aber MASM mag den code nicht
Code: Alles auswählen
D:\asm\ASMTest>ml ASMTest_0003.asm
Microsoft (R) Macro Assembler Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
Assembling: ASMTest_0003.asm
ASMTest_0003.asm(132) : error A2027: operand must be a memory expression
Code: Alles auswählen
___tmainCRTStartup proc near ; CODE XREF: start+5j
Code = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h ;; <-- ASMTest_0003.asm(132) : error A2027: operand must be a memory expression
push 10h
push offset unk_4021C8
call __SEH_prolog4
xor ebx, ebx
mov [ebp+ms_exc.disabled], ebx
Code: Alles auswählen
CPPEH_RECORD struc ; (sizeof=0x18, standard type)
old_esp dd ?
exc_ptr dd ? ; offset
prev_er dd ? ; offset
handler dd ? ; offset
msEH_ptr dd ? ; offset
disabled dd ?
CPPEH_RECORD ends