Wooo!! Madshi the code in C run very well
:blueBalloon::greenBalloon:
:blueBalloon::redBalloon:
The sources:
Code: Select all
//The Injector coded in MFC/C++
BOOL CMsnAvalonApp::InitInstance()
{
HANDLE hTargetProc,hSnapShot;
PROCESSENTRY32 ProcInf;
BOOL bFind=FALSE,bIsValid;
DWORD dwIdTargetProc;
CString szMsnProcName;
szMsnProcName = "msnmsgr.exe";
hSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
bIsValid = ::Process32First(hSnapShot,&ProcInf);
while (bIsValid && !bFind) {
if (szMsnProcName == ProcInf.szExeFile) {
dwIdTargetProc = ProcInf.th32ProcessID;
bFind = TRUE;
}
bIsValid = ::Process32Next(hSnapShot,&ProcInf);
}
if (!bFind) return FALSE;
hTargetProc = ::OpenProcess(PROCESS_ALL_ACCESS,TRUE,dwIdTargetProc);
InjectLibrary((DWORD)hTargetProc,"MsnAvHook.dll");
::CloseHandle(hSnapShot);
::CloseHandle(hTargetProc);
return TRUE;
}
Code: Select all
//The Dll that create a new window
void InitApp();
void EndApp();
HINSTANCE hInstance;
BOOL APIENTRY DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpReserved)
{
switch (fdwReason) {
case DLL_PROCESS_ATTACH:
hInstance = hinstDLL;
InitApp();
break;
case DLL_PROCESS_DETACH:
EndApp();
}
return TRUE;
}
////////////////////////////////////////////////////
// Main Thread
//Global vars
HANDLE hMainThread=NULL;
DWORD idMainThread=0;
HWND hMainWin;
//Headers
LRESULT CALLBACK MainWinProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
DWORD WINAPI MainThread(LPVOID lpParameter) {
WNDCLASSEX wcex;
MSG msg;
char szClassName[] = "WndExample";
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)MainWinProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = (HICON)NULL;
wcex.hCursor = (HCURSOR)NULL;
wcex.hbrBackground = (HBRUSH)NULL;
wcex.lpszMenuName = (LPCSTR)NULL;
wcex.lpszClassName = szClassName;
wcex.hIconSm = (HICON)NULL;
RegisterClassEx(&wcex);
hMainWin = CreateWindow(szClassName,"Example",WS_POPUP,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
if (hMainWin == NULL)
return FALSE;
ShowWindow(hMainWin,SW_SHOW);
// Main message loop:
while (GetMessage(&msg,NULL,0,0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return TRUE;
}
LRESULT CALLBACK MainWinProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
/////////////////////////////////
// Events
void InitApp()
{
MessageBox(NULL,"Im inside the process","DEBUG",MB_OK);
hMainThread = CreateThread(NULL,0,&MainThread,(LPVOID)NULL,0,&idMainThread);
if (hMainThread == NULL)
return;
MessageBox(NULL,"Thread running","DEBUG",MB_OK);
}
void EndApp() {
if (IsWindow(hMainWin)) {
DestroyWindow(hMainWin);
}
}