Как проект университета безопасности, я должен закодировать PE-инфекцию. Но я новичок в сборке, поэтому у меня многократный сбой из-за моего незнания того, как обрабатывать переменные.Доступ к переменным в сборке (MASM32)
Я знаю, что в обычной программе есть раздел .data для инициализированных переменных и .data? для неинициализированных переменных.
Но в этом случае каждый учебник, похоже, согласен с тем, что переменные должны быть определены в разделе .code.
Что приводит к чему-то вроде этого:
.386
.model flat, stdcall
option casemap:none
include \masm32\include\masm32rt.inc
.code
start:
mov stuff, 1
ret
stuff dd ?
end start
К сожалению, это приводит к ошибке сегментации, и я не могу понять, почему.
В качестве другого примера:
.386
.model flat, stdcall
option casemap:none
include \masm32\include\masm32rt.inc
.code
start:
invoke MessageBoxA, 0, offset hello, offset hello, MB_OK
ret
hello db "Hello buddy", 0
end start
Это один не компилируется, так как переменная привет неизвестна на компиляции (сборки: р) время, которое кажется законным для меня, но потом ... что путь?
Это странно, но первая строка моего сообщения систематически удаляется, даже если я ее редактирую ... но я действительно приветствовал: p – FTW
В соответствии с политикой сайта вы не должны добавлять приветствия, такие как «Hello», и «Спасибо за вашу помощь» на ваш пост. Вероятно, поэтому сайт автоматически удаляет эти (?) – fuz
oh ... okay then – FTW