Thejuster Posted May 31, 2016 Share Posted May 31, 2016 Nelle precedenti lezioni abbiamo appreso delle cose fondamentali. 1) Capire il programma come si svolge2) Cercare un indirizzo3) Moddare il dump della memoria4) Applicare una patch Non ho scritto queste guide per farvi diventare aspiranti Hacker o cracker.Anche perché nemmeno io sono così bravo da reputarmi tale. fare un crack o un hack e molto complicato.Non ci basta questo piccolo trucchetto per definirci tale. Molti programmi sono protetti da Anti-Debug, Altri vengono manomessi per non essere letti del debugger.Altri ancora sfruttano dll per proteggere il programma. Quindi potete farvi un idea di quanto possa essere complicata la cosa.Vi ho illustrato queste piccole operazioni per un semplice motivo. Lo scopo principale dei tutorial e quello di poter creare delle MOD per Rpgmaker. Ora possiamo avanzare alla fase successiva. Se vi illustro questo frammento di codice, recupero da DynRPG.ora siete in grado di capire in parte cosa fà. Recuperato dal sorgente di DynRPG static RPG::NamedCatalogPtr<RPG::Item *> &items = (**reinterpret_cast<RPG::NamedCatalogPtr<RPG::Item *> **>(0x4CDB14)); Come potete notare alla fine di questa chiamata abbiamo un indirizzo.Ciò significa che Cherry, ha reinterpretato quell'indirizzo di memoria in quella determinata variabile (Chiamiamola così) quindi possiamo presumere che all'indirizzo0x4CDB14 sia situato il puntatore che ci permette di avere accesso agli oggetti nel database. Altro esempio void openMenu(RPG::MenuSubScreen screen, int heroId = 1, int skillOrItemId = 1) { 117 //RPG::menu->repaint = false; 118 119 if(RPG::system->scene == RPG::SCENE_MENU && RPG::menu->screen == RPG::MENU_MAIN) { 120 *reinterpret_cast<char *>(0x4A3368) = 0xA9; // Default = 0x91 121 switch (screen) { 122 case MENU_ITEM: 123 { //open MENU_ITEM 124 *reinterpret_cast<char *>(0x4A109A) = 0x34; // Default: 0x10 //speed up transition 125 *reinterpret_cast<unsigned short *>(0x4A10D4) = 0xBEEB; // Default: 0x8B53 //re-route closeSubMenu() to closeMenu() 126 asm volatile("call *%%esi" 127 : 128 : "S" (0x4A110C), "a" (RPG::menu) 129 : "edx", "ecx", "cc", "memory"); Proviamo ( Anche se non ci riusciamo) a leggere il codice ed interpretarlo a modo nostro. Void OpenMenu. Questo metodo ci apre il menu.ora cosa succede? *reinterpret_cast<char *>(0x4A3368) = 0xA9; // Default = 0x91 Qui il vecchio cherry ha creato una lista di tipo Charche punta all'indirizzo di memoria 0x4A3368 all'offset 0xA9 Ma dice che di default è 0x91 Ora andiamo un pò sul complicato. Come spiegato a Guardian, in C++ si possono usare frammenti di codice Assembly. Siccome DynRPG si collega al processo di Rpgmaker, esso ora esegue una modifica al livello codice Macchina. asm volatile("call *%%esi" 127 : 128 : "S" (0x4A110C), "a" (RPG::menu) 129 : "edx", "ecx", "cc", "memory"); 130 break; Chiama l'indirizzo contenuto in ESI che viene posto nel parametro S, equivalente a (0x4A110C)ed come valore, nello Shift inserisci quello attuale dello stato del menu.che potrebbe essere True (Aperto) | Livello Binario ( 1 )False (Chiuso) | Livello Binario ( 0 ) Ovviamente, la domanda è: Come ha fatto Cherry a trovare tutti questi indirizzi? La risposta è un lavoro molto duro.Qui trovate qualche informazione https://en.wikipedia.org/wiki/Virtual_method_table Qui viene spiegato l'uso di interpret_cast https://en.wikibooks.org/wiki/C%2B%2B_Programming/Programming_Languages/C%2B%2B/Code/Keywords/reinterpret_cast Da ora in poi, c'è bisogno di una buona conoscenza del C++.Altrimenti non andiamo da nessuna parte :) Come detto dall'inizio, questi tutorial non sono per tutti.Ma per un livello medio / Alto di programmatori. Successivamente spiegherò qualche piccolo trucco per trovare indirizzi più facilmente. Rpgmaker Asset Converter & UI Tool by Making Italia ______________________________________________________ Produzione Software, Componenti e Controlli _______________________________________________________ *** Linguaggi di Programmazione Conosciuti e competenze Tecniche *** C#, Javascript, Java, PHP, SQL, Autoit , JQuery, HTML, HTML5, C++, VB.NET, Android, DirectX, HLSL, XML, Access, LUA, Delphi, Pascal, Assembly, Fortan, Angular JS Python, Delphi, OpenGL, Git, Bash, ASP, CMake, WinService Making Italia Link to comment Share on other sites More sharing options...
Guardian of Irael Posted May 31, 2016 Share Posted May 31, 2016 La terza lezione ed a me manca ancora la seconda! D: Comunque mi pare più cortina e facilmente seguibile questa terza e così mi pare di capire senza aver approfondito la seconda, bene, preferisco! ^ ^ Successivamente spiegherò qualche piccolo trucco per trovare indirizzi più facilmente.Ah meno male! XD (\_/)(^ ^) <----coniglietto rosso, me! (> <) Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^ http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^ http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^ REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^ 🖤http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gifhttp://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3http://i.imgur.com/MpaUphY.jpg by Idriu E:3Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44) http://i.imgur.com/PgUqHPm.pngUfficiale"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.pngGrazie Testament XD Fan n°1 ufficiale di PQ! :DVivail Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che nonavevo programmi di grafica per fare un banner su questo pc XD (ora ho dinuovo il mio PC veramente :D) Rosso Guardiano dellahttp://i.imgur.com/Os5rvhx.pngRpg2s RPG BY FORUM:Nome: Darth Reveal PV totali 2PA totali 16Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.Bozze vesti non definitive qui.Equipaggiamento:Indossa:60$ e 59$ divisi in due tasche interneLevaitanSpada a due mani elsa lungaGuanti del Defender (2PA)Anello del linguaggio animale (diventato del Richiamo)Scrinieri da lanciere (2 PA)Elmo del Leone (5 PA)Corazza del Leone in Ferro Corrazzato (7 PA) ZAINO (20) contenente:Portamonete in pelle di cinghiale contenente: 100$Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)CordaBottiglia di idromeleForma di formaggioTorcia (serve ad illuminare, dura tre settori)Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)Ampolla BiancaSemi di Balissa CAVALLO NORMALE + SELLA (30 +2 armi) contentente:66$Benda di pronto soccorso x3Spada a due maniFagotto per Adara (fazzoletto ricamato) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now