Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
Всем ку!! Простите за такой недофлуд но в поиске инфы не нашел... Сразу говорю ПОСТ не про вирусы ))) а то знаю я вас.. И так есть некое приложение автор#include <iostream> using namespace std; int main () { cout << "Hello world!!!\n"; return 0; } И исчо есть дллка в которой внутри кода віполняется: авторDLLIMPORT void HelloWorld () { MessageBox (0, "Hello World from DLL!\n", "Hi!", MB_ICONINFORMATION); } И так берем в OllyDbg открываем hello_world.exe и внедряем туды hello_world.dll авторcall dword ptr [40606c] -> вызов функции DLLIMPORT'a в частности HelloWorld() Ну и знатокам вопрос... Вот все у меня работает все хорошо... При запуске сначала вылетакт msgbox из дллки и следом за ней вылетает консолька с красивым "Hello World!"; Но вот вопрос Dllка свое быстренько отрабатывает и уходит а при попытке сделать цикл (естесственно бесконечный) на подобие : авторwhile(true) { } происходит чудесное искусственное зависание Т.е. при запуске приложения HelloWorld.exe => вызов HelloWorld.dll А дольше бесконечный цикл и естесственно ничего дальше не идет ... Как сделать так что бы Дллка запускалась и подпрограмма дллки жила своей жизнью.. И после убийства мамочки процесс детеныш тоже умер?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 09:54 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
zup, И так берем в OllyDbg открываем hello_world.exe и внедряем туды hello_world.dll автор call dword ptr [40606c] -> вызов функции DLLIMPORT'a в частности HelloWorld( поясни, что это все значит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:02 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
И после убийства мамочки процесс детеныш тоже умер? нет там никаких дочерних процессов и "мамочек". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:06 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
MasterZiv, ну как бы инжектим что ли... а в Ollydbg вызываем функцию в дллке ранее написанную :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:07 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
MasterZivКак сделать так что бы Дллка запускалась и подпрограмма дллки жила своей жизнью.. И после убийства мамочки процесс детеныш тоже умер?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:08 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
zup, ну и опубликуй полный код пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:10 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
дык это и так полные коды ... идешь в "file->new->project->dll" (HelloWorld[Template]); в vcpp есть по крайней мере тупой шаблон но я покажу что то даст? о_О dll.h#ifndef _DLL_H_ #define _DLL_H_ #if BUILDING_DLL # define DLLIMPORT __declspec (dllexport) #else /* Not BUILDING_DLL */ # define DLLIMPORT __declspec (dllimport) #endif /* Not BUILDING_DLL */ class DLLIMPORT DllClass { public: DllClass(); virtual ~DllClass(void); private: }; #endif /* _DLL_H_ */ dllmain.cpp/* Replace "dll.h" with the name of your header */ #include "dll.h" #include <windows.h> DllClass::DllClass() { } DllClass::~DllClass () { } DLLIMPORT void HelloWorld () { MessageBox (0, "Hello World from DLL!\n", "Hi!", MB_ICONINFORMATION); } BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ , DWORD reason /* Reason this function is being called. */ , LPVOID reserved /* Not used. */ ) { switch (reason) { case DLL_PROCESS_ATTACH: break; case DLL_PROCESS_DETACH: break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; } /* Returns TRUE on success, FALSE on failure */ return TRUE; } Блин помогите просто из функции вызвать/создать новый поток (пусть криво 2+2 = 5) я дальше сам пойду... Я просто не знаю куда копать спс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:15 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
Почитай Джеффри РИХТЕР, Создание эффективных WIN32-приложений ГЛАВА 22 Внедрение DLL и перехват API-вызовов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:22 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
Dima T, Кхм причем тут почитай?? И причем тут внедрение если я пишц "ВСЕ ВНЕДРЯЕТСЯ И ВЫПОЛНЯЕТСЯ ХОРОШО!!" Ты можешь пример мультипоточности кинуть?? Или учебниками только тыкать будешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:24 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
Ты можешь пример мультипоточности кинуть?? А при чём тут многопоточность ? Тебе DLL или многопоточность? К тому же, примеров в MSDN и вообще в сети навалом, мог бы найти и сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:27 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
Всем спасибо драп хороший крыша хлопает в ладоши! Сам спросил - сам ответил: Вот если кому надо синхронизация потоков через TThread CODE__fastcall TEnumeratorThread::TEnumeratorThread(TMemo* Memo) : TThread(true) { /* Initialize internal fields */ m_Memo = Memo; m_CurrNbr = 0; m_Stop = 0; } void __fastcall TEnumeratorThread::Execute() { /* Repeat the loop until the flag says otherwise. */ while (!m_Stop) { /* Wait for 100 milliseconds. */ Sleep(100); /* Run the AddNewNumberToMemo procedure on the main thread. This makes it safe to access GUI from this thread. */ Synchronize(AddNewNumberToMemo); } m_Stop = 0; } void __fastcall TEnumeratorThread::GentleStop() { /* Set the flag to 1. */ InterlockedIncrement(&m_Stop); /* Wait for this thread to finish executing */ this->WaitFor(); } void __fastcall TEnumeratorThread::AddNewNumberToMemo() { /* Increase the current number and add it to the memo. */ m_CurrNbr++; m_Memo->Lines->Add(IntToStr(m_CurrNbr)); } Всем флудерам спасибо!! Подняли настроение ))) бай бай!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:32 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
zup Ты можешь пример мультипоточности кинуть?? Или учебниками только тыкать будешь? По оглавлению тяжело пробежаться? ГЛАВА 6 Базовые сведения о потоках Читай про CreateThread(), там же примеры. PS Книжку советую целиком почитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:34 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
zupдык это и так полные коды ... в vcpp есть по крайней мере тупой шаблон но я покажу что то даст? Даст то, что мы сможем ткнуть тебя носом в конкретную строку твоего кода и сказать, что там не так. zupБлин помогите просто из функции вызвать/создать новый поток Ты разберись сначала, что тебе нужно: DLL или потоки, и как это друг с другом связано. Поток создаётся очень просто одним вызовом _beginthreadx, указав ему функцию потока. Описание и примеры использования можно найти легко в MSDN. C DLL не так всё просто, поэтому и хочется услышать, что тебе нужно и увидеть пример кода, чтобы долго не объяснять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:35 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
Dima T ГЛАВА 6 Базовые сведения о потоках PS Книжку советую целиком почитать. Просто феерически говёный скан книги... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:38 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
MasterZivПросто феерически говёный скан книги... Ткнул в первый попавшийся. Есть другие сканы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 10:43 |
|
||
|
Прошу помощи [создание dll (C++)]
|
|||
|---|---|---|---|
|
#18+
Dll это просто тупо выделение кода. Поток можешь создать и без нее. Прибьешь мастер грохнутся и дочерки с твоим циклом на этот счет не переживай. Да и если потоков несколько не забудь про их синхронизацию (если надо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2014, 13:02 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=57&tid=2019750]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 145ms |

| 0 / 0 |
