Есть код в нем используются MinHook бибилиотеки. После инжекта возникает такая ситуация когда dll выполняется и сразу закрывается т.е. выводится сообщение (в даном случае) Return true и до хука функции и записи даных дело не доходит. Кто-то знает в чем дело? Вот листинг
// dllmain.cpp: определяет точку входа для приложения DLL.
#include "stdafx.h"
#include <Windows.h>
#include "MinHook.h"
#include "WinInet.h"
#include <fstream>
using namespace std;
typedef int (WINAPI *HttpOpeRequest)(HINTERNET hConnect, LPCWSTR lpszVerb, LPCWSTR lpszObjectName,
LPCWSTR lpszVersion, LPCWSTR lpszReferrer, LPCWSTR FAR * lplpszAcceptTypes, DWORD dwFlags, DWORD_PTR dwContext);
HttpOpeRequest tHttpOpenRequest = NULL;
void wrightFunck(HINTERNET, LPCWSTR, LPCWSTR ,
LPCWSTR, LPCWSTR, LPCWSTR FAR *, DWORD, DWORD_PTR);
int WINAPI fHttpOpenRequestW(HINTERNET hConnect, LPCWSTR lpszVerb, LPCWSTR lpszObjectName,
LPCWSTR lpszVersion, LPCWSTR lpszReferrer, LPCWSTR FAR * lplpszAcceptTypes, DWORD dwFlags, DWORD_PTR dwContext)
{
wrightFunck(hConnect, lpszVerb, lpszObjectName, lpszVersion,
lpszReferrer, lplpszAcceptTypes, dwFlags, dwContext);
return tHttpOpenRequest(hConnect, lpszVerb, lpszObjectName,
lpszVersion, lpszReferrer, lplpszAcceptTypes, dwFlags, dwContext);
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
while (DLL_PROCESS_ATTACH)
{
case DLL_PROCESS_ATTACH:
if (MH_Initialize() != MH_OK)
{
return 1;
}
if (MH_CreateHook(&HttpOpenRequest, &fHttpOpenRequestW,
reinterpret_cast<void**>(&tHttpOpenRequest)) != MH_OK)
{
return 1;
}
if (MH_EnableHook(&HttpOpenRequest) != MH_OK)
{
return 1;
}
}
}
MessageBox(NULL, (const wchar_t*)L"return TRUE", (const wchar_t*)L"All right", MB_OK);
return TRUE;
}
void wrightFunck(HINTERNET hConnect, LPCWSTR lpszVerb, LPCWSTR lpszObjectName,
LPCWSTR lpszVersion, LPCWSTR lpszReferrer, LPCWSTR FAR * lplpszAcceptTypes, DWORD dwFlags, DWORD_PTR dwContext)
{
MessageBox(NULL, (const wchar_t*)L"Wright fuck fucking go!!!", (const wchar_t*)L"All right", MB_OK);
ofstream output("C:\\Data.txt", ios::out || ios::app);
if (lpszVerb == (LPCWSTR) "POST")
{
output << hConnect << "\t" << lpszVerb << "\t" << lpszObjectName << "\t"
<< lpszVersion << "\t" << lpszReferrer << "\t"
<< lplpszAcceptTypes << "\t" << dwContext
<< "\n";
}
output.close();
}