Benvenuto su Inforge
Rimuovi la pubblicità e partecipa alla più grande comunità italiana sul mondo digitale presente sul web sin dal 2007.
Iscriviti

Discussione Offuscare un codice in C o Python

lean4l

Utente Iron
8 Marzo 2020
41
4
19
Salve a tutti,

vorrei offuscare un codice in C o Python (Unici che conosco oltre a JS e PHP che per il tipo di programma preferisco non utilizzarli).
Potete spiegarmi qualche tecnica di offuscamento efficace e sopratutto come funziona?

Ve ne sono grato ragazzi!
 

nullptr

Utente Gold
26 Novembre 2015
1,073
338
325
Python non è progettato per essere offuscato e la sua filosofia anzi ne sottolinea l'apertura allo studio e alle modifiche del codice.
Offuscare significa scombussolare il codice partendo dalle cose più banali, come randomizzare i nomi delle variabili e dei metodi fino a stranirlo del tutto... Potresti farlo pure tu stesso, seziona gli snippet e riscrivili nel modo meno chiaro che puoi.
Fai due ricerche su google, impareresti diverse tecniche.
 

lean4l

Utente Iron
8 Marzo 2020
41
4
19
Python non è progettato per essere offuscato e la sua filosofia anzi ne sottolinea l'apertura allo studio e alle modifiche del codice.
Offuscare significa scombussolare il codice partendo dalle cose più banali, come randomizzare i nomi delle variabili e dei metodi fino a stranirlo del tutto... Potresti farlo pure tu stesso, seziona gli snippet e riscrivili nel modo meno chiaro che puoi.
Fai due ricerche su google, impareresti diverse tecniche.
Grazie mille mi informerò meglio, ho già cercato su Google ma non go le chiavi di ricerca giuste, oltre a snippet ci sono altre parole utilizzate nel contesto? Che ne so.. Magari offuscare le variabile ha qualche terminologia propria
 
Supporta Inforge con un acquisto su NordVPN
Supporta Inforge con una donazione

nullptr

Utente Gold
26 Novembre 2015
1,073
338
325
Grazie mille mi informerò meglio, ho già cercato su Google ma non go le chiavi di ricerca giuste, oltre a snippet ci sono altre parole utilizzate nel contesto? Che ne so.. Magari offuscare le variabile ha qualche terminologia propria
Offuscare significa rendere il codice meno chiaro possibile all'essere umano. Non c'è una tecnica precisa, forse ci sono programmi che l'automatizzano, ma si può fare come si vuole e con le proprie conoscenze nel linguaggio.
Non nego che si possa fare pure in Python o qualsivoglia altro linguaggio di programmazione, ma come già detto ci sono linguaggi che sono ideati per altro.

Due esempi di Hello World in C:
C:
/*
* HELLO WORLD program
* by Jack Applin and Robert Heckendorn, 1985
* (Note: depends on being able to modify elements of argv[],
* which is not guaranteed by ANSI and often not possible.)
*/
main(v,c)char**c;{for(v[c++]="Hello, world!\n)";
(!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c));
**c=!c)write(!!*c,*c,!!**c);}

C:
/*
* Program to compute an approximation of pi
* by Brian Westley, 1988
* (requires pcc macro concatenation; try gcc -traditional-cpp)
*/

#define _ -F<00||--F-OO--;
int F=00,OO=00;
main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
            _-_-_-_
       _-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
        _-_-_-_-_-_-_-_
            _-_-_-_

Non esiste comunque soluzione al nascondere il codice al 100%.
 

lean4l

Utente Iron
8 Marzo 2020
41
4
19
Offuscare significa rendere il codice meno chiaro possibile all'essere umano. Non c'è una tecnica precisa, forse ci sono programmi che l'automatizzano, ma si può fare come si vuole e con le proprie conoscenze nel linguaggio.
Non nego che si possa fare pure in Python o qualsivoglia altro linguaggio di programmazione, ma come già detto ci sono linguaggi che sono ideati per altro.

Due esempi di Hello World in C:
C:
/*
* HELLO WORLD program
* by Jack Applin and Robert Heckendorn, 1985
* (Note: depends on being able to modify elements of argv[],
* which is not guaranteed by ANSI and often not possible.)
*/
main(v,c)char**c;{for(v[c++]="Hello, world!\n)";
(!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c));
**c=!c)write(!!*c,*c,!!**c);}

C:
/*
* Program to compute an approximation of pi
* by Brian Westley, 1988
* (requires pcc macro concatenation; try gcc -traditional-cpp)
*/

#define _ -F<00||--F-OO--;
int F=00,OO=00;
main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
            _-_-_-_
       _-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
        _-_-_-_-_-_-_-_
            _-_-_-_

Non esiste comunque soluzione al nascondere il codice al 100%.
Va bene grazie mille, in breve dovrei studiare bene la sintassi di python e trovare metodi alternativi per scrivere ad esempio una variabile
 

St3ve

Utente Platinum
12 Ottobre 2011
2,062
1,341
665
Se la tua preoccupazione è "mi rubano il codice", in C ti basta distribuire solo il programma compilato e in Python puoi seguire queste linee guida. Se invece vuoi offuscare il codice per altri motivi, il discorso cambia.
 
Supporta Inforge con un acquisto su NordVPN
Supporta Inforge con una donazione

nullptr

Utente Gold
26 Novembre 2015
1,073
338
325
Ultima modifica:
in C ti basta distribuire solo il programma compilato
Concordo, il codice macchina prodotto dai compilatori C/C++ è già abbastanza illegibile così.

Python puoi seguire queste linee guida
Come già ho spiegato nei miei precedenti post, non ha tanto senso. Tanto vale cambiare linguaggio di programmazione.
È come voler comunicare con un tuo amico via e-mail ma poi occultarne il messaggio onde evitare che possa leggerlo.
 

lean4l

Utente Iron
8 Marzo 2020
41
4
19
Se la tua preoccupazione è "mi rubano il codice", in C ti basta distribuire solo il programma compilato e in Python puoi seguire queste linee guida. Se invece vuoi offuscare il codice per altri motivi, il discorso cambia.
Concordo, il codice macchina prodotto dai compilatori C/C++ è già abbastanza illegibile così.


Come già ho spiegato nei miei precedenti post, non ha tanto senso. Tanto vale cambiare linguaggio di programmazione.
È come voler comunicare con un tuo amico via e-mail ma poi occultarne il messaggio onde evitare che possa leggerlo.
Al momento vorrei utilizzare l'offuscazione per nascondere un malware all'interno di un eseguibile o file .py, ovviamente c++ è molto più performante per quanto riguarda eseguibili. Il mio scopo è quello di offuscare il codice ad un anti-virus non ad una persona. Penso che fare solo giochi di variabili non basta per nascondere il codice all'anti-virus, forse bisogna utilizzare qualche metodo di criptazione all'interno della source e caricare il payload criptato con un reverse tcp?
 
Supporta Inforge con una donazione
Supporta Inforge con un acquisto su NordVPN