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

 WASM Phorum —› WASM.WIN32 —› Рихтер. Управление памятью. Стек.

<< . 1 . 2 .

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


Дата: Май 14, 2004 18:27:30

Да ничего тут сложного, в принципе, нет.
Ставится Soft-Ice и читается к нему мануал. Потом вопросы уходят.
Что до адресного пространства процесса - ты, в общем-то, мыслишь правильно, НО. Сказали же, что есть int 30h. Значит в айсе надо набирать bpint 30. Дальше по обстоятельствам.


Дата: Май 14, 2004 19:08:07

да ладно те, я абсолютно себя крутнем не считаю, есть действительно сильные люди, Volodya, господа из Hi-Tech, и многие другие..
Значит, суть вопроса. Так как работаем под маздаем w9x, то библиотека kernel32.dll и иже с ними, грузятся в SharedMemory, то есть выше двух гигов. Соответственно, какая бы прога не была загружена, вот эти вот вторые 2 га просто мэпируются в адресное пространнство 1х 2х га, кароче, адресов , отведёных родному коду пользовательского процесса. Ещё момент. Kernel32.dll слинкована так, что её ImageBase является статическим (0xBFF70000, насколько я помню), библиотека не имеет релокэшинов и всякой там хрени (но, зависит от версии я про 98SE)Но, если глянуть в рабочий набор текущей thread,... хотя, рано тебе ещё об этом. Скажу проще, читать вторые га можно, а вот писать туда низя. Но это можно устроить. Соответственно , если там произвести какие то изменения, то они произойдут одновременно во всех контекстах всех процессов, понимаешь что это . Ну да, ближе к сути. Я тебе там выбросил примерчика на паскале, там рядом ординалы стоят, видишь. Так вот, Возьми какой нить дасмер, к примеру w32dasm, открой там kernel32.dll и посмотри, какие адреса соответствуют точкам входа этих ординалов на экспорте. Дальше, идёшь в айс, ставишь там бряки, причём, в отличии от нт они бду глобальны для всех контекстов процессов, и... запускаешь какой нить NE старый файлик, если самому в облом писать тестовое апликашн, далее, выскочит айс, это уже хорошо, а ты за ним F8 или F10 поспевай, а лучше перестразаинся BPINT 30. Дальше, .... сам всё и увидишь, что интересует, тока , если бряка на инте сработает, ты глянь, какой контекст, а то система всюду его юзает, так как в основе масдая лежат Kernel386.exe и такие же, которые сплошь и рядом 16разрядные и лежать в типовых сегментах, вот поэтому виндовс и масдай !!!!! :)


Дата: Май 14, 2004 19:12:29

звиняюсь за граматику, клаву не видно, диоды падохли :))

<< . 1 . 2 .


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