Algoritmo, come funziona ? - Versione stampabile +- BorderGame (https://www.bordergame.it) +-- Forum: NosTale (/Forum-NosTale) +--- Forum: Server Privati Nostale (/Forum-Server-Privati-Nostale) +--- Discussione: Algoritmo, come funziona ? (/Thread-Algoritmo-come-funziona) |
Algoritmo, come funziona ? - System32 - 04-01-2014 07:23 PM Ciao ragazzi, con sommo piacere sono riuscito a reversare i vari algoritmi lato client, quelli del pacchetto di autenticazione e selezione server/canali, per intenderci. encrypt: Codice: 0051ED03 8BF8 MOV EDI,EAX 0051EC25 80F2 C3 XOR DL,0C3 0051EC28 80C2 0F ADD DL,0F decrypt: Codice: 0051F089 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] 0051F090 80EB 0F SUB BL,0F hash attuale, lo potete trovare all'address 0051F5D8: Codice: FCCCDAA0C5C0BE133D7A028C82938FC3905D4F7F68D3C3EE632B855343106CA5 l'algoritmo di generazione è alquanto imbarazzante, MD5(NostaleX.dat) + MD5(Nostale.dat) ultimo parametro del pacchetto: MD5(HASH + ID) algoritmo password: non mi è ancora ben chiara la logica della password, premetto che non ho esaminato via debugger. password: test password criptata: 37673426E527A31774 password in hex: 74657374 da quanto ho capito la password viene segmentata a blocco di 4, partendo dalla fine, ed il primo, iniziale, viene scartato. 37 6734 26E5 27A3 1774 di conseguenza: 673426E527A31774 6 7 3 4 2 6 E 5 2 7 A 3 1 7 7 4 come viene generato il blocco iniziale ? 37 per intenderci. da che schermata dipendono i byte secondari ? 6 3 2 E 2 A 1 7 per intenderci. un array statico oppure dipendenti dal primo ? qualcuno ne è a conoscenza ? o me la devo sbrigare io ? Ciao ! RE: Algoritmo, come funziona ? - roxas9797 - 05-01-2014 11:27 AM buonritorno d3v1l thx per gli algoritmi <3 RE: Algoritmo, come funziona ? - System32 - 05-01-2014 02:55 PM Cosa centra ora d3v1l ? non lo conosco personalmente ammesso sia una persona, animale o cosa. La discussione contiene una domanda in rosso, non era una release ma una richiesta di aiuto. Ciao ! RE: Algoritmo, come funziona ? - roxas9797 - 05-01-2014 09:38 PM D: oook se non ricordo male se la password è formata da un totale di caratteri pari, vengono generati 3 "numeri/lettere" a caso se la password è formata da un totale di caratteri dispari, vengono generati 4 "numeri/lettere" a caso. password: test (pari) password criptata: 376[casuali] 73426E527A31774 73426E527A31774 = password in hex + "letteri e numeri a caso" RE: Algoritmo, come funziona ? - ~Giorigo1~ - 05-01-2014 10:56 PM roxas ti sbagli pienamente.. Incomincio innanzitutto con il dire che quelle lettere non sono generate a random, bensì sono estratte casualmente da una tabella con byte precisi. Successivamente il fatto del pari/dispari se ricordo bene è la soluzione di trollface, ma da come ho potuto vedere la password viene semplicemente divisa in segmenti da 4 come detto su. Il pari ed il dispari non centrano proprio, a volte è di due, a volte di tre. Poi dico che anche l'algoritmo da te elencato è sbagliato , esso procede in questa maniera : C'è un ciclo il quale preleva ogni volta un byte della password proseguendo per ordine, lo converte in esadecimale, ed estrae un bytes casualmente dalla tabella, lo affianca all'hex del byte della password, ed inverte il secondo ed il terzo byte. Esempio, abbiamo la password "test", si avvia il ciclo. preleva il primo byte, 't', prende il suo ascii e lo converte in HEX.(in questo caso l'hex è : 74 se ricordo bene). A questo punto estra un byte casualmente dall'array prendiamo caso sia 24 e lo affianca a 74 in questa maniera : 2474, poi inverte il 2 ed il 3 byte cosi : 2744. Ecco criptato il primo carattere della password Per rispondere alla domanda se la prima parte della password è dipendente dagli altri segmenti da 4, credo sia estratta anch'essa dalla tabella, quindi non dipendente, saluti ^^. System32 spero di averti schiarito i dubbi riguardo la password, se vuoi vedere tu stesso l'algoritmo assembly va da : 0051F71E a : 0051F7B3. Aggiungo inoltre che non penso sia D3V!L, ha detto che aveva abbandonato questa roba e perlopiù mi ha anche aggiunto su skype. RE: Algoritmo, come funziona ? - System32 - 05-01-2014 11:26 PM @~Giorigo1~ Inanzi tutto ti ringrazio per la risposta alquanto dettagliata. Si è a conoscenza di questa tabella ? Se si, potresti farmela presente ? Penso comunque che ci darò un occhiata personalmente, preferisco stare sul sicuro. Grazie ancora, Ciao ! RE: Algoritmo, come funziona ? - ~Giorigo1~ - 05-01-2014 11:43 PM System32 la sto cercando attualmente tra le call dell'algoritmo, appena trovo tutti i bytes, aggiorno il seguente post con la tabella ^^ RE: Algoritmo, come funziona ? - roxas9797 - 06-01-2014 05:27 PM l'algoritmo della password di nostale non è complesso, la password viene convertita in hex e poi confusa con lettere e numeri a caso.. se la password è composta da un numero dispari di caratteri all'inizio vengono inserite solo 3 cifre mentre se la password è composta da un numero di caratteri pari vengono inserite 4 cifre. esempio: server = è composto da 6 caratteri = 6 è un numero pari = 4 cifre precedono la password convertita in hex. prova = è composto da 5 caratteri = 5 è un numero dispari = 3 cifre procedono la password convertita in hex. oltre a ciò tra ogni cifre/lettera della password viene inserito una lettera/cifra a caso.. esempio: 74657374 = parola test convertita in hex. diventerà 7B43625673327E4 [i numeri in rosso li ho buttati a caso].. quindi dato che test è composto da 4 cifre (4 = numero pari) il tutto diventerà: 10027B43625673327E4 [i numeri in rosso li ho buttati a caso].. questa è tutta farina di d3v1l se ti interessa è uguale alla mia ma più approfondita °° quindi controlla RE: Algoritmo, come funziona ? - InfiniteCash - 06-01-2014 05:41 PM @[System32] Confermo pienamente, non sei d3v!l in quanto devil e solo frutto del ingenio di una persona come shimox bin sei frutto per caso di quella stessa persona? RE: Algoritmo, come funziona ? - ~Giorigo1~ - 06-01-2014 06:25 PM Roxas, la mia risposta è completamente diversa dalla tua.. Rileggi bene, la mia è quella corretta non il vecchio algoritmo ipotizzato che è errato, ovvero quello elencato da te.. Cerco di essere un più schematico : 1.Quelle lettere/numeri non sono a caso, ma sono estratti da un array con bytes specifici.. Non è generato nulla casualmente. 2.L'algoritmo da te elencato è sbagliato.. oltre a fatto che i bytes non sono a caso ma non vengono inseriti semplicemente tra un byte e l'altro della password, ho scritto sopra l'algoritmo corretto, vengono affiancati 1 byte della password ed 1 byte estratto dall'array, e poi vengono invertiti il 2 ed il 3 byte.. Ho fatto anche l'esempio : 24(byte estratto)74(byte password) quindi 2474 è appena li affianca e poi dopo diventa 2744 poichè il 4 ed il 7 vengono scambiati di posto(il secondo byte ed il terzo byte vengono appunto invertiti) spero hai capito adesso. 3.Per quanto riguarda il pari e dispari, è un altro byte estratto dall'array, nulla di casuale. Spero di essere stato chiaro ^^. RE: Algoritmo, come funziona ? - roxas9797 - 06-01-2014 08:30 PM ah allora chiedo venia TT , so solo che ho facendo in quel modo riuscivo a leggere le password xD sorry RE: Algoritmo, come funziona ? - System32 - 07-01-2014 12:48 AM (06-01-2014 05:41 PM)InfiniteCash Ha scritto: @[System32] Confermo pienamente, non sei d3v!l in quanto devil e solo frutto del ingenio di una persona come shimox bin sei frutto per caso di quella stessa persona? Mi dispiace ma tendo a non capire, se vuoi rispiegarmelo con calma non esitare a mandarmi un PM. (05-01-2014 11:43 PM)~Giorigo1~ Ha scritto: System32 la sto cercando attualmente tra le call dell'algoritmo, Avendo 10 minuti a disposizione ho dato un occhiata all'algoritmo, nulla di approfondito, questo direi che basta a confermare la tua teoria. Codice: 0051F736 8D4D A4 LEA ECX,DWORD PTR SS:[EBP-5C] Riguardo i bytes ci darò un occhiata non appena ne avrò l'occasione, in caso ti informerò via PM con la relativa tabella o se sarà ancora aperta la discussione qua. (06-01-2014 08:30 PM)roxas9797 Ha scritto: ah allora chiedo venia TT , so solo che ho facendo in quel modo riuscivo a leggere le password xD sorry Tranquillo, nulla di grave. Casomai sei riuscito ad adattare la funzione per ottenere un risultato discreto/temporaneo ma sicuro che il pari/dispari sia applicabile in ogni caso ? da quanto ho visto, il blocco iniziale varia dai 2 ai 4 caratteri mentre la tua teoria si basa su 3 e 4. Se riuscite a trovare qualcosa, prima di me ed ammesso che vi faccia piacere, postate pure. Ciao ! RE: Algoritmo, come funziona ? - ~Giorigo1~ - 07-01-2014 10:59 PM Ho rivisto la funzione, il pari / dispari credo proprio sia una cazzata.. A volte sono due, a volte tre ed a volte quattro i byte, credo sia estratto come il resto dalla tabella con i bytes ^^ Quindi system, il blocco iniziale, è estratto come il resto RE: Algoritmo, come funziona ? - System32 - 11-01-2014 08:16 PM Si, è quello che ho detto io nel post precedente. Ecco la tabella promessa: 2E, 2A, 17, 4F, 20, 24, 47, 11, 5B, 37, 53, 43, 15, 34, 45, 25, 4B, 1D, 2F, 58, 2B, 32, 63 Direi che si può chiudere. Ciao ! RE: Algoritmo, come funziona ? - ~Giorigo1~ - 11-01-2014 10:30 PM Che dire, grazie per la tabella : mi hai risparmiato un bel po di lavoro anche perché ultimamente sto davvero poco al computer.. Un bel 1 per la tabella, segnalo chiusura RE: Algoritmo, come funziona ? - Lord Freud - 11-01-2014 11:16 PM Chiudo come da richiesta. |