Einfachen Injector erstellen

06/25/2010 19:18 gänseblümchen#1
Hallo e*PvP,
Dieser Thread hat mir eine Menge Zeit und viel Aufwand gekostet.
Aber ich hoffe ich konnte euer Wissen erweitern und euch weiterhelfen :)
Hier die GANZEN schritte.

#include <windows.h>
#include <tlhelp32.h>

//define functions
BOOL IsAdministrator(VOID);
BOOL InjectToProcess(LPSTR lpTargetName);
DWORD GetProcId(LPSTR ProcName);

#pragma comment (linker,"/entry:WinMain filealign:0x200")

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
// TODO: Place code here.
if(IsAdministrator()==FALSE){
MessageBox(NULL,"You do not have admin rights!",0,0);
}
InjectToProcess("Target.exe");
ExitProcess(0);
return 0;
}

//administrative priviligesm are necesary for opening remote process

BOOL IsAdministrator(VOID)
{
SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
PSID AdministratorsGroup;
// Initialize SID.
if( !AllocateAndInitializeSid(&NtAuthority,2,SECURITY_ BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS,0, 0, 0, 0, 0, 0,&AdministratorsGroup))
{
return FALSE;
}
// Check whether the token is present in admin group.
BOOL IsInAdminGroup = FALSE;
if(!CheckTokenMembership(NULL,AdministratorsGroup, &IsInAdminGroup))
{// Error occurred.
IsInAdminGroup = FALSE;
}
// Free SID and return.
FreeSid(AdministratorsGroup);
return IsInAdminGroup;
}

//lets use tlhelp api to get our target proc Id by name, remember it is case sensitive
DWORD GetProcId(LPSTR ProcName)
{
PROCESSENTRY32 pe32;
HANDLE hProcessSnap = INVALID_HANDLE_VALUE;

//create snapshot of all processes running
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if( hProcessSnap == INVALID_HANDLE_VALUE )return (0);

pe32.dwSize = sizeof(PROCESSENTRY32);
if( Process32First(hProcessSnap, &pe32) == 0 ) {
CloseHandle( hProcessSnap );
return (0);
}
do {//lets loop thru all processes and compare its names with ours
if(lstrcmp(ProcName,pe32.szExeFile)== 0)
return pe32.th32ProcessID;
}while(Process32Next(hProcessSnap,&pe32) );

CloseHandle( hProcessSnap );
SetLastError(0);
return (0);
}



BOOL InjectToProcess(LPSTR lpTargetName)
{

HINSTANCE hKernel;
HANDLE hProcess, hThread;

DWORD pLoadLibraryA;

DWORD dwAllocAddress = 0, dwTargetProcId = 0,
dwBuflen = 0, dwNewThreadId = 0, dwWritten = 0;

//allocate string buffer
LPSTR lpModulePath = (LPSTR)GlobalAlloc(GPTR,MAX_PATH);

//get library full path
GetModuleFileNameA(NULL,lpModulePath,MAX_PATH);
lpModulePath[lstrlen(lpModulePath) - 4] = 0;
lstrcat(lpModulePath,".dll");

//lets check if the library exist
WIN32_FIND_DATA WFD;
if(FindFirstFileA(lpModulePath,&WFD) == INVALID_HANDLE_VALUE) {
MessageBox(NULL,"... Dll Not Found!",0,0);
return (1);
}


hKernel = GetModuleHandle("kernel32.dll");
if(hKernel == NULL)
hKernel = LoadLibrary("kernel32.dll");

if(hKernel == NULL) {
MessageBox(NULL,"It seems you dont have kernel lol",0,0);
return (1);
}

pLoadLibraryA = (DWORD)GetProcAddress(hKernel,"LoadLibraryA");

do {
dwTargetProcId = GetProcId(lpTargetName);
Sleep(20);
}while(!dwTargetProcId);



hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwTargetProcI d);

if( GetLastError() != NO_ERROR ) {
MessageBox(NULL,"Failed To Open Process!",0,0);
return 1;
}

MessageBox(NULL,"Process Opened Succefully",0,0);
dwAllocAddress = (DWORD)VirtualAllocEx(hProcess,0,lstrlen(lpModuleP ath),MEM_COMMIT,PAGE_READWRITE);

if( GetLastError()!= NO_ERROR ) {
CloseHandle(hProcess);
MessageBox(NULL,"Unable To Allocate Memory",0,0);
return 1;
}

MessageBox(NULL,"Memory Allocated Succefully",0,0);

WriteProcessMemory(hProcess,(LPVOID)dwAllocAddress ,lpModulePath,lstrlen(lpModulePath),&dwWritten);

if( GetLastError() != NO_ERROR ) {
CloseHandle(hProcess);
MessageBox(NULL,"...Unable To Write Memory",0,0);
return 1;
}

hThread = CreateRemoteThread(hProcess,0,0,(LPTHREAD_START_RO UTINE)
pLoadLibraryA,(LPVOID)dwAllocAddress,0,&dwNewThrea dId);

if( GetLastError() != NO_ERROR ) {
CloseHandle(hProcess);
MessageBox(NULL,"...Failed To Create Thread, Try Again",0,0);
return 1;
}

CloseHandle(hThread);
CloseHandle(hProcess);
GlobalFree(lpModulePath);

MessageBox(NULL,"...Thread Created Succefully",0,0);
return (0);
}





So das war's nun habt ihr euren Injector.
PLS PRESS THX :D


Lg gänseblümchen
06/25/2010 19:20 caniboy199#2
HÄÄÄÄÄÄÄ ???? was ist injector was macht man damit ???????????????????????
06/25/2010 19:22 Dyrd!n#3
:facepalm: injector injeziert eine dll in eine exe
06/25/2010 19:27 gänseblümchen#4
Quote:
Originally Posted by caniboy199 View Post
HÄÄÄÄÄÄÄ ???? was ist injector was macht man damit ???????????????????????
lol was für ne doofe frage^^
Du kennst doch das "Sprichwort": Wenn man keine Ahnung hat, einfach mal Fresse halten. ^.^
Das trifft gerade auf dich zu.
:facepalm:
06/25/2010 19:28 bazookabubblegum#5
hm.. für so viel schreiben haste dir dein thanks verdient :D
06/25/2010 19:45 GeFaKt by Fabi#6
Quote:
Originally Posted by gänseblümchen View Post
lol was für ne doofe frage^^
Du kennst doch das "Sprichwort": Wenn man keine Ahnung hat, einfach mal Fresse halten. ^.^
Das trifft gerade auf dich zu.
:facepalm:
mal ganz ruhig. ok?

wenn er sich nicht auskennt, was ist daran schlimm, und Fragen kostet ja nichts also, leise!!!

hab dich gemeldet, wegen Beleidigung. -> Und das zurecht.
06/25/2010 19:51 Büny™#7
ehm? das ist kein injector code? das ist irgentein c++ code aber kein visual basic o.O
ich habe schon viele injectoren gecodet :) keins davon sieht so aus.
06/25/2010 20:00 gänseblümchen#8
Quote:
Originally Posted by GeFaKt by Fabi View Post
mal ganz ruhig. ok?

wenn er sich nicht auskennt, was ist daran schlimm, und Fragen kostet ja nichts also, leise!!!

hab dich gemeldet, wegen Beleidigung. -> Und das zurecht.
Aha. Ne richtige Beleidigung. Du bist soo Pingeling. Und jetzt tu mal nicht so brav'.
Ich weiß ganz genau dass du auch schon beleidigt hast.

Quote:
Originally Posted by 74büny74 View Post
ehm? das ist kein injector code? das ist irgentein c++ code aber kein visual basic o.O
ich habe schon viele injectoren gecodet :) keins davon sieht so aus.
habe ich gesagt, dass das ein Injector für Visual Basic ist ?
Nein ! Also ?
Das sind die Schritte für C++ 2008
06/25/2010 20:04 GeFaKt by Fabi#9
Quote:
Originally Posted by gänseblümchen View Post
Aha. Ne richtige Beleidigung. Du bist soo Pingeling. Und jetzt tu mal nicht so brav'.
Ich weiß ganz genau dass du auch schon beleidigt hast.
ok schick mir doch, PN wo ich jemanden beleidige??

so lächerlich, irgenwas mir zu unterstellen, und kein Beweis.
Du beleidigst jemanden, der sich nicht auskennt. -> -> "GUT AB"

komm red dich raus, du wurdest gemeldet von mir, und zurecht auch.
06/25/2010 20:13 Chicken17#10
das kommt hier rein: [Only registered and activated users can see links. Click Here To Register...] außerdem ist das kein tutorial sondern nur ein code den man kopieren und einfügen muss (nichts erklärt usw.)
06/25/2010 20:24 GeFaKt by Fabi#11
falsche sektion

also wenn ich das jetzt alles richtig verstanden habe, Glaub ich zu 100% :D:D
ja #closerquest
06/25/2010 21:13 aedidas96#12
SCHÖNER THREAD n1
06/25/2010 21:52 HackTec#13
ich hab schon sowas gemacht....

viel uebersichtlicher....
06/25/2010 21:54 theit123#14
1. Diesen Thread gibt es schon

2. Dieser Thread ist nichtmal ein Tutorial , das ist grad mal ein Code Posting Thread

3. Sowieso falsche Sektion

4. Das ist nichtmal ausführlich

Ich würde jetzt reporten, aber Fabi hat es ja anscheinend schon gemacht .

Außerdem musst du an deiner Ausdrucksweise arbeiten , gänseblümchen .
06/25/2010 22:23 gänseblümchen#15
Quote:
Originally Posted by theit123 View Post
Außerdem musst du an deiner Ausdrucksweise arbeiten , gänseblümchen .
Upps wo habe ich mich denn wie ausgedrückt ?
Und in welchem Sinne meinst du das ?
Im sprachlich korrekten Sinne oder im 'asozialem' Sinne ?


closed es halt..