Содержимое стека и регистров при старте процесса Win32

Тема в разделе "WASM.BEGINNERS", создана пользователем roman_k, 27 фев 2006.

  1. roman_k

    roman_k New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2006
    Сообщения:
    4
    Адрес:
    Kursk
    Собственно subj.



    Я понимаю, что в стеке адрес возврата в kernel32.dll(откуда и передается управление стартующему процессу), спроецированной на адресное пространство процесса , SEH-фрейм.



    А что полезного оказывается при старте процесса в esi, edi, ebx? Их же вместе с ebp не рекомендуется менять в ассемберном коде...
     
  2. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    Их же вместе с ebp не рекомендуется менять в ассемберном коде...



    Можно всё!!! Их рекомендуют использовать до API вызовов и после, так как по стандарту Windows и UNIX функции общего назначения могут изменять только eax, ecx, edx, остальные регистры должны быть восстановлены после изменения.



    А что полезного оказывается при старте процесса в esi, edi, ebx?



    Я тоже хотел бы знать, но ведь в инете наверняка есть инфа.
     
  3. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    мусорные данные
     
  4. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    мусорные данные

    Если бы... Тогда почему ebx (=7FFDF000h) имеет одно и то же значение при старте процесса, а esi, edi = 0?
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257




    И какую же пользу можно извлечь из нуля? Или из 7FFDF000? К тому же esi например у меня не ноль, а 1.
     
  6. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    И какую же пользу можно извлечь из нуля? - Отвечаешь вопросом на вопрос!!!



    Что-то самого автора roman_k не слышно...

    Пойду пиво ХЛОПНУ!
     
  7. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    это не вопрос, это возражение против твоего мнения, что там не мусор. Самый обыкновенный мусор.
     
  8. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    Ну и hren с этим мусором...

    Меня это не сильно тревожит.
     
  9. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Ну положим ebx=7FFDF000h это не мусор, а указатель на PEB

    Вот только, какую из этого "пользу" можно извлечь - не понятно ;)
     
  10. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    leo

    Это наверно будет полезно roman_k'у, который сейчас играет на гитаре и пьёт коньяк ;)
     
  11. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257




    Вот потому и мусор, что пользы никакой :)
     
  12. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    cresta

    Да что ты такой упрямый. Человек leo

    дело говорит! PEB очень даже понадобится для простой проверки находимся ли мы в отладчике или нет:



    .CODE

    Start:



    .IF byte ptr [ebx + PEB.BeingDebugged] == 0

    ; Процесс не отлаживается

    .ELSE

    ; Процесс запущен из под отладчика!!!

    .ENDIF



    ;...



    END Start
     
  13. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    cresta

    У меня к тебе такой вопрос:

    Своим зависшим ответом "мусор" ты рейтинг хочишь себе повысить или ты действительно не веришь, - так сам попробуй юзанут этот код (выше).
     
  14. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    На этом форуме никаких рейтингов нет, поэтому обвинять меня в повышении того, чего нет - бессмысленно.



    Что касается содержимого ebx - надеяться на него я не могу. Если нужно получить указатель на PEB - я сделаю это другим, более правильным способом, а не буду надеяться на некие лажовые данные в некоем регистре, которые сегодня одни, завтра совсем другие. То что они могут оказаться другими, видно на примере esi: у тебя 0, у меня 1.



    P.S.

    Кто тут переживает за рейтинг, видно по теме

    http://www.wasm.ru/forum/index.php?action=vthread&forum=26&topic=13053
     
  15. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    cresta

    Да ты успокойся, тебя никто не обвиняет, а только поинтересовались.



    Не хочешь, не используй "некие лажовые данные в некоем регистре", тебя ведь никто не заставляет.
     
  16. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Да я и не волнуюсь, чтобы успокаиваться.

    В принципе, ты можешь использовать что угодно, и как угодно, а советовать автору вопроса лажу незачем.
     
  17. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    - В принципе, я могу, и тебя спрашивать не буду.
     
  18. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257




    Какие мы самостоятельные :)



    "Не учите меня жить, лучше помогите материально"

    (с) О.Бендер.
     
  19. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Вот тебе ещё один способ определения отладчика, сродни твоему, такой же кривой, но иногда работает:


    Код (Text):
    1. cmp esi,1
    2. jg  _debugger_present




    Пользуйся. Он короче твоего.
     
  20. Vasil

    Vasil Василь

    Публикаций:
    0
    Регистрация:
    7 янв 2006
    Сообщения:
    228
    Адрес:
    Ижевск
    Т...й у.....к !!!