Затирание кода

Тема в разделе "WASM.WIN32", создана пользователем palevo060, 15 окт 2009.

  1. palevo060

    palevo060 New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2009
    Сообщения:
    8
    Доброго времени суток. Хотелось бы узнать на счет такой программки, как вот сдесь в низу. Она затирает код int 20h и ставит на его место 9090h( nop nop) и продолжает выполнять код.
    Код (Text):
    1. CSEG segment
    2.  assume cs:CSEG, es:CSEG, ds:CSEG, ss:CSEG
    3.  org 100h
    4.  Begin:
    5.  mov sp,offset Lab_1
    6.  mov ax,9090h
    7.  push ax
    8.  int 20h
    9.  Lab_1:
    10.  mov ah,9
    11.  mov dx,offset Mess
    12.  int 21h
    13.  mov ax,1h
    14.  int 16h
    15.  int 20h
    16.  Mess db 'This wery good!$'
    17.  CSEG ends
    18. end Begin
    Теперь вопрос почему тотже трюк не выходит под WinApi

    Код (Text):
    1. .386
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5. include \masm32\include\windows.inc
    6. include \masm32\include\Kernel32.inc
    7. includelib \masm32\lib\Kernel32.lib
    8. include \masm32\include\user32.inc
    9. includelib \masm32\lib\user32.lib
    10.  
    11.  
    12. .DATA
    13. MessageGood db 'Получилось',0
    14. .CODE
    15. start:
    16.  mov esp,offset Lab_1
    17.  mov eax,90909090h
    18.  push eax
    19.  nop
    20. invoke ExitProcess,0
    21.  Lab_1:
    22. invoke MessageBox,0,addr MessageGood,addr MessageGood,MB_OK
    23. invoke ExitProcess,0
    24. END start
     
  2. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Ну во-первых invoke ExitProcess,0 больше, чем четыре байта, а во-вторых чтобы писать в код нужно, чтобы секция кода имела разрешение для записи, чего, я так подозреваю, тоже нет.
     
  3. palevo060

    palevo060 New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2009
    Сообщения:
    8
    И как получить этот доступ?
     
  4. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    при компиляции указать /SECTION:.text, RWE
     
  5. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    *Вру, конечно же при линковке =)
     
  6. palevo060

    palevo060 New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2009
    Сообщения:
    8
    Огромное Пасиб помогло))