На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! user posted image
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Соблюдайте общие правила форума

Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры - внедрение в удаленное адресное прстранство)
... (продолжение следует) ...

Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки - бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Rouse_, user posted image Krid

Модераторы: Rouse_, Krid
  
> Перехват и подмена зеачений реестра в чужом приложении
    Нужно в одной программе перехватывать обращения к реестру и подменять данные на свои.
    По сути это касается серийного номера диска, т.е. ветки HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices

    Ищу примеры или либы, само собой free.
    Есть чё?
      Кто рано встает, тому целый день спать хочется
        Krid Гуглом я тоже пользоваться умею и все кийворды по данной теме тоже знаю, но от этого пользы никакой.
        Тонны исходников по теме внедрения в чужой процесс и перехвата с подменой не работают в новых форточках.
        Как я пониманию данная тема под Delphi табуированна, видимо расчитывать можно только на то что кто-то поделится.
          Цитата Jiro @
          данная тема под Delphi

          Данная тема под Delphi ничем не отличается от данной темы под что угодно. Поэтому не обязательно искать прям готовую реализацию.
          Цитата Jiro @
          Тонны исходников по теме внедрения в чужой процесс и перехвата с подменой не работают в новых форточках.

          А вот это надо было сказать сразу, чтобы все понимали, что ты уже сделал для поиска решения и в чем конкретно затруднение
          Codero ergo sum
          // Программирую — значит, существую
            Fr0sT
            Ну если конкретно то не работает injection, то-ли он в новых версиях Win 10 x64 реализуется только через драйвер, то ли ещё что-то там.
            Есть всякие платные решения, типа madshi (очень дорого), smalldonkey (закрылся), SwiPE($200-$450 как бы тоже не особо дёшего). Других не нашёл.

            Вобще если есть у кого контакт с аffтором smalldonkey я бы ему черканул, помню он обещал дать свою игрушку если понадобится, правда без исходников.
              Цитата Jiro @
              Ну если конкретно то не работает injection, то-ли он в новых версиях Win 10 x64 реализуется только через драйвер, то ли ещё что-то там.

              У меня сейчас нет win10 никакой.
              Давай я дам тебе приложение (dllinjector) + dll (x86/x64) для примера, попробуем - будет работать или нет ?
              ----
              Так, я нашёл комп с установленной WIN10 x64.
              Инжекция и перехват устойчиво работают.
              Для варианта x86, и для варианта x64 под системой x64.
              Никаких отличий от win7,8 не обнаружено.
              Административные привилегии не требуются.
              ----
              Есть только одно ограничение - некоторые антивирусы (DrWeb) считают такие
              действия "опасными" и препятствуют таким мероприятиям.
              В этом случае надо крутить настройки антивируса.
              Сообщение отредактировано: ЫукпШ -
              Подпись была выключена в связи с наложенным заземлением.
                ЫукпШ
                Только сегодня зашёл. А где посмотреть ? на антивирусы пофиг.
                  Странно, невозможно приаттачить файл 450К. Это у всех так ? :huh:
                  Всё-таки сейчас не 1995 год, когда 450К считались значительным размером.

                  Вот ссылка, попробуй работает или нет ?
                  dllInjector.7z
                  Сообщение отредактировано: ЫукпШ -
                  Подпись была выключена в связи с наложенным заземлением.
                    ЫукпШ
                    Пока не тестил, просто хочу прояснить один момент.
                    А сорсы то есть или предполагается то что я буду каждый раз запускать чужой dllinjector.exe?
                      Цитата 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.
                      Сообщение отредактировано: ЫукпШ -
                      Подпись была выключена в связи с наложенным заземлением.
                        Цитата Jiro @
                        Как я пониманию данная тема под Delphi табуированна

                        Отнюдь. Если надо, опубликую. Просто никто до этого особо не интересовался (вот и сам ТС куда-то пропал :)).
                        Короче, Jiro, будет тебе код, если ты объявишься :)
                        Кто рано встает, тому целый день спать хочется
                          Поправка на ветер, та задача которая требовала данное решение была снята.
                          Но в хоте потуг я понял что inject из примеров работает, а не работает код перехвата из dll которые писались под XP ...

                          Krid
                          В принципе уже не надо, но на будущее думаю пригодится, а то потом опять искать ...
                          Так, что как начинающий архивариус исходников, приму в дар :)
                            Цитата Jiro @
                            Но в хоте потуг я понял что inject из примеров работает, а не работает код перехвата из dll которые писались под XP ...

                            По всей вероятности, надо изменить параметр защиты памяти.
                            Этим перехват под ХР (и далее) может отличаться от перехвата для WIN2000.
                            (Использовать "VirtualProtectEx")
                            ---
                            я так делал. Это с++, однако захочешь - разберёшься.
                            Прикреплённый файлПрикреплённый файлMImpChanger.zip (2,96 Кбайт, скачиваний: 19)
                            Сообщение отредактировано: ЫукпШ -
                            Подпись была выключена в связи с наложенным заземлением.
                              Цитата ЫукпШ @
                              Цитата Jiro @
                              Но в хоте потуг я понял что inject из примеров работает, а не работает код перехвата из dll которые писались под XP ...

                              По всей вероятности, надо изменить параметр защиты памяти.
                              Этим перехват под ХР (и далее) может отличаться от перехвата для WIN2000.
                              (Использовать "VirtualProtectEx")
                              ---
                              я так делал. Это с++, однако захочешь - разберёшься.
                              Прикреплённый файлПрикреплённый файлMImpChanger.zip (2,96 Кбайт, скачиваний: 19)

                              Ясно, обойдусь тогда без замены цвета, пусть будет как есть. Спасибо за консультацию.
                              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script Execution time: 0,1265 ]   [ 17 queries used ]   [ Generated: 27.05.18, 19:25 GMT ]