# # Builds the shellcode for AMD64/x86. # CC_X64 := x86_64-w64-mingw32-gcc CC_X86 := i686-w64-mingw32-gcc LINK64 := misc/link_x64.ld LINK32 := misc/link_x86.ld OUTX64 := shellcode.x64.exe OUTX86 := shellcode.x86.exe EXTX64 := EntryPointSc.x64.o EXTX86 := EntryPointSc.x86.o BINX64 := TransitionalPeriod.x64.bin BINX86 := TransitionalPeriod.x86.bin SOURCE := source/*.c EXTASM := source/asm/EntryPointSc.asm CFLAGS := -Os -fno-asynchronous-unwind-tables CFLAGS := $(CFLAGS) -nostdlib -fno-ident CFLAGS := $(CFLAGS) -fpack-struct=8 -falign-functions=1 CFLAGS := $(CFLAGS) -falign-jumps=1 -falign-labels=1 -falign-loops=1 CFLAGS := $(CFLAGS) -flto LFLAGS := -Wl,-s,--no-seh,--enable-stdcall-fixup all: $(EXTX86) $(EXTX64) $(OUTX86) $(OUTX64) $(BINX86) $(BINX64) clean: rm -rf $(OUTX64) $(OUTX86) rm -rf $(EXTX64) $(EXTX86) rm -rf $(BINX64) $(BINX86) # # x86 BIN # $(BINX86): python misc/pedump.py $(OUTX86) $@ # # x86 OBJ # $(EXTX86): nasm -f win32 $(EXTASM) -o $@ # # x86 EXE # $(OUTX86): $(CC_X86) $(SOURCE) $(EXTX86) -o $@ $(CFLAGS) $(LFLAGS),-T$(LINK32) # # x64 BIN # $(BINX64): python misc/pedump.py $(OUTX64) $@ # # x64 OBJ # $(EXTX64): nasm -f win64 $(EXTASM) -o $@ # # x64 EXE # $(OUTX64): $(CC_X64) $(SOURCE) $(EXTX64) -o $@ $(CFLAGS) $(LFLAGS),-T$(LINK64)