{FizzBuzz} Ofuscado en C.

Iniciado por GGZ, 29 Junio 2017, 03:03 AM

0 Miembros y 1 Visitante están viendo este tema.

GGZ

Hola.

Encontré este código buscando por Google y me parece tremendo.

Es un fizzbuzz y está terrible.

¿FizzBuzz, qué es?
CitarEscribe, en el lenguaje de programación que desees, un programa que muestre en pantalla los números del 1 al 100, sustituyendo los múltiplos de 3 por el palabro "Fizz" y, a su vez, los múltiplos de 5 por "Buzz". Si son múltiplos de 3 y 5, imprimir el índice.

#include <stdio.h>

int main() {
 int i;
 for (i=1; i<=100; i++) {
   if (i%3==0) {
     printf("Fizz");
   }
   if (i%5==0) {
     printf("Buzz");
   }
   if (i%3!=0 && i%5!=0) {
     printf("%d", i);
   }
   printf("\n");
 }
 return 0;
}


Ofuscado:

int main(__,_)
int __;long unsigned _;
{
 if(exit((asprintf((void**)&_,&(14*!(__%15)+!!(__%15)*!(__%3)*2+!!(__%3)*!(__%5)*8+!!(__%5)*!!(__%3)*24)[(const char*)&(short[]){0,'if','zz',256,'ub','zz',512,'if','zz','ub','zz',1024,'d%',2048}],__),free((puts((void*)_),_)),__<100?(**main)(__+1):0)),1){}
}


¿Alguno tendrá algún consejo o alguna guia para aprender a ofuscar código en C? Encontré cosas interesantes de todos modos quería dejar este código hermoso acá.

Saludos.
LET'S DO STUFF!!

MAFUS

Lo principal es conocer muy bien C para saber toda su sintaxis.
Después creas un programa normal y trabajas a partir de él transformando las senten ias simples en un grupo equivalente que hagan lo mismo. Este último punto lo repites hasta que quedes satisfe o mientras sigas sin liarte.