|
|
| Посл.отвђт | Сообщен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 звиняюсь за граматику, клаву не видно, диоды падохли :)) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.036 |