CSEG segment
assume cs:CSEG, es:CSEG, ds:CSEG, ss:CSEG
org 100h
Begin:
mov sp,offset Lab_1
mov ax,9090h
push ax
int 20h
Lab_1:
mov ah,9
mov dx,offset Mess
int 21h
mov ax,1h
int 16h
int 20h
Mess db 'This wery good!$'
CSEG ends
end Begin
Затирание кода
Код:
Теперь вопрос почему тотже трюк не выходит под WinApi
Код:
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\Kernel32.inc
includelib \masm32\lib\Kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
.DATA
MessageGood db 'Получилось',0
.CODE
start:
mov esp,offset Lab_1
mov eax,90909090h
push eax
nop
invoke ExitProcess,0
Lab_1:
invoke MessageBox,0,addr MessageGood,addr MessageGood,MB_OK
invoke ExitProcess,0
END start
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\Kernel32.inc
includelib \masm32\lib\Kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
.DATA
MessageGood db 'Получилось',0
.CODE
start:
mov esp,offset Lab_1
mov eax,90909090h
push eax
nop
invoke ExitProcess,0
Lab_1:
invoke MessageBox,0,addr MessageGood,addr MessageGood,MB_OK
invoke ExitProcess,0
END start
И бедная программка падает с акцесс виолейшеном? А это чтобы не расслаблялись ибо страничной защиты никто не отменял.
Одно дело com программа, другое exe;
То Dos, а это windos;
Не зря же windows работает в ЗАЩИЩЁННОМ режиме:)
Кстати а как изменить аттрибуты страницы?
Цитата: Goodwin98
Кстати а как изменить аттрибуты страницы?
Открыть интеловские маны, правда, телодвижения осуществлять придется из нулевого кольца.
Пример:
D:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH: D:\masm32\controls\lib /SECTION:.text,RWE windows.obj
Цитата: hardcase
Открыть интеловские маны, правда, это делать придется из нулевого кольца.
А вообще,самомодификация–дело неблагодарное:того гляди,антивирус заверещит:)
Такой код пишут чаще для того чтобы помучать того, кто будет в этом коде ковыряться отладчиком. А такой игрой с атрибутами его можно помучить еще сильнее :)
Это почему же "чтоб помучать"?Я,например,писал так для того,чтоб была только 1 секция–кода.Ну и память при этом экономилась %D
Цитата:
No Comments
:)
Улыбнуло именно "ноу сомментс". Хотел написать "см. VirtualProtect", но потом увидел, что это и есть линк на MSDN.