Discussione Reversing Offuscare un codice in C o Python

lean4l

Utente Bronze
8 Marzo 2020
42
4
4
20
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!
 
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.
 
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
 
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%.
 
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
 
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.
 
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.
 
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?