Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Tutto e di + - reverse enginering
Forum - Tutto e di + - reverse enginering - Pagina 2

Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 12:14
Domenica, 26/04/2020
Testo quotato

Postato originariamente da Carlo:
Fai una prova potrebbero essere invertiti: 45 FE 28 7A



Ho fatto una prova
Const a As Int32 = &HFE457A28

nell'eseguibile viene rappresentata: 28 7A 45 FE


in programmazione tutto è permesso
PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 12:17
Domenica, 26/04/2020


Ibis redibis non morieris in bello
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 12:59
Domenica, 26/04/2020
Testo quotato

Postato originariamente da Goblin:

Si la logica è proprio quella che hai descritto
Codice sorgente - presumibilmente Plain Text

  1. CS_AA1 = '50'; // P
  2.   CS_AA2 = '63'; // c
  3.   CS_AA3 = '28'; // (
  4.   CS_AA4 = '3f'; // ?
  5.   CS_AA5 = 'f9'; // ù
  6.   CS_AA6 = 'a3'; // £
  7.  
  8. // poi quando serve
  9.    CS_AA1 + CS_AA2 + CS_AA3 + CS_AA4 + CS_AA5 + CS_AA6




le costanti come sono dichiarate Byte?


in programmazione tutto è permesso
PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 13:16
Domenica, 26/04/2020
Testo quotato

Postato originariamente da Carlo:

Testo quotato

Postato originariamente da Goblin:

Si la logica è proprio quella che hai descritto
Codice sorgente - presumibilmente Plain Text

  1. CS_AA1 = '50'; // P
  2.   CS_AA2 = '63'; // c
  3.   CS_AA3 = '28'; // (
  4.   CS_AA4 = '3f'; // ?
  5.   CS_AA5 = 'f9'; // ù
  6.   CS_AA6 = 'a3'; // £
  7.  
  8. // poi quando serve
  9.    CS_AA1 + CS_AA2 + CS_AA3 + CS_AA4 + CS_AA5 + CS_AA6




le costanti come sono dichiarate Byte?



No in questo caso sono stringhe


Ibis redibis non morieris in bello
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 13:34
Domenica, 26/04/2020
Testo quotato

Postato originariamente da Goblin:
No in questo caso sono stringhe


Ti ho fatto una domanda stupida dato che nell'assegnazione ci sono gli apici.

Se sono stringhe  non devi cercare gli esadecimali ma i corrispondenti codici ASCII
per esempio di: CS_AA1 = '50'; // P
devi cercare il codici di 5 e 0 = $35 $30

Con costanti così corte, nell'eseguibile troverai troppe corrispondenze per capirci qualcosa.

Però puoi perseguire questa strada; compili due eseguibili identici in tutto meno che in una costante es:
eseguibile 1: CS_AA1 = '50';
eseguibile 2: CS_AA1 = '51';

tutto il resto deve essere uguale, poi con un Hex compare, trovi dov'è la differenza :yup::rofl:

Ultima modifica effettuata da Carlo il 26/04/2020 alle 13:55


in programmazione tutto è permesso
PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 14:32
Domenica, 26/04/2020
Per fare questi lavoretti ci sono dei programmi dedicati molto potenti :k:


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 14:36
Domenica, 26/04/2020
Testo quotato

Postato originariamente da Ultimo:

Per fare questi lavoretti ci sono dei programmi dedicati molto potenti :k:



Una volta mi sono divertito a sbloccare un programmino

solo per divertimento personale


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 14:39
Domenica, 26/04/2020
Testo quotato

Postato originariamente da Carlo:

Testo quotato

Postato originariamente da Goblin:
No in questo caso sono stringhe


Ti ho fatto una domanda stupida dato che nell'assegnazione ci sono gli apici.

Se sono stringhe  non devi cercare gli esadecimali ma i corrispondenti codici ASCII
per esempio di: CS_AA1 = '50'; // P
devi cercare il codici di 5 e 0 = $35 $30

Con costanti così corte, nell'eseguibile troverai troppe corrispondenze per capirci qualcosa.

Però puoi perseguire questa strada; compili due eseguibili identici in tutto meno che in una costante es:
eseguibile 1: CS_AA1 = '50';
eseguibile 2: CS_AA1 = '51';

tutto il resto deve essere uguale, poi con un Hex compare, trovi dov'è la differenza :yup::rofl:



Si potrei provare a compilare 2 .exe e fare il giochino "trova le differenze", ma il mio punto di partenza è un po' diverso, ossia visto il file.exe da un esterno è possibile risalire alla chiave formata da delle costanti dichiarate separate e poi unite.
Per unirle faccio una cosa abbastanza semplice e terra terra
Codice sorgente - presumibilmente Tutto e di +

  1. ...
  2.   a := StrToInt('$' + CS_AA1);  // trasformo la costante in intero
  3.   b := chr(a);  // prendo il codice ascii
  4.   s := s + b;   // lo accodo
  5. ...



faccio una "select" su una tabella leggendo un campo crittografato ed applicando la chiave lo rendo "intelligibile"
Ovviamente è una "protezione" per gente scarsa come me, ma abbastanza valida (credo) per lo smanettone che vuol vedere i campi "crittografati" nel "DB",


Ibis redibis non morieris in bello
PM Quote
Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo