Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для uhx
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 305

DLL крашит приложение при создании потока (CreateThread)

26.01.2015, 00:12. Показов 1515. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здрасьте.
Внедряю свою дллку в любой процесс и он крашится с моего потока.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <Windows.h>
 
void Main(){
    MessageBox(0, "Hello!", 0, MB_OK | MB_ICONINFORMATION);
}
 
 
bool DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){
    switch(fdwReason){
    case DLL_PROCESS_ATTACH:
        MessageBox(0, "Injected!", "", MB_OK | MB_ICONINFORMATION);
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Main, 0, 0, 0);
    }
    return 0;
}
Если убираю CreateThread - то все гуд, но этот поток почему то кроет всё подряд. Любой процесс, даже того же инжектора.
В чем проблема - не пойму. У других все работает нормально, не раз видел такой код, а у меня борода какая-то.
Помогите что ль

Добавлено через 26 минут
ппц...
Соль заключалась в строчке "return 0"
Поменял на еденицу - все заработало... Кто нибудь может это объяснить?))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.01.2015, 00:12
Ответы с готовыми решениями:

Что происходит при создании нового потока?
Создаётся полная копия программы в оперативной памяти? Я раньше думал, что только копия функции ThreadProc, пока не обнаружил, что...

Функция в dll, которая инжектится в чужой процесс, крашит программу
Здравствуйте, сражу скажу, программу я пишу в целях собственного развития, вирус писать я не планирую. Теперь проблема, при вызове...

Метод Abort для потока крашит приложение
довольно странная проблема: при аборте потока студия завершает работу приложения, ничего не спросив. сам потоковый метод: ...

2
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
26.01.2015, 00:21
Цитата Сообщение от MSDN: DllMain entry point
Return value

When the system calls the DllMain function with the DLL_PROCESS_ATTACH value, the function returns TRUE if it succeeds or FALSE if initialization fails. If the return value is FALSE when DllMain is called because the process uses the LoadLibrary function, LoadLibrary returns NULL. (The system immediately calls your entry-point function with DLL_PROCESS_DETACH and unloads the DLL.) If the return value is FALSE when DllMain is called during process initialization, the process terminates with an error. To get extended error information, call GetLastError.

When the system calls the DllMain function with any value other than DLL_PROCESS_ATTACH, the return value is ignored.
MSDN: DllMain entry point
1
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
26.01.2015, 09:35
Цитата Сообщение от uhx Посмотреть сообщение
void Main()
Функция потока, создаваемого CreateThread, имеет другую сигнатуру.
Если не исправите, тут возможна порча стека и другие "интересности".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2015, 09:35
Помогаю со студенческими работами здесь

Как при создании своей dll подключить туда сторонние dll
Здравствуйте, я работаю в связке C# - Oracle. Если коротко, то вопрос звучит так: &quot;Как при создании своей dll подключить туда сторонние...

Создание потока через CreateThread
Доброго времени суток! Помогите разобраться. Мне нужно создать поток с помощью WinAPI-функции CreateThread, но у меня никак не получается...

Borlndmm.dll при создании DLL
Сегодня внезапно узнал, что при написании dll на Delphi к приложению, которое их использует нужно обязательно подкладывать файл...

Ошибка при создании потока
Добрый вечер, собственно задача состоит в том, что бы написать програмку для взаимодействия с приборчиком(капнограф) через виртуальный COM,...

Ошибка при создании потока
An unhandled exception of type 'System.ArgumentException' occurred in WindowsBase.dll Additional information: Необходимо создать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru