Имеется файл с ассемблерными инструкциями:
[SECTION .text]
BITS 32
global_start:
_start:
jmp GetCommand
Command_Return:
pop ebx
xor eax, eax
push eax
push ebx
mov ebx, 0x77755210
call ebx
xor eax, eax
push eax
mov ebx, 0x77739fe0
call ebx
GetCommand:
call Command_Return
db "REG DELETE HKCU\keys /v key"
db 0x00
, где 0x77755210 - адрес WinExec в Kernel32.dll, 0x77739fe0 - адрес ExitProcess в том же Kernel32.dll.
Так вот, суть кода (в теории) заключается в удалении флага из реестра.
Чтобы получить .exe файл, я использую nasm и линкер (это так называется?) GoLink.
Компилю следующими командами:
nasm -f win64 test.asm
golink test.obj kernel32.dll user32.dll test.exe
Получаю на выходе exeшник, и при его запуске, как я понял, из реестра должен удаляться заданный флаг, но этого не происходит. Подскажите пж, в чем может быть проблема?