Newsgroup: it.comp.programmare.win32
Titolo: Process-Wide API Spying

ImageBase;
	// create target process
	STARTUPINFO startup;
	GetStartupInfo(&startup);
	PROCESS_INFORMATION procinfo;
	CreateProcess(filename,0,0,0,TRUE,CREATE_SUSPENDED,
0,0,&startup,&procinfo);
	// allocate memory in the target process
	BYTE* writebuff=(BYTE*)VirtualAllocEx(procinfo.hProcess,
0,4096,MEM_RESERVE,PAGE_EXECUTE_READWRITE);
	writebuff=(BYTE*)VirtualAllocEx(procinfo.hProcess,writebuff,
4096,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
	//get the adress of LoadLibraryAs
	DWORD
function=(DWORD)GetProcAddress(GetModuleHandle("kernel32.dll"),"LoadLibraryA");
	//fill the array with the machine instructions
	DWORD stringptr=(DWORD)&writebuff[20];
	strcpy(&buff[20],"dll Injection.dll");		// viene salvata la Dll in un
buffer
	DWORD funcptr=(DWORD)&writebuff[16];
	memmove(&buff[16],&function,4);
	buff[0]=0x68;
	memmove(&buff[1],&stringptr,4);
	buff[5]=0x68;
	memmove(&buff[6],&entryptr,4);
	buff[10]=0xFF;
	buff[11]=0x25;
	memmove(&buff[12],&funcptr,4);
	// copy the above array into the memory that we have allocated in the
target process
	WriteProcessMemory(procinfo.hProcess,writebuff,buff,4096,&bytes);
	// change the execution context of the target process's primary
thread
	CONTEXT Context;
	Context.ContextFlags=CONTEXT_CONTROL;
	GetThreadContext(procinfo.hThread,&Context);
	Context.Eip=(DWORD)writebuff;
	SetThreadContext(procinfo.hThread,&Context);
	ResumeThread(procinfo.hThread);
}
emi funziona correttamente.
Il mio problema è che non sò cosa mettere nell dll Iniection.dll visto
che ho provato a mettere le 2 funzioni ma non succede niente.
Chi può spiegarmi come fare?
Ringrazio chi vuol essere così gentile da darmi una mano.

 Chi puň spiegarmi come fare?
non ho letto l'articolo, ma la funzione che hai postato non fa altro che
caricare la tua DLL nel processo (e neanche troppo bene :P). dopodiché sta
a te modificare la IAT (non so se l'articolo ne parla).
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 a te modificare la IAT (non so se l'articolo ne parla).
Si lo sò quella funzione che ho scritto carica solo la Dll. L'articolo
ne parla, ma a me serviva un esempio un pò più completo per capire
come fare .Qualcuno potrebbe gentilmente mandarmene uno ,anche in
privato, anche se si tratta di altre Dll, ma basta che mi faccia
capire come modificare gli indirizzi dell'IAT.
Aiuto!!!!!!!!!!!!!!!!!!!!!
Poi ho quest'altro dubbio, l'articolo mi dice che per filtrare le
chiamate alla Writefile e ReadFile della kernel32.dll verso la mia
Dll , che funziona da filtro, dovrei modificare prima la EAT della
kernel32.dll sovrascrivendo agli indirizzi originali delle 2 funzioni
quelli delle mie proxy funzioni, quindi quando la mia applicazione
richiama le 2 funzioni , viene imbrogliata e mandata nella mia Dll
alle mie funzioni.
Giusto????

 Giusto????
è *un* metodo, e neanche il migliore visto che, come ho già detto migliaia
di volte, al primo Windows Update che riguardi kernel32.dll va tutto à
fancùl (è un francesismo).
ribadisco, studiati la specifica del formato PE/COFF e diverrai financo in
grado di inventare *da solo* tecniche di API hooking, senza aprire decine
di thread su Usenet.
