See the source code of nanoasm.exe. The compiler (nanoasm.exe) did not find integer 0x90C3C033 in the executable module. When I compiled nanoasm.exe, this integer was the start of "int _cdecl Proc(void *GetProcAdr)" function: (my array.c file) >>>0x33, 0xC0, 0xC3, 0x90<<<, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, This integer means "xor eax, eax; ret; nop".
When the compiler has found this integer, it inserts number "0xE9 XXXXXXXX" into the output code instead of 0x90C3C033. It means "jmp <address, 32bit>".
I think, the compiler, which is used by you, makes something different. You need to know the four bytes which starts Proc function. Then you should correct the file "nanoasm_win32.c" by replacing 0x90C3C033 with your number. And, I think, it will work after this.
Hi, followed your howto and got it compiled with VC6 and Dev-C++. But when I compile test.nasm with it there is the error:
nanoasm compiler for win32 version 1.0 (C) 2007, Alexander G. Karpov a.k.a. mrhx visit author`s website: http://mrhx.narod.ru/
open the file "test.nasm"... ok allocate memory 7288 bytes... ok reading the file 7287 bytes... ok check the length of output data... output length is 189 allocate memory for output buffer 189 bytes... ok compile the program... ok mode: exe... create or open output file "test.exe"... ok old size: image 24576 code 2560 internal data error #1