|
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 126
|
|||||||||||
Функция в dll, которая инжектится в чужой процесс, крашит программу05.03.2017, 23:11. Показов 2925. Ответов 7
Здравствуйте, сражу скажу, программу я пишу в целях собственного развития, вирус писать я не планирую.
Теперь проблема, при вызове функции CreateToolHelp32Snapshot, целевая программа(Диспетчер задач) крашится, причем без предупреждений(нет окна в котором написано, что программа перестала отвечать), процесс просто завершается. Прошу помочь, предположений нет. Скидываю код.
P.S Windows 10 x64
0
|
|||||||||||
| 05.03.2017, 23:11 | |
|
Ответы с готовыми решениями:
7
Внедрение DLL в чужой процесс Как внедрить dll в чужой процесс Обрезает uchar и крашит процесс |
|
Ушел с форума
|
||
| 05.03.2017, 23:37 | ||
|
Collecting User-Mode Dumps https://msdn.microsoft.com/en-... s.85).aspx 2. Когда снова упадет, будет создан крэш-дамп в соответствующей папке. 3. Далее открываешь дамп в отладчике (например, в WinDBG), подключаешь отладочные символы (.pdb) и смотришь, где упало и почему. А вообще, похоже на рекурсию: перехватчик OpenProcess вызывает функцию getProcessNameByPID (или GetUserName), а одна из них так или иначе дергает OpenProcess. В итоге снова вызывается перехватчик. И так в цикле, пока не наступает исчерпание стека. Поищи в журнале приложений соответствующее событие. Обычно код завершения при этом такой: 0xC00000FD (STATUS_STACK_OVERFLOW).
0
|
||
|
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 126
|
|||||||||||
| 06.03.2017, 19:43 [ТС] | |||||||||||
|
Полностью убрал перехват OpenProcess, это ничего не поменяло.
Добавлено через 7 минут Ну я тут немного разобрался, и получил вот это.
Кстати, этот дамп весил уже 2мб(это минидамп).
0
|
|||||||||||
|
Ушел с форума
|
||
| 06.03.2017, 20:13 | ||
|
Судя по коду ошибки, там рекурсивный вызов. Т.е. обработчик NtQuerySystemInformation вызывает CreateToolhelp32Snapshot, а та, в свою очередь, снова сводится к вызову NtQuerySystemInformation... Получается "зацикливание", которое приводит к переполнению стека и вылету с кодом 0xC00000FD.
0
|
||
|
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 126
|
|
| 06.03.2017, 21:11 [ТС] | |
|
А как тогда определить PID по имени процесса?
0
|
|
|
Ушел с форума
|
|
| 07.03.2017, 08:45 | |
|
Главное - делать это вне перехватчиков OpenProcess и NtQuerySystemInformation.
Тогда не будет рекурсии и переполнения стека. А как именно делать - не важно.
0
|
|
|
1 / 1 / 0
Регистрация: 21.02.2015
Сообщений: 126
|
||||||
| 07.03.2017, 20:46 [ТС] | ||||||
|
А можно как-то обойти это ограничение, ведь как тогда скрывать процессы, запущенные после внедрения dll?
Добавлено через 1 минуту И можно ли как-то определить pid по имени процесса без вызова NtQuerySystemInformation? Добавлено через 33 минуты Появилась еще одна проблема - после активации хука и вызова getPIDbyProcessName появляется окно Microsoft Visual c++ Runtime Error, после чего целевая программа падает. Код для наглядности:
В это окне написано: "Run-Time Check Failture #3 - The variable 'pinfo_last' is begining used without begin initialized."
0
|
||||||
|
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
|
||
| 07.03.2017, 22:25 | ||
|
0
|
||
| 07.03.2017, 22:25 | |
|
Помогаю со студенческими работами здесь
8
Крашит DLL при инжекте DLL крашит приложение при создании потока (CreateThread)
Вставка своего кода в чужой процесс. *nix Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|