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

 WASM Phorum —› WASM.WIN32 —› stack

. 1 . 2 . >>

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


Дата: Мар 16, 2004 11:10:58 · Поправил: beauty on the fire

нижепредставленный код виснет на выделенной инструкции. реально ли заставить его работать ?

...
.code
start: ...
mov dword ptr [restore+1],esp
mov esp,offset set+5
push 0
restore: mov esp,? ; 0BCh, dword
...
set: mov ecx,? ; 0B9h, dword
...

Я уже перепробовал все, что только в голову приходит ... буду очень благодарен за любую помощь :)


Дата: Мар 16, 2004 11:44:25

beauty on the fire
set+5 - четное или нет, кратное 4 или нет?


Дата: Мар 16, 2004 13:22:29 · Поправил: Black_mirror

beauty on the fire
У меня работает.
А секция кода у тебя доcтупна для записи?


Дата: Мар 16, 2004 13:51:54

beauty on the fire

Вылетает на предыдущей инструкции.
Там запись в секцию кода наверняка не проходит.. Надо свою секцию или в линкере объединять data/code


Дата: Мар 17, 2004 01:43:30

Секция доступна для записи.
Вылетает вне зависимости от кратности смещения "set+5" (я пробовал оба случая).


Дата: Мар 17, 2004 01:43:52

Секция доступна для записи.
У меня вылетает вне зависимости от кратности смещения "set+5" (я пробовал оба случая).

напасть какая-то ;(


Дата: Мар 17, 2004 02:09:21

beauty on the fire
Компилировал fasm'ом, за работой наблюдал в TD32.


212317252__work.zip


Дата: Мар 17, 2004 05:08:11 · Поправил: beauty on the fire

Black_mirror
Оказывается все работает совсем не так как я предполагал ... ;) Как я понял, кусок кода, расположенный до "set+5" просто затирается ? ;)


Дата: Мар 17, 2004 06:58:35

кусок кода, расположенный до "set+5" просто затирается
Хе.. Ну я и тормо$$. Даже жирным цветом выделено было.. Прикольный код ;-)


Дата: Мар 17, 2004 10:54:09

beauty on the fire
Под TD у меня командой push записывается ноль в операнд команды mov ecx,?. А первая команда правит команду mov esp,?. Больше у меня ничего не перезаписывается.

А как оно должно было работать?


Дата: Мар 17, 2004 13:24:01

Дело-то все видимо тут: ...


Дата: Мар 17, 2004 16:04:49 · Поправил: Black_mirror

S_T_A_S_
Подумал еще немного и ничего не понял 8(


Дата: Мар 17, 2004 16:47:48 · Поправил: johnfound

Хм, а чем "xor ecx, ecx" не нравиться? :D
А, да и надо jmp сделать перед исполнения модифицированного кода, чтоб prefetch table презаредился.


Дата: Мар 17, 2004 18:40:22

Black_mirror
Под TD у меня командой push записывается ноль в операнд команды mov ecx,?

Во! а там этих push'ей сколько вместо "..." может быть?
Иначе я тоже ничего не понял :(


johnfound
Хм, а чем "xor ecx, ecx" не нравиться?

Там, на этом месте, возможно, можно и jmp $ написать ;-)
Все равно там будет непонятно что.


ЗЫ
Похоже надо делать ставки пока не появился автор ;-)


Дата: Мар 17, 2004 18:49:17 · Поправил: Black_mirror

В этом коде нет ... и указатель стека он корректно востанавливает.
mov dword ptr [restore+1],esp 
mov esp,offset set+5 
push 0 
restore: mov esp,? ; 0BCh, dword 


beauty on the fire
Код в студию!(весь)

. 1 . 2 . >>


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