Форум: "WinAPI";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
ВнизReadProcessMemory.... Помогите разобраться!!! Найти похожие ветки
← →
Alex_mai (2002-12-05 13:34) [0]Уважаемые мастера!!! У меня возникла проблема - Запускаю программу с помощью CreateProcess. Подскажите, пожалуйста, как по хендлу процесса или по его ID узнать начальный адрес памяти, где находится его код и данные... Сразу оговорюсь, что это производственная необходимость, а не вирусописание
← →
paul_shmakov (2002-12-05 13:41) [1]все достаточно просто - все данные, которые вам нужны, находятся в PE-заголовке, которые можно считать из exe-файла.
смотрите структуру IMAGE_OPTIONAL_HEADER и поле в ней ImageBase.
← →
Игорь Шевченко (2002-12-05 13:56) [2]А можно вопрос, что за производственная необходимость ? Очень мне интересно, ответьте, если не трудно...
← →
paul_shmakov (2002-12-05 14:00) [3]только нужно в следующей последовательности считывать:
1) IMAGE_DOS_HEADER, проверить, что поле e_magic равно $4D5A (MZ)
2) по смещению IMAGE_DOS_HEADER.e_lfanew считать IMAGE_NT_HEADER, проверить, что поле Signature равно $50450000 (PE).
а дальше уже из IMAGE_NT_HEADER взять OptionalHeader.ImageBase - вот и результат. т.е. виртуальный адрес, по которому будет загружаться модуль (exe! dll может и по другому адресу загрузиться).
но это именно базовый виртуальный адрес загрузки модуля! а местоположение именно "кода и данных" не всегда возможно получить.
как правило, pe-модуль разделен на секции (секция кода, секция данных, секция импорта и т.п.). по флагам секций можно примерно определить, что в секции содержится.
но набор секций - произволен. может быть всего одна секция и в ней все-все-все, а может быть много секций с кодом, много с данными и т.д.
поэтому изложите проблему более конкретно.
← →
Alex_mai (2002-12-05 18:32) [4]Игорь, совсем не трудно. Шеф принёс программу для редактирования бинарных файлов (прошивок), но беда в том, что в ней отсутствует функция сохранения. Попросил меня разобраться... Сами понимаете, что исходников под неё у меня нет, но я заметил, используя программу ART_MONEY, что загружаемый бинарник хранится в одном месте целиком. Программа даже адрес выдаёт - 00485058!
Пытаюсь читать из памяти:
ReadProcessMemory(hdl,pointer($485058),@buf,1,i)
-значения совершенно другие.
paul_shmakov, спасибо за ответ, но поскольку я не мастер в программировании, а дремучий новичок, то кроме "MZ" я ничего не понял. Извини.
← →
Cobalt (2002-12-05 18:58) [5]попробуйте внедриться в АП
← →
Ketmar (2002-12-05 19:18) [6]код в судию.
Satanas Nobiscum! 05-Dec-XXXVII A.S.
← →
[NIKEL] (2002-12-06 04:47) [7]понятно другие... этож в другом адр. пространстве...
тут надо внедриться в процесс... а потом взять начало отображения данного модуля в памяти BYTE *image = (BYTE*)GetModuleHandle(NULL); и уж потом писать что надо
а вообще лучше сказать шефу что это нереально и что это выходит за рамки твоей компитенции, оно так лучше будет.
← →
Игорь Шевченко (2002-12-06 09:41) [8]
> а вообще лучше сказать шефу что это нереально и что это
> выходит за рамки твоей компитенции, оно так лучше будет.
IMHO, лучший совет :-)
← →
Ketmar (2002-12-06 10:35) [9]>[NIKEL]© (06.12.02 04:47)
>понятно другие... этож в другом адр. пространстве...
тут надо внедриться в процесс... а потом взять начало отображения данного модуля в памяти BYTE *image = (BYTE*)GetModuleHandle(NULL); и уж потом писать что надо
не будем бредить, а лучше почитаем FM на ReadProcessMemory. никуда внедряться не надо.
>Игорь Шевченко© (06.12.02 09:41)
неа. это совет не интересный. от него американизмом попахивает. %-))
Satanas Nobiscum! 06-Dec-XXXVII A.S.
← →
Alex_mai (2002-12-06 11:23) [10]Ketmar, спасибо за поддержку... На самом деле я разобрался с этой прогой...
Но мне всё равно не понятно, как определить память, где расположен процесс и его данные...
← →
Игорь Шевченко (2002-12-06 12:22) [11]Ketmar © (06.12.02 10:35)
Да, конечно.
А советский человек достанет из кладовки портрет Ивана Кулибина, отряхнет с него пыль, поставит рядом с монитором, и вдохновляясь, начнет в очередной раз велосипед изобретать с четырьмя колесами. Сознание собственной крутости после наступания на все подряд грабли приведет его к узрению абсолюта воочью и прочим просветлениям.
Можно проще - не надо ерундой страдать :-)
← →
Ketmar (2002-12-06 12:37) [12]>Alex_mai© (06.12.02 11:23)
на это вам paul_shmakov ответил. далее - копайте структуру PE-фалов (в Сети много инофрмации по этому поводу) и распределение памяти в винде. слишком уж долго тут все объяснять (если, конечно, вы хотите РАЗОБРАТЬСЯ, а не просто взять чей-то код и использовать).
>Игорь Шевченко© (06.12.02 12:22)
а если никогда не заниматься изобретательством, то и не будет ничего нового появляться. если бы Линус думал так же, то мы бы до сих пор не имели пингвиноида %-)
зыж
[краснея от стыда] Иван Кулибин - это кто? что-то больно имя знакомое, а вспомнить не могу.
Satanas Nobiscum! 06-Dec-XXXVII A.S.
← →
Игорь Шевченко (2002-12-06 13:13) [13]Я не против изобретательства. Я против изобретательства велосипедов с четырьмя квадратными колесами, вырезания гланд через анальное отверстие и ковыряния в памяти чужих процессов без особой на то нужды.
> Иван Кулибин - это кто? что-то больно имя знакомое, а вспомнить
> не могу.
Талантливый русский изобретатель-самоучка.
← →
Ketmar (2002-12-06 13:51) [14]>Игорь Шевченко© (06.12.02 13:13)
ну нужда-то была... см. Alex_mai© (05.12.02 18:32).
зыж
tnx за справочку %-)
Satanas Nobiscum! 06-Dec-XXXVII A.S.
← →
[NIKEL] (2002-12-06 13:53) [15]2Ketmar
а никто и не бредит :)
///
а данные и начальный адресс могут быть и недоступны для чтения через ReadProcessMemory
///
попахивает много где и много чем
(тот же Мак Дональдс, та же винда на твоем компе(и он весь тоже), та же дельфя которой ты деньги заробатываешь и тот же Рихтер которого ты взахлеб зачитываешься...)
надо реально на вещи смотреть и оценивать возможности
← →
a_k_v (2002-12-06 14:28) [16]Попахивает злобным крякерством:
>> Шеф принёс программу ... , но беда в том,
>> что в ней отсутствует функция сохранения.
Так нужно купить лицензионную версию :)
← →
Ketmar (2002-12-06 14:32) [17]>[NIKEL]© (06.12.02 13:53)
пример в студию: когда я не могу использовать ReadProcessMemory, но могу внедриться в чужое АП?
Satanas Nobiscum! 06-Dec-XXXVII A.S.
← →
Игорь Шевченко (2002-12-06 15:02) [18]Упс! Эт я неверно прочитал...
Автору - а воровать вообще нехорошо.
← →
Ketmar (2002-12-06 15:27) [19]>Игорь Шевченко© (06.12.02 15:02)
нехорошо. но иногда приходится. и потом: хорошо, нехорошо... все относительно. но это уже тема для "потрепаться". %-)
Satanas Nobiscum! 06-Dec-XXXVII A.S.
← →
Alex_mai (2002-12-06 17:46) [20]Народ, спасибо всем за участие, но, по-моему, вы отошли от темы... Ну очень необходимо человеку прочитать процесс... Ну если он сам его создал, а исходники потерял? Ну есть только ехе-шник. ну что ж ему заново прогу писать?! Не лучше ли примочку к ней? Даже если я пообещаю не использовать в писании вирусов и др. всё равно будут упрёки и т.д.
Игорь, если ты администратор, то администрируй, а не придирайся к тексту. Ну удали это сообщение, если считаешь, что оно не соответствует Правилам Форума, но не оставляй ничего не значащих постингов (пожозрение не столько помогает, сколько мешает в общении с людьми). Большая просьба. если нет ничего конкретного, то не пиши в эту ветку - у меня нет не колхозный - не хочу загружать лишние байты... Спасибо заранее...
← →
Alex_mai (2002-12-09 19:40) [21]?! может кто ответит... а?
← →
alex134 (2002-12-09 20:00) [22]
> Alex_mai © (09.12.02 19:40)
> ?! может кто ответит... а?
Буду рад помочь. Зайди на эту ветку через час (домой еду).
← →
paul_shmakov (2002-12-10 15:01) [23]2 Alex_mai:
ну я же написал верный путь, в котором нужно двигаться. без понимания того, что же там понаписано после "MZ", ничего не получится. поверьте. вы не первый подобные проблемы решаете.
кстати, у Криса Касперски была статья как раз на ту тему, которая и вас волнует. там описывался процесс добавления в некое приложение функции сохранения, которая отсутствовала (именно отсутствовала, а не была задисейблена) в демо-версии.
найдите эту статью.
← →
alex134 (2002-12-10 17:15) [24]2 Alex_mai:
Мыло давай!
← →
Alex_mai (2002-12-12 10:10) [25]paul_shmakov, спасибо. Сейчас посмотрю. Просто мне казалось, что решение должно быть проще.
← →
Alex_mai (2002-12-12 10:10) [26]paul_shmakov, спасибо. Сейчас посмотрю. Просто мне казалось, что решение должно быть проще.
alex134 - там есть мыло.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.01 c