Guida ad eMule AnalyZZUL

Aperto da 3ul3r0, 08 Maggio 2009, 01:21:20 AM

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

3ul3r0

AnalyZZUL


Guida basata sulla AnalyZZUL 3.0 (eMule 0.49c)




Questa semplice mod è nient'altro che il frutto del lavoro del programmatore Tuxman il quale ha applicato un sistema antileeching alla mod ZZUL, creando quindi "una mod della mod". Il fine era quello di fornire una mod adatta per il releasing ma affiancata da un sistema per prevenire i client scorretti che rovinano il network.
Nel seguito verranno spiegate solo le novità introdotte, mentre per le caratteristiche ereditate è possibile far riferimento alla guida ad eMule ZZUL .





Client Analyzer

Ideato da thewizardofdos, lo scopo di questa interfaccia è quello di analizzare in un certo intervallo di tempo tutte le azioni messe in atto dai client con cui entriamo in contatto e assegnare loro un punteggio a seconda di come vengono giudicate tali azioni.
L'analisi dei client viene fatta in automatico mentre eMule è in esecuzione, e la bontà dei client viene valutata sempre sulla base delle loro azioni, a prescindere dal fatto che quel client sia effettivamente legale o meno.
Con questo diverso approccio al problema tutto viene ridotto quindi alla semplice classificazione dei client in "buoni" o "cattivi", e come diretta conseguenza la loro posizione nella nostra coda sarà ostacolata se risultano "cattivi".
Tuttavia non esiste solo una penalizzazione, ma anche una riabilitazione, nel senso che se un client penalizzato inizia ad inviarci abbastanza chunk (3 o 5 a seconda dei casi), l'Analyzer provvederà a rimuovere le penalizzazioni inflitte a quel client in modo da rimetterlo in condizioni di poter concorrere nuovamente per l'ottenimento di uno slot.

A differenza di altri sistemi antileecher, il Client Analyzer risolve due problematiche:

  • Non è necessario dover scaricare continuamente la "lista nera", cioè il file contenente gli "identificativi" dei client scorretti conosciuti, come succede con le mod che usano il DLP. Il Client Analyzer è sempre attivo e lavora in background.
  • Non c'è il rischio di valutare male o non valutare. Infatti con i sistemi classici antileecher basati sul riconoscimento delle stringhe o degli opcode usati dalle mod illegali, c'è il rischio che sfugga qualche mod sconosciuta o non ancora inclusa nell'elenco, oppure può capitare la situazione opposta, cioè una possibile nuova mod con una particolare stringa venga bannata perché quella stringa è presente nella "lista nera", anche se quella mod non aveva attuato nessun comportamento scorretto. Il Client Analyzer non ha nessuna "lista nera", ma si limita a valutare i client sul loro comportamento nei nostri confronti.

Riassumendo:

  • L'Analyzer non richiede nessun aggiornamento;
  • L'Analyzer colleziona automaticamente dati per ognuno dei client con cui entra in contatto;
  • L'Analyzer ricorda questi dati raccolti e li salva in un file antileech.met presente nella cartella /config. I dati di ogni client vengono conservati per 150 giorni dall'ultima volta che è stato visto, trascorsi i quali verranno rimossi;
  • L'Analyzer lavora solo per analizzare il comportamento di un client;

Questi sono i comportamenti e le azioni monitorate dal Client Analyzer, e nelle Statistiche è possibile controllare il numero di client che hanno attuato queste azioni scorrette nei nostri confronti:



  • Nickthieveries : Le Community Mod sono mod che riservano particolari vantaggi in termini di download a quei client che appartengono alla stessa comunità, cioè che usano lo stesso client, e per "riconoscersi" tra loro fanno uso di un TAG, cioè un identificativo nel nome. Questo ha portato alla nascita di alcune mod leecher che copiano il nome o parte di esso proprio per "emulare" l'appartenenza alla stessa comunità ed ottenere quindi una spinta nella coda di upload. Il Client Analyzer crea una stringa random contenente il nostro nome + [caratteri casuali], e la invia al client restando poi ad osservare il suo comportamente. Se il client modifica il suo nome adattandolo al nostro, allora l'Analyzer ha intercettato un ladro di nick, e può procedere alla penalizzazione.
  • Modthieveries : Simile al precedente, identifica i client che cercano di copiare la stringa della nostra mod. 
  • File fakes : Riconosce client che ci inviano file corrotti. Lavora in combinazione con l'UDP-FNF fakes.
  • UDP-FNF fakes : Identifica quei client che rispondono alle richieste di download con "File Not Found" (FNF), quando invece lo hanno in condivisione.
  • Fast asks : Identifica quei client che fanno richieste per i file troppo velocemente rispetto alla soglia di ~29 minuti dell'eMule ufficiale.
  • Spams : Penalizza quei client che ci inviano messaggi pubblicitari (spam). eMule consente di filtrare lo spam, ma l'Analyzer va oltre e punisce quei client abbassando loro il punteggio.
  • FastXS : Identifica quei client che sfruttano lo scambio fonti per richiederci nuove fonti, ma non rispondono invece alle nostre richieste.
  • Rapporto Up/Down : Analizza il rapporto tra la quantità di dati che un client ci invia e quelli che invece preleva da noi. La penalizzazione ovviamente inizia quando scaricano un chunk in più di quello che hanno inviato. 

I client che subiscono una penalizzazione presentano questa icona vicino al loro nome, e accedendo attraverso il menù contestuale alla schermata "Mostra Dettagli" è possibile visionare il motivo della penalizzazione alla voce Anti-Leech Info.





Spread Priority


Lo Spread Priority è una particolare priorità di Upload automatica che usa le fonti complete (visibili nella colonna Fonti Complete della finestra File Condivisi) per decidere quale priorità assegnare ai file condivisi. Esso non agisce sui file incompleti e sui file cui abbiamo impostato la priorità Auto, quindi consente solo di rimodulare automaticamente le priorità *Release*, Alta, Normale, Bassa, Molto Bassa a seconda se viene superata o meno una certa soglia di fonti complete.
Lo Spread Priority agisce in tre modi:

  • Aumenta la priorità di upload direttamente al livello *Release* se il file ha un numero di fonti complete inferiore alla soglia scelta, a meno che non sia già al livello *Release*.
  • Aumenta la priorità di upload di un livello la volta se il file ha un numero di fonti complete uguale alla soglia scelta.
  • Diminuisce la priorità di upload di un livello la volta finché il file ha un numero di fonti complete superiore alla soglia scelta.

Le priorità su un file non vengono cambiate se sono passati meno di 2 minuti dall'ultimo cambio di priorità sullo stesso file.
Il valore della soglia si può impostare nelle Opzioni Avanzate alla voce Complete Sources Limit [1...10], che è possibile scegliere quindi tra 1 e 10, mentre con la casellina Attiva è possibile attivare o meno questa gestione delle priorità.





SUQWT

Permette di rendere eMule "presente" anche quando è disconnesso, salvando il tempo di attesa dei client che sono nella nostra coda di Upload nel momento in cui scolleghiamo eMule (chiusura volontaria o crash). In tal modo quando gli stessi client ci richiedono lo stesso file, tornano nella coda di Upload ma vedranno il loro nuovo tempo di attesa sommarsi al precedente valore che eMule aveva salvato nel file clients.met.SUQWTv2.met presente nella cartella /config. Questo permetterà loro di tornare in coda non partendo da un tempo nullo, ma partendo dal vecchio tempo salvato. E' una funzione inglobata nel codice della AnalyZZUL, quindi è sempre attiva e non può essere disattivata.





Modifiche minori

Nelle Opzioni --> Opzioni Avanzate è possibile abilitare due nuove voci:

  • Log Client Analyzer actions
    Permette di visualizzare nel Registro Approfondito (Verbose) le azioni del Client Analyzer, quindi tutte le eventuali penalizzazioni applicate.
  • Log SUQWT events
    Mostra nel Registro Approfondito (Verbose) le azioni del SUQWT, come il salvataggio e la restituzione dei tempi di attesa in coda.






Guida a cura di 3ul3r0

Questa guida è pubblicata con licenza Creative Commons Attribution 2.5 License