Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.236.86.184] |
|
Сообщ.
#1
,
|
|
|
Нужно в одной программе перехватывать обращения к реестру и подменять данные на свои.
По сути это касается серийного номера диска, т.е. ветки HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices Ищу примеры или либы, само собой free. Есть чё? |
Сообщ.
#2
,
|
|
|
Сообщ.
#3
,
|
|
|
Krid Гуглом я тоже пользоваться умею и все кийворды по данной теме тоже знаю, но от этого пользы никакой.
Тонны исходников по теме внедрения в чужой процесс и перехвата с подменой не работают в новых форточках. Как я пониманию данная тема под Delphi табуированна, видимо расчитывать можно только на то что кто-то поделится. |
Сообщ.
#4
,
|
|
|
Цитата Jiro @ данная тема под Delphi Данная тема под Delphi ничем не отличается от данной темы под что угодно. Поэтому не обязательно искать прям готовую реализацию. Цитата Jiro @ Тонны исходников по теме внедрения в чужой процесс и перехвата с подменой не работают в новых форточках. А вот это надо было сказать сразу, чтобы все понимали, что ты уже сделал для поиска решения и в чем конкретно затруднение |
Сообщ.
#5
,
|
|
|
Fr0sT
Ну если конкретно то не работает injection, то-ли он в новых версиях Win 10 x64 реализуется только через драйвер, то ли ещё что-то там. Есть всякие платные решения, типа madshi (очень дорого), smalldonkey (закрылся), SwiPE($200-$450 как бы тоже не особо дёшего). Других не нашёл. Вобще если есть у кого контакт с аffтором smalldonkey я бы ему черканул, помню он обещал дать свою игрушку если понадобится, правда без исходников. |
Сообщ.
#6
,
|
|
|
Цитата Jiro @ Ну если конкретно то не работает injection, то-ли он в новых версиях Win 10 x64 реализуется только через драйвер, то ли ещё что-то там. У меня сейчас нет win10 никакой. Давай я дам тебе приложение (dllinjector) + dll (x86/x64) для примера, попробуем - будет работать или нет ? ---- Так, я нашёл комп с установленной WIN10 x64. Инжекция и перехват устойчиво работают. Для варианта x86, и для варианта x64 под системой x64. Никаких отличий от win7,8 не обнаружено. Административные привилегии не требуются. ---- Есть только одно ограничение - некоторые антивирусы (DrWeb) считают такие действия "опасными" и препятствуют таким мероприятиям. В этом случае надо крутить настройки антивируса. |
Сообщ.
#7
,
|
|
|
ЫукпШ
Только сегодня зашёл. А где посмотреть ? на антивирусы пофиг. |
Сообщ.
#8
,
|
|
|
Странно, невозможно приаттачить файл 450К. Это у всех так ?
Всё-таки сейчас не 1995 год, когда 450К считались значительным размером. Вот ссылка, попробуй работает или нет ? dllInjector.7z |
Сообщ.
#9
,
|
|
|
ЫукпШ
Пока не тестил, просто хочу прояснить один момент. А сорсы то есть или предполагается то что я буду каждый раз запускать чужой dllinjector.exe? |
Сообщ.
#10
,
|
|
|
Цитата Jiro @ А сорсы то есть или предполагается то что я буду каждый раз запускать чужой dllinjector.exe? 1. Jiro, это всё написал я сам, исходники все есть. Всё на С++, я начал писать в тему только после упоминания о драйверах.. 2. Перехват winapi выполнен почти точно по Рихтеру, исходники имеются прямо в тексте его книги и на прилагающемся к книге CD. Эта тема у Рихтера подробно разобрана. Однако я не стал тупо использовать чужие исходники, а пользовался книгой как руководством. Писал сам из своих представлений, как лучше. Скрытый текст Насколько я понимаю, перехват WinApi заменой адреса в таблице импорта - штатное средство отладки Виндус. Для этих мероприятий используется Виндусовая dll "dbghelp.dll". 3. Не понятно, что именно тебе нужно. Если надо исследовать и отладить множество приложений, удобнее dllInjector. Однако, не всегда возможно его использовать. Например, прицепиться к службе, вероятно, так не удастся никак. Как я понял, тебе нужно изменить работу одного чужого приложения, изменяя результат чтения реестра. Для этого DllInjector не удобен и не нужен. Делаем так: - пишем dll перехвата по-Рихтеру. Или как хочешь по другому. - Ищем и качаем утилиту "IIDKing". Эта утилита добавляет ссылку на твою dll в любой указанный исполнимый модуль (в таблицу импорта). - Всё. Твоя dll законный участник подсудимого процесса. - Из уведомления DLL_PROCESS_ATTACH делаем перехват. --- Вот эта статья из 3-х частей широко разошлась по сети (исходники на Паскале): Перехват API функций в Windows NT Внимательно читая 2-ю часть и производя перевод с Паскаля на С я и смастерил dllInjector. |
Сообщ.
#11
,
|
|
|
Цитата Jiro @ Как я пониманию данная тема под Delphi табуированна Отнюдь. Если надо, опубликую. Просто никто до этого особо не интересовался (вот и сам ТС куда-то пропал ). Короче, Jiro, будет тебе код, если ты объявишься |
Сообщ.
#12
,
|
|
|
Поправка на ветер, та задача которая требовала данное решение была снята.
Но в хоте потуг я понял что inject из примеров работает, а не работает код перехвата из dll которые писались под XP ... Krid В принципе уже не надо, но на будущее думаю пригодится, а то потом опять искать ... Так, что как начинающий архивариус исходников, приму в дар |
Сообщ.
#13
,
|
|
|
Цитата Jiro @ Но в хоте потуг я понял что inject из примеров работает, а не работает код перехвата из dll которые писались под XP ... По всей вероятности, надо изменить параметр защиты памяти. Этим перехват под ХР (и далее) может отличаться от перехвата для WIN2000. (Использовать "VirtualProtectEx") --- я так делал. Это с++, однако захочешь - разберёшься. Прикреплённый файлMImpChanger.zip (2,96 Кбайт, скачиваний: 197) |
Сообщ.
#14
,
|
|
|
Цитата ЫукпШ @ Цитата Jiro @ Но в хоте потуг я понял что inject из примеров работает, а не работает код перехвата из dll которые писались под XP ... По всей вероятности, надо изменить параметр защиты памяти. Этим перехват под ХР (и далее) может отличаться от перехвата для WIN2000. (Использовать "VirtualProtectEx") --- я так делал. Это с++, однако захочешь - разберёшься. Прикреплённый файлMImpChanger.zip (2,96 Кбайт, скачиваний: 197) Ясно, обойдусь тогда без замены цвета, пусть будет как есть. Спасибо за консультацию. |