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
C/C++ - Salvare dati nel file dell'eseguibile
Forum - C/C++ - Salvare dati nel file dell'eseguibile

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


Messaggi: 698
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 15:59
Sabato, 23/12/2023
[...]

Ho realizzato una piccola utility di pochi kb (13, per la precisione) che inserisce nel browser indirizzi web, nomi utenti e password con un solo drag-and-drop. L'utility funziona benissimo, anche se occorre istruire l'antivirus su ogni apparecchio circa il fatto che si tratta di un programma innocuo e non di una bomba nucleare ("minaccia grave", dice quello scemo).

Il problema è che le stringhe da immettere sono state inserite come costanti nel codice, laddove sarebbe preferibile un meccanismo che permettesse di sceglierle in esecuzione e di ricaricarle nei lanci successivi del programma.

Generare un file esterno mi sembra oltremodo stupido, perché troppo facilmente accessibile, per cui mi chiedevo se fosse possibile memorizzare un PIN con una quantità di cifre compresa tra 1 e 8 direttamente nel file dell'eseguibile. Non ho mai fatto niente del genere, e non so niente in proposito.

Il programma è in ANSI C e winapi32 senza fronzoli. Se necessario, posso fare uno zip e allegarlo (non è poi così ampio).

Spunti? Consigli? Devo lasciar perdere e tenermi il PIN incorporato nel programma come costante? Mi conviene salvarlo in un file, magari invisibile? magari criptato alla bell'e meglio? Dai, un'idea please! :k:



AldoBaldo ha allegato un file: screenshot.png (663 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da AldoBaldo il 24/12/2023 alle 12:31


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1257
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 16:37
Sabato, 23/12/2023
Le stringhe in un eseguibile sono in chiaro e modificabili.
Puoi aprire il tuo exe con un exeditor e provare a modificarlo. Ogni carattere del PIN presente nel file occuperà due byte.
Una volta capito quali sono gli indirizzi da modificare, puoi scrivere un nuovo programma per modificare il tuo eseguibile direttamente nel'HDD o caricandolo, modificandolo e risalvandolo.

Per fare questo mentre il tuo eseguibile è in funzione (modifica di se stesso), non ho mai provato.


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


Messaggi: 698
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 17:19
Sabato, 23/12/2023
Grazie per aver preso in considerazione quel che ho scritto.

Se non ho capito male la tua risposta, sembrerebbe la stessa tecnica che usano i cosiddetti patcher, giusto?

Ah, comunque sia dal momento che uso dei char credo che i byte occupati per ogni carattere del PIN sia uno, non due. Comunque dovrei riuscire a trovare la sequenza con un qualunque "exe editor".

Ultima modifica effettuata da AldoBaldo il 23/12/2023 alle 17:21


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6362
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:11
Sabato, 23/12/2023
Non ho capito a fondo il problema.

Hai un PIN nel tuo codice come stringa e vorresti "nasconderlo"? O vorresti che fosse "variabile"?

Perché non lo memorizzi nel codice come intero binario (che scompare tra i tanti byte dell'eseguibile)?

Perché non ci mostri il codice limitato alla gestione del PIN senza tutto il resto?

P.S. Non ho neanche capito cosa c'entra il discorso del nuovo dispositivo a scuola con il tuo problema ... (l'antivirus?)
Se posso esprimere un mio parere, bisognerebbe anche fare un aggiornamento globale agli insegnanti ...

Ultima modifica effettuata da nessuno il 23/12/2023 alle 20:12


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1257
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 21:51
Sabato, 23/12/2023
Testo quotato

Postato originariamente da AldoBaldo:

Ah, comunque sia dal momento che uso dei char credo che i byte occupati per ogni carattere del PIN sia uno, non due.


Quando ho visionato par varie ragioni gli eseguibili, i Char nel file memorizzato sull'HDD vanno ad occupare 2 byte, 1 word. Se il tuo pin è una stringa invece trovi i singoli caratteri byte a byte

Con l'hexeditor individui il seek e il passo da usare, non puoi sbagliare.

HexEditor nel post precedente avevo scritto male, come HxD Hexeditor. https://mh-nexus.de/en/downloads.php?product=HxD20#
Attenzione HxD Hexeditor modifica senza ritegno i dati nella memoria, nei files e nell'Hdd, usalo in modalità SOLO LETTURA, finché non ci hai preso mano.

Nel tuo caso devi usare File/Open, Ctrl+O

Ultima modifica effettuata da Carlo il 23/12/2023 alle 22:26


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


Messaggi: 698
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 22:27
Sabato, 23/12/2023
Ho deciso di aggirare il quesito tecnico che ponevo.

Scrivere sul file eseguibile mentre è in esecuzione non è proprio il caso e, stando a chi mi ha detto la sua, probabilmente neppure possibile. Va bene, esclusa quella scelta.

Modificare l'eseguibile mente non è in esecuzione per sostituire il PIN lì memorizzato è possibile (e l'ho fatto), ma è inutilmente macchinoso in fase di impiego. Abolita anche quella scelta.

Mi resta dunque da scegliere se tenere il PIN in una costante definita direttamente nel codice del programma, ricompilando l'eseguibile qualora volessi modificarlo, oppure utilizzare un file invisibile criptato. In realtà ho già scelto: mi tengo il PIN "incorporato", tanto il programmino è per uso personale e posso farci quel che mi pare nel giro di cinque minuti.

Comunque, vorrei lo stesso rispondere alle tue domande (se hai la pazienza di leggere).


EDIT: chi aveva da leggere ha letto, per cui elimino la parte di testo che seguiva questo punto. Troppi dettagli.


AldoBaldo ha allegato un file: 1_1.zip (15900 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da AldoBaldo il 24/12/2023 alle 0:23


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1257
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 11:50
Domenica, 24/12/2023
Ognuno è libero di motivare o meno le domande.
Personalmente preferisco concentrarmi sul problema che voglio risolvere, sviscerandolo dal contesto.

Buon Natale a tutti. :asd::asd:

Ultima modifica effettuata da Carlo il 24/12/2023 alle 12:05


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


Messaggi: 698
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 12:27
Domenica, 24/12/2023
Grazie Carlo, e grazie anche a Nessuno. Il mio "sconcerto" non era riferito a voi, ma ad altre "entità" che reputo altamente nocive e che appestano la nostra esistenza intervenendo a gamba tesa e con discutibile competenza in aree dalle quali dovrebbero tenersi fuori. Son tutti eroi i generali, finché ad andare al massacro sono i loro sottoposti.

Comunque sia, il programmino fa quel che è nato per fare.
Un piccolo scudo contro un sabotaggio piuttosto pesante, ma meglio di niente.


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1257
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 16:30
Domenica, 24/12/2023
L'ho archiviato sugli esempi in C che chissà quando consulterò :rotfl:
Ci sono delle cosette carine che potrebbero tornare utili. :D


in programmazione tutto è permesso
PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo