· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› win2k loader

Посл.отвђт Сообщенiе


Дата: Июл 5, 2004 14:36:31

Заметил, что программы без таблицы импорта стартуются на всем (95-2k3), кроме win2k. Чем вызвано это различие в загрузчике win2k, и почему все восстановлено в xp? Есть ли решение, кроме как использования импортов в 2k?


Дата: Июл 5, 2004 15:33:14

„Есть ли решение, кроме как использования импортов в 2k?“

В аттаче максимум , что я видел работающее (таблица есть , но пустая) .
Подробно тут .

1697209707__ssflat_pe.zip


Дата: Июл 5, 2004 17:05:47

Насколько помню win2k пустые таблицы воспрнимает также как и отсутсвие, по ссылке в примерах импортится MessageBox, но все равно спасибо.


Дата: Авг 18, 2004 14:59:41

;=====================================================
format      PE GUI 4.0 at 793A0000h
entry       @F
;=====================================================
section     '.code' code readable writeable executable
;=====================================================
rb          87B3h
;=====================================================
@@:         jmp eax
;=====================================================
На w2ksp4 это работает , проверено :)
Процесс чистый ("я" и ntdll.dll) , в eax лежит entypoint (прога зациклена) , SEH не установлен , пока не придумал как вывести хоть msgbox какой-то :) Не подскажете ?
Имея только ntdll , пытался через int 2e файл создать , там долго надо разбираться с 11-ю параметрами .


Дата: Авг 18, 2004 16:03:40

Если есть ntdll, то можно подгрузить другие библиотеки через LdrLoadDll.


Дата: Авг 18, 2004 18:06:53

"2ksp4.exe - Недопустимое перемещение системной DLL"
"Системная библиотека kernel32.dll перемещена в памяти. Работа приложения будет нарушена. Перемещение произошло из-за того, что библиотека C:\Temp\2ksp4.exe заняла область адресов, зарезервированную для системных DLL Windows. Обратитесь к поставщику за новой версией библиотеки."

Не сможем мы подгрузить user32 или другую длл использующую кernel32 . Мы вместо него . Нда , скучно в таком процессе будет .


Дата: Авг 18, 2004 23:19:14 · Поправил: bogrus

;===========================================================
format      PE GUI 4.0 at 793A0000h ; ImageBase kernel32.dll
entry       start
;===========================================================
section     '.code' code readable writeable executable
;===========================================================
repeat      9000h
            nop
end         repeat
;===========================================================
start:      mov     eax,[fs:18h]
            mov     eax,[eax+30h]
            mov     dword [eax+2Ch],@F-128h ; PEB.KernelCallbackTable
            push    24h
            push    0
            mov     eax,1139h       ; beep
            lea     edx,[esp]
            int     2Eh             ; этот не сработает
@@:         dd      $-start+start+4
;===========================================================
            mov     ebx,5           ; сколько раз beep
@@:         mov     ecx,0FFFFFFh    ; задержка
m1:         nop
            loop    m1
            push    24h
            push    0
            mov     eax,1139h       ; beep
            lea     edx,[esp]
            int     2Eh             ; а этот сработает
            dec     ebx
            test    ebx,ebx
            jnz     @B
;===========================================================

Не хотело мне с первого разу бипать , пришлось намудрить :)

403398632__2ksp4.zip


Дата: Авг 19, 2004 01:05:48

Ну что, теперь будем оптимизировать? ;-)
> dec ebx
test ebx,ebx
jnz @B

dec ebx
jnz @B


Дата: Авг 19, 2004 04:55:24

Ну тогда и

lea edx,[esp]

можно поменять на

mov edx,esp


bogrus

Хм, а идея интересная, imho можно умудриться и кernel32 "поверх себя" загрузить :)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.079