PDA

View Full Version : [help]"Antihack"


4ndr34s
11-12-2008, 21:07
raga ho bisogno di aiuto per creare un anti hack epr un mio gioco online vorrei che questo antihack mi nasconda il processo del mio gioco sia nel traskmanager ed anche negli injector usati per injectare dll e cosi mandare a ... il mio server potreste aiutarmi?

4ndr34s
12-12-2008, 10:10
up up

tomminno
12-12-2008, 10:26
raga ho bisogno di aiuto per creare un anti hack epr un mio gioco online vorrei che questo antihack mi nasconda il processo del mio gioco sia nel traskmanager ed anche negli injector usati per injectare dll e cosi mandare a ... il mio server potreste aiutarmi?

Speigati meglio. Vorresti nascondere il processo al task manager? Si può fare ma se usi ProcessExplorer? Nascondi anche a quello, ma se ti scrivi a mano del codice per visualizzare i processi attivi? Si può fare qualcosa anche per quello, ma che c'entra il tuo server? A quello ti puoi connettere in qualunque modo suppongo, basta spiare le connessioni aperte, ecc... Il circolo vizioso non si ferma più.

Ti merita migliorare la sicurezza del server.

4ndr34s
12-12-2008, 15:37
no allora ora ti spiego
a me serve un programma che sia in grado di nascondere il processo del mio gioco da tutto da qualsiasi applicazione che puo vedere i processi sopratutto dagli injector che servono ad injectare dll nel mio exe e cosi usare cheat nel mio server .
è chiaro ora?

tomminno
12-12-2008, 16:18
no allora ora ti spiego
a me serve un programma che sia in grado di nascondere il processo del mio gioco da tutto da qualsiasi applicazione che puo vedere i processi sopratutto dagli injector che servono ad injectare dll nel mio exe e cosi usare cheat nel mio server .
è chiaro ora?

L'inizione di dll lo puoi fare anche solo sapendo il nome dell'eseguibile, nasconderti non ti serve a niente.
Ci sono diversi modi per vedere se un processo è attivo, non c'è solo il task manager, ad esempio potresti elencare le connessioni aperte e vedere l'eseguibile (e sicuramente ci saranno tanti altri modi indiretti per visualizzare i processi attivi)

Quello che vorresti fare non è propriamente fattibile.

E poi scusa ma chi ti dice che qualcuno passi per forza dal tuo applicativo per connetterti al tuo server?

fero86
12-12-2008, 23:34
no allora ora ti spiego
a me serve un programma che sia in grado di nascondere il processo del mio gioco da tutto da qualsiasi applicazione che puo vedere i processi sopratutto dagli injector che servono ad injectare dll nel mio exe e cosi usare cheat nel mio server .
è chiaro ora? nasconderlo non puoi se non con metodi poco ortodossi che creerebbero troppe complicazioni durante lo sviluppo delle normali funzionalitá del programma, peró puoi proteggere il tuo processo in maniera tale che nessuno possa accedervi; é sufficiente modificarne la DACL rimuovendo tutte le ACE.

edit: sarebbe meglio peró lasciare comunque la possibilitá di terminare il tuo processo per dare all'utente la possibilitá di rimediare se si blocca; in definitiva quindi dovresti rimuovere tutti i permessi tranne quello per terminare il processo, PROCESS_TERMINATE.

fero86
12-12-2008, 23:42
L'inizione di dll lo puoi fare anche solo sapendo il nome dell'eseguibile, nasconderti non ti serve a niente. non piu su Windows Vista: i programmi non sono piu modificabili da utenti normali, ma solo eseguibili (finalmente!). non ci vuole molto ad impedire la modifica anche agli amministratori ed in generale a qualunque utente: alla fine il programma non deve essere modificato da nessuno, tutt'al piu cancellato.

questa soluzione non é il massimo visto che un utente col privilegio "TakeOwnership" puó prendere possesso del file e reimpostarne i permessi come meglio crede, d'altra parte male che vada é sufficiente ricopiare il file su un filesystem di tipo FAT (che non supporta i permessi) per piallare tutto il descrittore di sicurezza, peró meglio che niente.

fero86
12-12-2008, 23:59
altra soluzione che mi viene in mente al fine di evitare l'injection di DLL nel file eseguibile (cioé quando ancora il processo non é stato creato): fornire il programma vero e proprio in forma criptata e scrivere un loader che si occupa di decriptarlo prima di eseguirlo (evitando peró di scriverlo in chiaro sul disco); in questo modo modificare il file eseguibile diventa un lavoro troppo noioso, anche se ancora perfettamente fattibile (la soluzione perfetta a questo problema non esiste).

4ndr34s
15-12-2008, 20:53
mmm raga non so proprio come fare mi servirebbe una persona che mi aiuti nel progetto.

RaouL_BennetH
15-12-2008, 21:10
Ciao :)

Scusa se mi intrometto ma le mie sono domande solo di curiosità (non sono in grado di fornire aiuti su questo tema..troppo avanti per me) :

Ma il gioco l'hai scritto tu?

Il server è tuo ?

Non è che ti basterebbe munirti di qualcosa tipo punkbuster ?

Grazie :)

RaouL.

4ndr34s
15-12-2008, 21:13
ora ti rispondo il gioco non l'ho scritto io ma il server è mio e purtroppo il punkbuster credo non sia compatibile con il mio game

RaouL_BennetH
15-12-2008, 21:17
ora ti rispondo il gioco non l'ho scritto io ma il server è mio e purtroppo il punkbuster credo non sia compatibile con il mio game

Ah, ho capito.

Mi spiace di non poterti essere d'aiuto :boh:

Mi è venuto però da sorridere leggendo qualche 3d più sotto di un utente che cercava aiuto su come iniettare una dll in un gioco :p

4ndr34s
15-12-2008, 21:18
LOL quella è la cosa più facile di tutte XD

RaouL_BennetH
15-12-2008, 21:22
LOL quella è la cosa più facile di tutte XD

A scanso di equivoci:

Per me non è assolutamente facile dato che non saprei neanche da dove iniziare :)

Per qualcuno invece sarà la cosa più banale di questo mondo.

A me ha fatto sorridere il fatto di trovare contemporaneamente due 3d agli 'antipodi', il tuo che chiede come 'difendersi', l'altro che cerca aiuto su come 'attaccare' :D

(perdonatemi.. stasera non ci sto molto con la testa) :stordita:

4ndr34s
15-12-2008, 21:23
fa nulla capita ^^

nuovoUtente86
15-12-2008, 23:20
non piu su Windows Vista: i programmi non sono piu modificabili da utenti normali, ma solo eseguibili (finalmente!). non ci vuole molto ad impedire la modifica anche agli amministratori ed in generale a qualunque utente: alla fine il programma non deve essere modificato da nessuno, tutt'al piu cancellato.

questa soluzione non é il massimo visto che un utente col privilegio "TakeOwnership" puó prendere possesso del file e reimpostarne i permessi come meglio crede, d'altra parte male che vada é sufficiente ricopiare il file su un filesystem di tipo FAT (che non supporta i permessi) per piallare tutto il descrittore di sicurezza, peró meglio che niente.

Se ho ben capito, in Vista, non è consentito agli utenti limitati di modificare i file .exe?

fero86
15-12-2008, 23:37
Se ho ben capito, in Vista, non è consentito agli utenti limitati di modificare i file .exe? non tutti i file exe, solo i programmi installati in Program Files; se consulti le proprietá di sicurezza dell'intera cartella noterai un'ACE (Access Control Entry) associata alla cartella, sottocartelle e files e rivolta agli utenti del gruppo Users che concede solo i permessi di lettura ed esecuzione.

tomminno
16-12-2008, 08:10
non piu su Windows Vista: i programmi non sono piu modificabili da utenti normali, ma solo eseguibili (finalmente!). non ci vuole molto ad impedire la modifica anche agli amministratori ed in generale a qualunque utente: alla fine il programma non deve essere modificato da nessuno, tutt'al piu cancellato.


Scusa ma visto che il client è sul computer di qualcun altro come puoi assumere che questo usi un account utente?
E se usa un servizio per iniettare dll aribitrarie su processi arbitrari?

Se c'è qualcuno che ha intenzione di iniettare una dll in un processo di terzi non si ferma certamente davanti ai permessi dell'utente user

fero86
16-12-2008, 19:19
Scusa ma visto che il client è sul computer di qualcun altro come puoi assumere che questo usi un account utente?
E se usa un servizio per iniettare dll aribitrarie su processi arbitrari?

Se c'è qualcuno che ha intenzione di iniettare una dll in un processo di terzi non si ferma certamente davanti ai permessi dell'utente user
é solo un primo impedimento; poi il fatto che l'hacker usi un servizio non significa nulla: anche a SYSTEM é possibile togliere permessi.

poi se a questo problema si desidera porre una soluzione decisamente piu robusta allora é giunto il momento di documentarsi circa il tanto bistrattato Trusted Computing :D

Chukie
16-12-2008, 19:42
non piu su Windows Vista: i programmi non sono piu modificabili da utenti normali, ma solo eseguibili (finalmente!).

L'utente che hai quotato stava parlando di dll injection. Se la tua risposta a quell'affermazione è questa, non ti sei spiegato per niente bene.

E comunque, è possibilissimo pure su Vista. Giusto per esempio, c'è questo video su youtube:

http://www.youtube.com/watch?v=vO_JnMhTDQU

Chukie
16-12-2008, 19:44
LOL quella è la cosa più facile di tutte XD


Se la tecnica di dll injection è la "cosa più facile di tutte", possibile che ti trovi in difficoltà per questa cosa? :D

fero86
16-12-2008, 22:11
L'utente che hai quotato stava parlando di dll injection. Se la tua risposta a quell'affermazione è questa, non ti sei spiegato per niente bene.
L'inizione di dll lo puoi fare anche solo sapendo il nome dell'eseguibile, nasconderti non ti serve a niente. in questo post tomminno intendeva dire (giustamente) che per far eseguire una DLL da un certo programma non é necessario iniettarla all'interno di un processo che é giá in esecuzione: a volte conviene invece modificare il file eseguibile di quel programma linkandolo implicitamente alla tua DLL.



E comunque, è possibilissimo pure su Vista. Giusto per esempio, c'è questo video su youtube:

http://www.youtube.com/watch?v=vO_JnMhTDQU non dico che non sia possibile infatti...

4ndr34s
17-12-2008, 05:57
raga potreste aiutarmi?mi potreste dare il codice che quando un applicazione si chiude si chiude anche il mio programma?

fero86
17-12-2008, 07:47
raga potreste aiutarmi?mi potreste dare il codice che quando un applicazione si chiude si chiude anche il mio programma? non é difficile avendo il PID del processo di cui vuoi attendere la chiusura:

HANDLE hProcess = OpenProcess(SYNCHRONIZE, FALSE, dwProcessId);
if (hProcess == NULL)
{
// error handling
}
WaitForSingleObject(hProcess, INFINITE);

/* a questo punto devi chiudere il tuo programma; se ad esempio la tua é un'applicazione grafica Win32 devi usare PostQuitMessage */

PostQuitMessage(0);

4ndr34s
17-12-2008, 14:14
ma questa codifica non è per il c? io cerco stringhe per vb6 ed anche vb.net

banryu79
17-12-2008, 14:44
ma questa codifica non è per il c? io cerco stringhe per vb6 ed anche vb.net
Questa è colpa tua: non hai detto da nessuna parte, tranne adesso, che il linguaggio di riferimento era VB / VB.NET.
Tra l'altro avresti dovuto specificarlo nel titolo del thread :rolleyes:

4ndr34s
17-12-2008, 14:45
scusami non ti scaldare . ho commesso un errore cosa che capita a noi essere umani...

banryu79
17-12-2008, 15:01
scusami non ti scaldare . ho commesso un errore cosa che capita a noi essere umani...
E chi si scalda, figurati :)

4ndr34s
17-12-2008, 15:02
da come ti eri rivolto sembrava che mi stavi assalendo...

banryu79
17-12-2008, 15:12
da come ti eri rivolto sembrava che mi stavi assalendo...
Ah, ti sembrava così, ma perchè, che ho detto di, diciamo "aggressivo"?

4ndr34s
17-12-2008, 15:14
Questa è colpa tua:
da questo XD

banryu79
17-12-2008, 15:25
Beh, ma ho detto la verità: ho sottolineato semplicemente la causa che ha prodotto l'effetto, non ti pare?
E non ho mica detto: "Ma caXXo, è colpa tua!".
Ho anche cercato di rendere meno ambigua la cosa mettendo alla fine la faccina ironica proprio per diminuire la possibilità di fraintendimenti (del tipo appunto che ti sto aggredendo, così a muzzo, perchè magari sono un povero frustrato :D)

Comque in genere è difficile desumere da due righe il "tono" con cui l'interlocutore sta "colorando" una frase altrimenti neutra: in caso si dubbio, io mi limito a interpretarne il senso letterale (se mi scrivi che sono un coglione, non si scappa, se sono io che penso che mi stai dando del coglione, ma obiettivamente non si può evincere con sicurezza da quello che scrivi, allora preferisco non incolparti ne sentirmi offeso).

Mo torniamo in topic: stiamo usando il Forum come fosse una chat :D

fero86
17-12-2008, 16:17
questo topic é un teatro :asd:

4ndr34s, non ci dovrebbe volere molto a passare da quel codice C al corrispondente Visual Basic: si tratta di due API messe in croce, OpenProcess (http://msdn.microsoft.com/en-us/library/ms684320.aspx) e WaitForSingleObject (http://msdn.microsoft.com/en-us/library/ms687032.aspx), poi l'esperto di Visual Basic sei tu e la sintassi per importarle e richiamarle da Visual Basic dovresti saperla tu (io non ho mai programmato ne' col 6 ne' col .NET :D).

mi sembra un po' strano che cerchi codice per Visual Basic se con quell'ambiente non sai neanche importare una API.

fero86
17-12-2008, 16:29
spulciando su MSDN ho trovato una classe .NET che fa al caso tuo:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

puoi usarla in Visual Basic 2008 senza dover importare le API.

4ndr34s
17-12-2008, 18:35
comunque non ho mai detto di essere esperto :-S

4ndr34s
17-12-2008, 18:36
se potreste mettermi il codice completo mi farebbe più comodo...
comunque sono alle prime armi con visual basic.