Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-06-2012, 16:02   #1
andros94
Member
 
Iscritto dal: Feb 2010
Messaggi: 57
[C] consigli offuscamento codice

Avrei bisogno di un programma per offuscare codice C....l' importante e che non siano riconoscibili le chiamate alle funzioni !!
per esempio sostituire tutti i printf del codice con parole diverse ma che facciano sempre riferimento al printf
andros94 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2012, 18:54   #2
Chinonso
Junior Member
 
Iscritto dal: Mar 2012
Messaggi: 13
Se cerchi su Google "c obfuscator" puoi trovare ciò che desideri, ma la maggior parte dei software di offuscamento rinominano semplicemente costanti e variabili con sequenze di lettere e numeri casuali. Manualmente potresti utilizzare i #define e una funzione per decodificare le stringhe, ad esempio:

Codice:
// Codice normale

#include <stdio.h>

int main()
{
    printf("Ciao!");
}
Codice:
// Codice semioffuscato

#include <stdio.h>

#define QUESTO printf(
#define E "Ciao!"       /* Si potrebbe sostituire "Ciao" 
                         * con "%s" e decodificare in seguito
                         * la stringa crittata tramite una funzione
                         */
#define OFFUSCATO );

main()
{
    QUESTO E OFFUSCATO
}
A mio parere l'offuscamento rende solo più "noioso" ricavare il codice pulito, ma non ne vedo l'utilità. A meno che tu non abbia creato un super programma da nascondere a chissà quali spie industriali, non ne vale la pena... Anche se sprecassi molto tempo a mascherare perfettamente il codice, tieni conto che con un semplice disassemblatore e molta pazienza si può ricavare l'algoritmo, offuscato o meno. Il codice compilato non è altro che una serie di istruzioni assembly...

Ultima modifica di Chinonso : 09-06-2012 alle 19:28.
Chinonso è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2012, 19:45   #3
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Ma soprattutto qual'è il senso di offuscare il sorgente di un programma che poi verrà convertito in binario?

Se non vuoi che leggano i sorgenti, tienili privati.

Sul serio, non riesco a capire l'utilità di una simile operazione. Il codice javascript si offusca, perchè viene distribuito in forma sorgente. Si offuscano pure alcuni tipi di bytecode, perchè sono relativamente facili da decodificare e contengono informazioni che aiutano il reverse engineering.

Ma un programma C compilato è una brutta bestia in ogni caso. Semmai si procede ad usare tecniche varie sull'eseguibile, per renderlo robusto al reverse engineering.
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2012, 22:15   #4
andros94
Member
 
Iscritto dal: Feb 2010
Messaggi: 57
ma il compilatore che sostituisce e l' assembly risulta uguale, o in codice assembly si notano le differenze usando DEFINE o non usandolo
andros94 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2012, 22:20   #5
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da andros94 Guarda i messaggi
ma il compilatore che sostituisce e l' assembly risulta uguale, o in codice assembly si notano le differenze usando DEFINE o non usandolo
#define definisce degli alias che vengono sostituiti nel codice prima della compilazione, quindi il risultato in linguaggio macchina sarà lo stesso
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2012, 22:47   #6
Chinonso
Junior Member
 
Iscritto dal: Mar 2012
Messaggi: 13
Quote:
Originariamente inviato da andros94 Guarda i messaggi
ma il compilatore che sostituisce e l' assembly risulta uguale, o in codice assembly si notano le differenze usando DEFINE o non usandolo
Come ti abbiamo già detto io e Pabloski, il codice C (offuscato o meno) produce lo stesso risultato quando è compilato.

Ti faccio un esempio. Il seguente programmino C (ovviamente di nessuna utilità pratica), confrontato con il relativo codice Assembly x86:

Codice:
int main()
{
     int a = 3, b = 5, c;

     c = a+b;

     // return 0 è sottinteso anche se non si scrive esplicitamente
}
Codice:
.code

main proc
    mov eax, 3     ; a
    add eax, 5     ; a+b
    xor eax, eax   ; resetta eax a 0
    ret 0          ; return 0
main endp
end
Come vedi, nel codice assembly x86 non ci sono i nomi di variabili, ma in questo caso trovi solo il nome del registro accumulatore (EAX), la piccola area di memoria del processore che è specializzata a contenere i risultati delle operazioni aritmetico-logiche effettuate dalla ALU. L'istruzione ADD somma il valore al registro...

Se tu compili il codice C precedente su una CPU con architettura x86 in modalità "debug" (senza ottimizzazioni) e poi lo disassembli, tra le varie righe del listato (più lungo di quello che ho scritto io, perché il compilatore C inserisce anche altri dati) troverai "mov eax, 3" e "add eax, 5"... dalle quali si capisce che si vuole sommare 3+5, cioè 8... Se il programma è compilato con ottimizzazioni, poiché svolge un calcolo molto semplice (a+b), potrebbe caricare direttamente 8 nel registro, senza i passaggi intermedi...

Poiché noto che non conosci i fondamenti della programmazione, invece di pensare subito ad offuscare codice invano, ti consiglierei prima di comprare un libro sui fondamenti dell'informatica e uno sul linguaggio C. Col tempo e un po' di impegno la maggior parte delle risposte arriveranno da sole..

Ultima modifica di Chinonso : 10-06-2012 alle 00:14.
Chinonso è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
Redmi Note 15 4G sta arrivando in Europa...
Più sicurezza per i clienti Revol...
Aira punta a risparmio e massima semplic...
Il film di Helldivers sarà dirett...
Prezzi AMD Radeon: aumenti fino a 40 dol...
Sconti speciali sui prodotti FRITZ!Box: ...
ECOVACS DEEBOT T80 OMNI resta al prezzo ...
Roborock Qrevo Curv S5X a 499€: potenza ...
L'italiana Bending Spoons ha comprato Ev...
Pat Gelsinger, mai darlo per morto: piov...
ECOVACS DEEBOT MINI a 199€: prezzo pi&ug...
Codice rosso in casa OpenAI: priorit&agr...
AWS rinnova lo stack dell'IA: Trainium3,...
AWS entra nell'era degli agenti: il keyn...
Roscosmos: inventario a bordo della ISS ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:46.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v