Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Vai al contenuto

Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Screen Contest #90

Kamikun






  • Si prega di effettuare il log in prima di rispondere
Problemi con Resource Hacker

    Elpropax
  • Utente avanzato

  • Utenti
  • Rens: 0
  • 5
  • StellettaStellettaStelletta
  • 345 messaggi
  • Sesso:Maschio
  • Abilitā:Apprendista

#1 Inviato 30 April 2016 - 19:43 PM

Premetto di aver cercato sia sul forum che su internet ma non ho trovato molto... Vi spiego,volevo modificare l'icona del mio gioco (di cui ho creato un file.exe con Install Creator) ma non ci riesco. Mi continua a ripetere Out of memory...qualcuno può aiutarmi?

Ogni sogno a cui rinunci è un pezzo del tuo futuro che cessa di esistere

-Steve Jobs- :cool:


    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58413 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#2 Inviato 30 April 2016 - 21:51 PM

Mmmh... questo può esserti utile? ^ ^

http://comphelp.org/...f-memory-error/


(\_/)
(^ ^) <----coniglietto rosso, me!     
(> <)

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
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) ^ ^

Spoiler


    Thejuster
  • Animatore

  • Utenti
  • Rens: 5
  • 0
  • StellettaStellettaStellettaStelletta
  • 592 messaggi
  • Sesso:Maschio
  • Abilitā:Novizio

#3 Inviato 02 May 2016 - 09:16 AM

C'è una cosa da sapere al riguardo.

Anche se dubito che install creator faccia questo.

Ma un pò di informazioni al riguardo possono tornare sempre utili nel caso si verificassero problemi del genere.

 

Dovete sapere che alcuni exe vengono danneggiati apposta dall'autore.

In pratica viene danneggiato l'header del file appositamente per impedirne la lettura esterna come debugger o lettori esadecimali.

 

Principalmente nel dump.

o allo stack dell'entry point.

 

Certo esistono alcuni tool per riparare gli header danneggiati.

Ma avvolte hanno scarso successo.

 

Il consiglio di guardian è ottimo.

prova con quello.

 

Quello strumento tenterà di riparare gli indirizzi di memoria mancanti all'header.

di solito prende gli indirizzi di memoria non allocati, vuoti che si trovano alla fine di ogni file.

Ne prende uno qualsiasi e lo rimpiazza con quello danneggiato.


.eJwFwd12QzAAAOB3cY-tzrrqXdSqUjFsjrgMSTQ


Da Sinistra verso Destra :P
Daemond, Thejuster, OldPat

Artwork by Hrot
Manca ancora lui XD

 

pre_1478077904__new-3.png

______________________________________________________
Produzione Software, Componenti e Controlli

 

logo.png

_______________________________________________________

 

 

2hnwdtw.png

 

*** Linguaggi di Programmazione Conosciuti e competenze Tecniche ***

C#, Javascript, Java, PHP, SQL, Autoit v3, JQuery, HTML, HTML5, C++, VB.NET, 
Android, DirectX, HLSL, XML, Access, LUA, Delphi, Pascal, Assembly, Fortan, Angular JS

 


Tool per la creazione di MMO Rpg. Open Source,
Vuoi far parte del team di sviluppo?


www.makingitalia.net

 

 

 


    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58413 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#4 Inviato 02 May 2016 - 11:47 AM

 

Dovete sapere che alcuni exe vengono danneggiati apposta dall'autore.

In pratica viene danneggiato l'header del file appositamente per impedirne la lettura esterna come debugger o lettori esadecimali.

D:

Ma intendi che vengono danneggiati in maniera che a molti funzionano comunque anche se poi i debugger ed i lettori esadecimali non posson leggerli? ^ ^


(\_/)
(^ ^) <----coniglietto rosso, me!     
(> <)

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
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) ^ ^

Spoiler


    Thejuster
  • Animatore

  • Utenti
  • Rens: 5
  • 0
  • StellettaStellettaStellettaStelletta
  • 592 messaggi
  • Sesso:Maschio
  • Abilitā:Novizio

#5 Inviato 03 May 2016 - 11:02 AM

esattamente.

 

Danneggiando l'header non danneggi il programma,

ma impedisci di leggere delle informazioni dai debugger.

 

In questo sito sono elencate alcune tecniche.

 

https://www.whitehaw...ory/anti-debug/

 

Qui è citata una sorta di tecnica che ho spiegato prima.

 

  • Check or damage the content of interrupt or trap vectors used for debugging.

 

 

Il mondo dell'hacking o reverse engineer e veramente vasto e difficile spiegarlo in pochi passaggi.

tempo fà postai un programma che manipolava le informazioni da rpgmaker 2003 se ricordate.

quello è Reversing Engineer, 

Permetteva di creare battaglie anche se non esistevano, di aprire shopper, spostarsi da una posizione o l'altra.

questo si fà osservando bene il codice macchina ( Assembly ) con un Debugger agganciato al programma.

Indirizzi di memoria ( 0x20A5B76 ) e Offset ( 0x12f ) esempio.

che a loro volta puntano ad un puntantore  di tipo  (  void (*void) type )

che può essere DWORD o ULONG dipende dai casi, sono dettagli che vanno osservati leggendo il codice Assembly.

 

Mentre danneggiare un header anziché inserire un controllo di presenza di un debugger e più efficacie come tecnica.

anche se ovviamente c'è sempre il modo per bypassare tutto.

 

C'è una lezione da imparare  ( Chi crea, può distruggere )

Se una cosa è stata creata può anche essere distrutta ovviamente, non esiste l'impossibile.

 

Però per il 90% degli utenti medio / avanzati nel mondo risulta essere molto complicata la cosa se non si sà 

dove mettere le mani


Modificato da Thejuster, 03 May 2016 - 11:11 AM.

.eJwFwd12QzAAAOB3cY-tzrrqXdSqUjFsjrgMSTQ


Da Sinistra verso Destra :P
Daemond, Thejuster, OldPat

Artwork by Hrot
Manca ancora lui XD

 

pre_1478077904__new-3.png

______________________________________________________
Produzione Software, Componenti e Controlli

 

logo.png

_______________________________________________________

 

 

2hnwdtw.png

 

*** Linguaggi di Programmazione Conosciuti e competenze Tecniche ***

C#, Javascript, Java, PHP, SQL, Autoit v3, JQuery, HTML, HTML5, C++, VB.NET, 
Android, DirectX, HLSL, XML, Access, LUA, Delphi, Pascal, Assembly, Fortan, Angular JS

 


Tool per la creazione di MMO Rpg. Open Source,
Vuoi far parte del team di sviluppo?


www.makingitalia.net

 

 

 


    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58413 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#6 Inviato 03 May 2016 - 12:31 PM

Grazie per la dettagliata spiegazione, messo il sito in segnalibri, mi spulcerò le tecniche durante la visita ai siti della mattina! XD

 

Mi sembra così strano che basta danneggiare l'header per depistare tutto facendo comunque funzionare il programma, ma buono a sapersi, una tecnica semplice.

^ ^

 

In generale il reversing Engineer lo conoscevo, mi manca il dettaglio, peccato, sarebbe pure un corso interessante da seguire, ma il tempo > <

Ricordo il tuo programmino! ^ ^

 

Mmmmh... vuoi tenere un corso sul come effettuare una reverse engineer su rpg maker? XD


(\_/)
(^ ^) <----coniglietto rosso, me!     
(> <)

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
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) ^ ^

Spoiler


    Thejuster
  • Animatore

  • Utenti
  • Rens: 5
  • 0
  • StellettaStellettaStellettaStelletta
  • 592 messaggi
  • Sesso:Maschio
  • Abilitā:Novizio

#7 Inviato 03 May 2016 - 22:24 PM

magari quando ho un pò di tempo lo faccio sicuramente XD

 

nel frattempo se vuoi degustarti questo mio piccolo video puoi vedere che si può fare tranquillamente anche in C#

 

per alcuni motivi, non legati al linguaggio ma per altre cose, o per testare alcuni fattori,

quel programma l'avevo scritto in C++.

 

Ma prima di fare quel programma in C++ lo avevo realizzato prima con il C#

non è che cambia molto tra C++ e C#

 

L'unica differenza è che in C# puoi usare frammenti di codice C++

mentre in C++ puoi usare frammenti di codice Assembly.

 

Alla fine non cambia molto

 

 

In questo video mostro come manipolare la memoria del programma di windows "Calc.exe"

la normalissima calcolatrice.

 

in pratica il mio programma va a manipolare un programma esterno "nativo"

 

del tipo in quel video ho fatto credere alla calcolatrice che io ho premuto 2 ma non l'ho premuto.

gli ho inviato dei segnali che lui ha interpretato come se ho premuto 2.

 

in quel caso, anche se il pulsante era disabilitato,

avrei potuto attivarlo, ed inviargli l'azione.

 

Tipo?

 

TIpo un programma che scade dopo 30 gg.

il pulsante continua diventa nero,

Posso sbloccarlo, ed fargli credere che il pulsante è ancora attivo e quindi continuare ad usarlo ugualmente.

come ho fatto un certo programma che non faccio nome XD 

 

Spoiler

 

Cmq è molto istruttivo ed interessante da guardare.

gli indirizzi li conoscevo a memoria quindi li avevo già studiati in precedenza dal debugger.

 

Vi chiedo di non prendere questo esempio da me lol.

Il mio è puro scopo didattico è sportivo.

Non sono un hacker, cracker o qualcuno che rilascia sul web programmi craccati.

ma lo faccio solo per divertimento.

Non insegno a fare queste cose, 

Ma posso insegnare l'arte della programmazione che è ben diversa dal reversing o cracking.

 

Ma un pò di istruzione o almeno vedere come funziona una cosa non fà male a nessuno


Modificato da Thejuster, 03 May 2016 - 22:37 PM.

.eJwFwd12QzAAAOB3cY-tzrrqXdSqUjFsjrgMSTQ


Da Sinistra verso Destra :P
Daemond, Thejuster, OldPat

Artwork by Hrot
Manca ancora lui XD

 

pre_1478077904__new-3.png

______________________________________________________
Produzione Software, Componenti e Controlli

 

logo.png

_______________________________________________________

 

 

2hnwdtw.png

 

*** Linguaggi di Programmazione Conosciuti e competenze Tecniche ***

C#, Javascript, Java, PHP, SQL, Autoit v3, JQuery, HTML, HTML5, C++, VB.NET, 
Android, DirectX, HLSL, XML, Access, LUA, Delphi, Pascal, Assembly, Fortan, Angular JS

 


Tool per la creazione di MMO Rpg. Open Source,
Vuoi far parte del team di sviluppo?


www.makingitalia.net

 

 

 


    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58413 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#8 Inviato 04 May 2016 - 00:22 AM

 

magari quando ho un pò di tempo lo faccio sicuramente XD

Ottimo! XD

 

Interessante vedere la calcolatriciaccia manipolata! XD

 

La tecnica della trial la conosco, è abbastanza famosa e vedo usata da altri pure qui sul forum! è____é

 

Sì, comunque non era per hackerare, giusto per sapere come funziona un po' di buon reversing engineer.

^ ^


(\_/)
(^ ^) <----coniglietto rosso, me!     
(> <)

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
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) ^ ^

Spoiler


    Thejuster
  • Animatore

  • Utenti
  • Rens: 5
  • 0
  • StellettaStellettaStellettaStelletta
  • 592 messaggi
  • Sesso:Maschio
  • Abilitā:Novizio

#9 Inviato 04 May 2016 - 08:06 AM

Cmq il procedimento è lo stesso.

Cioè fare un reversing da C# o C++ e lo stesso procedimento.

ovviamente cambia la sintassi, ma non la tecnica.

 

il trucco sta nel capire quale indirizzo di memoria che cerchi da quale puntatore viene manipolato.

 

I puntatori che vengono dichiarati nel codice esempio

 

int *hp;

int *mp;

 

I puntatori a differenza di una variabile che viene allocata in memoria dinamicamente dal grabage, i puntatori vengono assegnati in un indirizzo

di memoria statico. 

In breve, i puntatori hanno un indirizzo di memoria fisso, le variabili no.

 

quindi cercando nella memoria

 

riuscirai a trovare esempio

 

0x524FE24 = 100 (HP)

 

se poi riavvi il programma o gioco quel che sia,

 

l'indirizzo cambia, perché hai trovato la variabile non il puntatore

quindi in seguito troverai

 

0x458af7e = 100 ( HP )

 

 

La soluzione è trovare un puntatore.

Un puntatore ha un indirizzo abbastanza chiaro e semplice a differenza di una variabile.

in più sfrutta degli offset per puntare ad una variabile

 

Li devi usare la calcolatrice di windows, in modalità programmatore e spuntare l'opzione HEX

 

spulciando l'assembly l'indirizzo 0x458af7e potrebbe avere delle funzioni di calcolo esempio

add ecx,eax //Addizione
mov [0094CC],ecx

come vedi c'è un 0099CC

quello è sicuramente un puntatore al 100%.

 

in assembly le operazioni partono da destra verso sinistra

in questo caso calcola

 

add ecx, eax    ( Addiziona eax + ecx )

mov [0099CC],ecx   ( Sposta il valore di ecx al puntatore )

 

Quindi qui possiamo capire che e come se il giocatore avrebbe preso una sorta di rigenerazione degli hp.

tanto per dirne una, e aumenta la vita.

 

per vedere gli offset bisogna guardare lo stack di memoria

 

potremmo trovare del tipo:

add ecx,eax 


[Stack]
eax = 00000010
ebx = 01Fe56A2
ecx = 05C0264A

eax ha 10 

ecx punta ad un indirizzo di tipo 05C0264A

 

prendendo la calcolatrice in modalità programmatore e selezionando HEX se scriviamo sulla calcolatrice

5C0264A + 10 = 05C0265A

 

abbiamo l'indirizzo del nostro puntatore.

 

noi dovremmo fare un qualcosa del genere

 

C++

//Da nativo a Managed .net
//come mostrato nel video sopra che ho fatto

typedef DWORD IntPtr;
typedef unsigned long ulong;


IntPtr indirizzo = 0x05C0264A;
IntPtr offset = 0x10;
int valore = 0;
 
//user32.dll
ReadProcessMemory(HWND,(void*)indirizzo + offset,&valore,(IntPtr)sizeof(valore),NULL);

a questo punto esegendo cout << valore; otterremo 10

ma possiamo anche scrivere ovviamente sull'indirizzo non solo leggerlo

 

anzichè fare ReadProcessMemory,  useremo WriteProcessMemory

 

il principio base e questo :)

 

poi esistono altri tool messi a disposizione anche da microsoft.

la libreria Detorus

 

breve tutorial

https://leakforums.net/thread-157182

 

Moltissimi Hack di giochi vengono fatti da questa libreria

Vero Cherry? :D

 

o cheat come WallHack per diversio giochi FPS.

 

Li si usa un hook alle directX

IDirect3DDevice9* pTempDev = ...;
const int CambioScena = 26 (?);

typedef HRESULT (IDirect3DDevice9::* CambioScena )( void );

BYTE* pVtable = reinterpret_cast<void*>( pTempDev );
CambioScenaFunc = pVtable + sizeof(void*) * CambioScenaIndex;

la Vtable è indicata come Tabella virtuale delle operazioni o di indirizzi / offset della memoria.

Questo codice, cambia il metodo originale di un gioco in un nuovo metodo.

Non facendo fare più quello per la quale era stato programmato, ma facendogli fare ciò che dico io.

 

normalmente un gioco è stato programmato per eseguire:

 

Trova Mela

Aggiungi 10 HP

Fine

 

reintrepretando il void, possiamo fare

 

Trova Mela

---> Trampolino   --- > [ Aggiungi 50 HP, Salva Partita, Fai Questo, Fai Quello ]

Aggiungi 10 HP

Fine

 

Nella vTable troviamo void come:
Operazioni di scrittura a schermo

Operazioni di rendering a schermo ecc. ecc.

 

Il buon vecchio Cherry ha fatto questo giochetto con il 2k3.

E' stato molto bravo a trovare tutti gli indirizzi questo indubbiamente.

Ed ha la mia stima :D


Modificato da Thejuster, 04 May 2016 - 08:45 AM.

.eJwFwd12QzAAAOB3cY-tzrrqXdSqUjFsjrgMSTQ


Da Sinistra verso Destra :P
Daemond, Thejuster, OldPat

Artwork by Hrot
Manca ancora lui XD

 

pre_1478077904__new-3.png

______________________________________________________
Produzione Software, Componenti e Controlli

 

logo.png

_______________________________________________________

 

 

2hnwdtw.png

 

*** Linguaggi di Programmazione Conosciuti e competenze Tecniche ***

C#, Javascript, Java, PHP, SQL, Autoit v3, JQuery, HTML, HTML5, C++, VB.NET, 
Android, DirectX, HLSL, XML, Access, LUA, Delphi, Pascal, Assembly, Fortan, Angular JS

 


Tool per la creazione di MMO Rpg. Open Source,
Vuoi far parte del team di sviluppo?


www.makingitalia.net

 

 

 


    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58413 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#10 Inviato 04 May 2016 - 12:02 PM

La questione puntatori e variabili la conoscevo. Interessante il metodo di riconoscere il puntatore. L'assembly lo devo ripassare, ma più o meno ho capito i metodi elencati! ^ ^

 

 

Vero Cherry? :D

Guarda che ogni tanto qui è passato! Poi ti legge davvero! XD

 

 

Ed ha la mia stima :D

A differenza di altri! XD

 

Siamo un po' OT qui, se vuoi parlarne anche in maniera generale senza per ora dedicarti a tutorial possiamo staccare il topic e continuare in un altro! ^ ^


(\_/)
(^ ^) <----coniglietto rosso, me!     
(> <)

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
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) ^ ^

Spoiler





  • Feed RSS