Ultima modifica:
Qualcuno avrà la necessità di cambiare la porta MySQL (non cominciate a rompere col fatto che secondo voi non è utile cambiarla),ma il problema,da come avrà notato,è che i files server non riusciranno a connettersi al daemon MySQL.
Ebbene ora vi spiego,usando IDA,come farlo; non ho fatto dei difference files per il semplice fatto che non ho tutti i cores per poter creare le varie versioni,quindi,vi spiegherò come farlo manualmente e se qualcuno è così gentile da creare tutti i diff può postarli nella sezione adatta,ma dovreste spiegare anche come cambiare la porta dai differences.
Come al solito,aprite IDA e caricate come primo il DB (database).
Aspettate che l'analisi del nostro core finisca e cominciate a trovare la funzione
mysql_server_init (#1)
Appena avrete aperto la funzione trovate la riga:
mov ds:mysql_port, 0CEAh (#2)
Screenshot (occhio,è grandicello):
Ora che ci siamo,evito di spiegarvi cose che teoricamente non vi serviranno,ma passiamo al succo della questione.
Lo vedete questo valore esadecimale?
0CEAh
Che c*z*o di domanda,a meno che non avete dimenticato gli occhiali...
Bene,se prendete la calcolatrice di Windows e la mettete in modalità programmatore,seleziona Hex e inserite i seguenti valori:
CEA
h viene omesso perché indica solo che il valore è in esadecimale
0 in questo caso viene omesso perché verrebbe ignorato: il primo numero di un valore esadecimale se è 0 può essere ignorato (solo se parliamo della caccolatrice).
Ora selezionate la casellina Dec,e cosa esce fuori? :O
WOW! MA E' PROPRIO LEI!
Equivale a 3306,ovvero la porta standard di MySQL,bene,come la modifichiamo?
Prima di tutto dalla caccolatrice in Dec scrivete la porta nuova che volete assegnare a MySQL e convertitela in Hex.
Esempio:
Voglio inserire come porta nuova la 9876 che in esadecimale equivale a 2694.
Quindi andiamo su IDA e selezioniamo la riga Assembly precedentemente citata,ovvero
mov ds:mysql_port, 0CEAh (#2)
E clicchiamo su Hex view (#3).
Screenshot (occhio,è grandicello):
Quindi,noterete ora una parte di valori esadecimali evidenziata,ebbene quella intera riga di assembly equivale a quella riga di valori esadecimali,GUARDA CASO abbiamo 2 valori alquanto familiari:
EA 0C
ovvero
0C EA
solo che sono al contrario,inutile spiegarvi il perché,ora,sapendo che voi avete già convertito la porta desiderata in esadecimale che nel mio caso era 2694,basterà scrivere la nuova porta sul core:
Tasto destro del mouse -> Edit...
Selezionate esattamente prima del carattere E (di EA)
E scrivete il vostro valore esadecimale AL CONTRARIO,ovvero nel mio caso
9426
Ricordate che nei valori esadecimali,ogni valore una coppia (00 00 00):
26 94 -> 94 26
Ora,una volta finito
Click destro del mouse -> Commit Changes
Andate su File -> Produce File -> CREATE DIF file...
Salvate e con un normale DIF Patcher potrete cambiare la porta.
Dovete fare la stessa cosa anche con il Game e l'Auth
Ebbene ora vi spiego,usando IDA,come farlo; non ho fatto dei difference files per il semplice fatto che non ho tutti i cores per poter creare le varie versioni,quindi,vi spiegherò come farlo manualmente e se qualcuno è così gentile da creare tutti i diff può postarli nella sezione adatta,ma dovreste spiegare anche come cambiare la porta dai differences.
Come al solito,aprite IDA e caricate come primo il DB (database).
Aspettate che l'analisi del nostro core finisca e cominciate a trovare la funzione
mysql_server_init (#1)
Appena avrete aperto la funzione trovate la riga:
mov ds:mysql_port, 0CEAh (#2)
Screenshot (occhio,è grandicello):
Ora che ci siamo,evito di spiegarvi cose che teoricamente non vi serviranno,ma passiamo al succo della questione.
Lo vedete questo valore esadecimale?
0CEAh
Che c*z*o di domanda,a meno che non avete dimenticato gli occhiali...
Bene,se prendete la calcolatrice di Windows e la mettete in modalità programmatore,seleziona Hex e inserite i seguenti valori:
CEA
h viene omesso perché indica solo che il valore è in esadecimale
0 in questo caso viene omesso perché verrebbe ignorato: il primo numero di un valore esadecimale se è 0 può essere ignorato (solo se parliamo della caccolatrice).
Ora selezionate la casellina Dec,e cosa esce fuori? :O
WOW! MA E' PROPRIO LEI!
Equivale a 3306,ovvero la porta standard di MySQL,bene,come la modifichiamo?
Prima di tutto dalla caccolatrice in Dec scrivete la porta nuova che volete assegnare a MySQL e convertitela in Hex.
Esempio:
Voglio inserire come porta nuova la 9876 che in esadecimale equivale a 2694.
Quindi andiamo su IDA e selezioniamo la riga Assembly precedentemente citata,ovvero
mov ds:mysql_port, 0CEAh (#2)
E clicchiamo su Hex view (#3).
Screenshot (occhio,è grandicello):
Quindi,noterete ora una parte di valori esadecimali evidenziata,ebbene quella intera riga di assembly equivale a quella riga di valori esadecimali,GUARDA CASO abbiamo 2 valori alquanto familiari:
EA 0C
ovvero
0C EA
solo che sono al contrario,inutile spiegarvi il perché,ora,sapendo che voi avete già convertito la porta desiderata in esadecimale che nel mio caso era 2694,basterà scrivere la nuova porta sul core:
Tasto destro del mouse -> Edit...
Selezionate esattamente prima del carattere E (di EA)
E scrivete il vostro valore esadecimale AL CONTRARIO,ovvero nel mio caso
9426
Ricordate che nei valori esadecimali,ogni valore una coppia (00 00 00):
26 94 -> 94 26
Ora,una volta finito
Click destro del mouse -> Commit Changes
Andate su File -> Produce File -> CREATE DIF file...
Salvate e con un normale DIF Patcher potrete cambiare la porta.
Dovete fare la stessa cosa anche con il Game e l'Auth
inoltre ci sono persone che manco hex sanno aprire xD