Thejuster 945 Segnala messaggio Inviato May 17, 2016 Ragazzi ho craccato DynRPG. Ho rimosso il logo iniziale molto fastidioso Condividi questo messaggio Link di questo messaggio Condividi su altri siti
Ghost Rider 1887 Segnala messaggio Inviato May 17, 2016 asd sei incorregibile justino XDDD povero cherry, insomma, si è dato da fare per darci i plugin, il minimo che possiamo fare è far comparire il suo logo prima del gioco. 1 Thejuster reacted to this Condividi questo messaggio Link di questo messaggio Condividi su altri siti
Thejuster 945 Segnala messaggio Inviato May 17, 2016 Ma no! Nei crediti sicuramente, ma all'avvio e molto snervante come cosa >_> Sopratutto ogni volta che si testa il gioco. Mettere un logo all'avvio e per me che non lo so esempio e come dire questo gioco e stato fatto da me o con il mio tool. Mentre per i plug-in non dovrebbero esserci loghi o altro. Tanto gia compaiono le cartelle nella directory del gioco. Condividi questo messaggio Link di questo messaggio Condividi su altri siti
kaine 1858 Segnala messaggio Inviato May 17, 2016 XD Arrivi secondo, un utente tedesco l'aveva già fatto e cherry non fu tanto contento XDDDD Condividi questo messaggio Link di questo messaggio Condividi su altri siti
Thejuster 945 Segnala messaggio Inviato May 17, 2016 Doh! XD E cmq Cherry non può pretendere nulla. Il tool non è suo. Anzi per dirla tutta, ha anche violato il copyright manomettendo il programma originale il ché non è permesso XD asd. Cosa fa? denuncia per aver modificato una sua modifica ad un programma craccato? XD Condividi questo messaggio Link di questo messaggio Condividi su altri siti
kaine 1858 Segnala messaggio Inviato May 17, 2016 ahhaha XD No sbuffa e bon di più non credo. Mi chiedo che fine abbia fatto, non si vedono suoi posta da un bel po. Condividi questo messaggio Link di questo messaggio Condividi su altri siti
Thejuster 945 Segnala messaggio Inviato May 17, 2016 devo ammettere però che è un gran figlio di .... bravo ragazzo XD Ci avrà sputato veramente del sangue sopra, nel trovare tutti quei indirizzi ed accessi alla memoria. Io ne ho trovati una decina, ma fanno qualcosina di più leggero. esempio far muovere il pg dove si vuole, aprire shop quando si vuole ecc. ecc. lui ha fatto qualcosa di eccezionale. quando crei un plug-in gli viene assegnato un indirizzo esempio 0X0015587 la dll fà in modo che esempio. Se la battaglia ( Battle Start ) inizia all'indirizzo 0X18Fe1EA lui ha fatto un trampolino Anzichè continuare, prima va a chiamare la funzione del plugin CALL 0X18Fe1EA # Metodo Cherry -> JMP 0015587 RTN 8 # Ripresa della condizione normale Condividi questo messaggio Link di questo messaggio Condividi su altri siti
kaine 1858 Segnala messaggio Inviato May 17, 2016 Oddio fa cosi strano leggere trampolino XD Sarà che a scuola gli abbiamo sempre chiamati jump, come per sintassi e non confonderci ulteriormente(confusione data perlopiù dalla puzza di alcol, che fuoriusciva dalla bocca del prof alle 8:30 del mattino ). E molto probabilmente lo conosce più lui di ojima quel tool XD Se ti interessa la versione più aggiornata si trova qui: https://github.com/PepsiOtaku/DynRPG Attualmente ci stanno mettendo mano pepsiotaku e Bugmenot 1 Thejuster reacted to this Condividi questo messaggio Link di questo messaggio Condividi su altri siti
Thejuster 945 Segnala messaggio Inviato May 17, 2016 wow grandioso! ci ho dato subito un occhiata. Purtroppo non c'è quello che mi serviva veramente la libreria RPG è Closed-Source. ed eccosi dimostrato ciò che volevo dire prima void RPG::Screen::toggleLargeWindow(bool largeWindow) { asm volatile("call *%%esi" : "=a" (RPG::_eax), "=d" (RPG::_edx) : "S" (0x46B400), "a" (this), "d" (largeWindow) : "ecx", "cc", "memory"); } Questo è il trampolino. come vedi da C++ si può utilizzare codice Assembly. in questo caso ha modificato l'indirizzo 0x46B400 cambiando lo stack da 0x000000 a 0x000001 nativamente il valore booleano corrisponde a 1 o 0 true = 1 false = 0 PICCOLA LEZIONE DI HACKING / REVERSING ENGINEER By Thejuster voglio spiegarvi cosa fà. questa funzione permette di mettere lo schermo pieno o schermo a finestra. L'indirizzo 0x46B400 è riferito al Parent HWND Abbiamo PUSH ESI ESI,EAX,ECX,EBX sono contenuti nello stack le possiamo notare in alto a destra. come potete vedere EAX = 000000 significa false quindi logicamente possiamo dire che abbiamo lo schermo ridotto. Ora cosa fà il codice Assembly? PUSH ESI PUSH EDI ADD ESP,-10 MOV ESI,EAX Cherry mette in EAX ed in EDX 1 ( true) L'assembly funziona diversamente dagli altri linguaggio. Noi scherzosamente lo definiamo arabo. Ma ironia della sorte funziona proprio così. Legge da Destra verso Sinistra Valore <- Variabile Il valore và a sinistra mentre la variabile a destra. Quindi al MOV ESI,EAX il Valore EAX passa in ESI quindi ESI diventa 1 a questo punto abbiamo il nostro schermo in full mode. successivamente ci basta interpellare la chiamata all'indirizzo. Più in basso alla screen, c'è una chiamata di colore blu CALL RPG_RT.00416140 l'indirizzo è 0x00416140 noterete che in corrispondenza di questa riga, c'è Args2 = 000000F0 Args1 = RPG_RT.CALL 00416140 cosa abbiamo in Args2? L'assembly ci mostra che c'è già un valore dichiarato nello stack. Ma in Args1 cosa abbiamo? Tadatadà: PUSH EAX ----------> Args1 Traduzione: Metti come argomento1 ( EAX Che ora vale 1 ) Dopo chiamami questa funzione RPG_RT.CALL 00416140 Se provassimo a tradurre il codice abbiamo un qualcosa del genere PUSH EAX; CALL RPG_RT.00416140 //--------- Maximizza(1); public void Maximizza(int valore) { if(valore == 1) { this.FullScreen = true; }else { this.FullScreen = false; } } Quindi possiamo dedurre che una volta che gli abbiamo inviato il valore 1 o 0 lui eseguirà questa chiamata e mettere lo schermo FULL o minimized. Spero che il vostro Justaccio oscuro vi abbia chiarito un pò le idee 1 NN81 reacted to this Condividi questo messaggio Link di questo messaggio Condividi su altri siti