incbin for MSVC
2023-05-20
We have the following C program we'd like to link (main.c):#include <stdio.h> extern int fuck(void); extern char paypal[]; extern char paypalEnd[]; int main(){ printf("%d\n%.*s\n",fuck(),paypalEnd-paypal,paypal); return 0; }
nasm:
64 bit:
global fuck global paypal global paypalEnd section .text fuck: mov eax,5 ret section .data paypal: incbin "paypal.txt" paypalEnd:Assemble with:
nasm -f win64 fuck.na
Build with MSVC 64 bit:
cl /nologo /O1 /FC /w main.c fuck.obj
32 bit:
global _fuck global _paypal global _paypalEnd section .text _fuck: mov eax,5 ret section .data _paypal: incbin "paypal.txt" _paypalEnd:Assemble with:
nasm -f win32 fuck.na
Build with MSVC 32 bit:
cl /nologo /O1 /FC /w main.c fuck.obj
fasm:
64 bit:
format MS64 COFF public fuck public paypal public paypalEnd section '.text' code readable executable fuck: mov eax,5 ret section '.data' data readable writeable paypal: file 'paypal.txt' paypalEnd:Assemble with:
fasm fuck.fa
Build with MSVC 64 bit:
cl /nologo /O1 /FC /w main.c fuck.obj