Я хочу кросс-компилировать шаблон Metasploit (на ассемблере) для 64-битной Windows на Kali Linux.
Я пытаюсь скомпилировать из сборки в exe.
Вот код -
; Author: Stephen Fewer (stephen_fewer[at]harmonysecurity[dot]com)
; Architecture: x64
;
; Assemble and link with the following command:
; "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\x86_amd64\ml64" template_x64_windows.asm /link /subsystem:windows /defaultlib:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64\kernel32.lib" /entry:main
extrn ExitProcess : proc
extrn VirtualAlloc : proc
.code
main proc
sub rsp, 40 ;
mov r9, 40h ;
mov r8, 3000h ;
mov rdx, 4096 ;
xor rcx, rcx ;
call VirtualAlloc ; lpPayload = VirtualAlloc( NULL, 4096, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE );
mov rcx, 4096 ;
mov rsi, payload ;
mov rdi, rax ;
rep movsb ; memcpy( lpPayload, payload, 4096 );
call rax ; lpPayload();
xor rcx, rcx ;
call ExitProcess ; ExitProcess( 0 );
main endp
payload proc
A byte 'PAYLOAD:'
B db 4096-8 dup ( 0 )
payload endp
end
Я использую w64-mingw32 и могу скомпилировать 32-битные файлы c командой i686-mingw32msvc-gcc xxx, но у меня возникают проблемы с компиляцией 64-битной сборки.
Существует так много разных вариантов для w64-mingw32, я пробовал множество, все с сообщениями об ошибках. Если честно, я не делал сборку, так как у меня был Commodore 64.
Я пытаюсь -
x86_64-w64-mingw32-gcc -c template_x64_windows.asm -o file.o
И сообщение об ошибке -
template_x64_windows.asm: linker input file unused because linking not done
Я даже не знаю, какой вариант будет компилировать сборку, я проверил в Интернете, как это сделать, ничего.