Shell-Code в Win200 SP4

Тема в разделе "WASM.WIN32", создана пользователем gloomyraven, 7 май 2006.

Статус темы:
Закрыта.
  1. gloomyraven

    gloomyraven Руслан

    Публикаций:
    0
    Регистрация:
    16 апр 2006
    Сообщения:
    288
    Адрес:
    Москва
    Такой вопрос:

    почему в XP базово-независимый код запускается нормально, а в Win2000 нет? А если конкретнее: прога без импорта даже в отладчик не грузится.

    Пример:

    .386

    .model flat,stdcall

    .code

    start:

    ret

    end start

    Это не работает в W2k, в XP без проблем.



    Единственное решение, которое я нашел (других не искал):

    .386

    .model flat,stdcall

    include windows.inc

    include kernel32.inc

    includelib kernel32.lib

    .code

    StartOfShell:

    ret

    EndOfShell:

    invoke ExitProcess,0

    end StartOfShell



    При это всё работает и там и там. Как это объяснить?

    Возможен ли запуск без импорта в Win2k?
     
  2. Klajnor_666

    Klajnor_666 New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2006
    Сообщения:
    22
    Адрес:
    Russia


    Вроде нет
     
  3. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    Нет. В импортах обязательно должна быть kernel32.dll или любая другая dll ссылающаяся на нее. Но импорты эти использовать конечно же необязательно, они должны просто быть.
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    в 2k прога без импорта работать не будет - это известная фича этой OS







    найти исходники 2k и выяснить причину ;)
     
  5. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    Причина в том, что windows 2000 грузит в процесс только ntdll + явно импортируемые библиотеки. При старте первого потока происходит инициализация процесса внутри kernel32.dll, а ессли нет импорта, то это длл будет не загружена и процесс не запуститься.
     
  6. gloomyraven

    gloomyraven Руслан

    Публикаций:
    0
    Регистрация:
    16 апр 2006
    Сообщения:
    288
    Адрес:
    Москва
    Спасибо всем, вроде все понятно =)
     
  7. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Вообще-то уже 20 топиков на васме было по этой теме, такой пример работает в w2ksp4ru и xpsp2ru
    Код (Text):
    1. ;=====================================================================
    2. format      pe gui at 0x79430000 ; imageBase kernel32.dll
    3.                    rb 1024*64    ; ~< sizeof kernel32.dll
    4. ;=====================================================================
    5. entry       $
    6. @@:         jmp    @b
    7. ;=====================================================================
     
Статус темы:
Закрыта.