{"id":1322,"date":"2025-10-28T14:42:37","date_gmt":"2025-10-28T17:42:37","guid":{"rendered":"https:\/\/www.galirows.com.br\/meublog\/?p=1322"},"modified":"2025-10-28T16:30:25","modified_gmt":"2025-10-28T19:30:25","slug":"o-que-e-obfuscated-code-parte2","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/","title":{"rendered":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2]"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Continuo aqui a explica\u00e7\u00e3o iniciada em <a href=\"https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/\">https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inicio falando sobre o <strong>International Obfuscated C Code Contest (IOCCC)<\/strong>, que \u00e9 uma competi\u00e7\u00e3o de programa\u00e7\u00e3o que premia os programadores que conseguem escrever os programas em C mais criativamente \u201cconfusos\u201d, engenhosos e dif\u00edceis de entender. O IOCCC nasceu em <strong>1984<\/strong>, criado por Landon Curt Noll e Larry Bassel, e \u00e9 um dos concursos de programa\u00e7\u00e3o mais antigos ainda em atividade. O evento desenvolve: O uso de truques de sintaxe, macros, e comportamento indefinido do C para criar arte t\u00e9cnica; A criatividade e o humor na programa\u00e7\u00e3o; e o dom\u00ednio da linguagem C.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O IOCCC concede pr\u00eamios em categorias como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Best one-liner<\/strong> (melhor c\u00f3digo em uma linha);<\/li>\n\n\n\n<li><strong>Most creative<\/strong> (mais criativo);<\/li>\n\n\n\n<li><strong>Most confusing<\/strong> (mais confuso);<\/li>\n\n\n\n<li><strong>Best visual effect<\/strong>;<\/li>\n\n\n\n<li><strong>Best abuse of the C preprocessor<\/strong>;<\/li>\n\n\n\n<li><strong>Best algorithmic trick<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Trago aqui dois c\u00f3digos explicados para inspirar novos competidores \ud83d\ude00 <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vencedor de 1984 &#8211; Anonymous 1984<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O vencedor do IOCCC de 1984 \u00e9 um c\u00f3digo que imprime, byte a byte, a string <code>\"hello, world!\\n\"<\/code> usando truques de sintaxe e sem usar explicitamente <code>puts<\/code>\/<code>printf<\/code>. <\/p>\n\n\n\n<pre title=\"\" class=\"wp-block-code\"><code lang=\"c\" class=\"language-c\">int i;main(){for(;i[\"]&lt;i;++i){--i;}\"];read('-'-'-',i+++\"hell\\\no, world!\\n\",'\/'\/'\/'));}read(j,i,p)void*i;{write(j\/p+p,i---j,(int)i\/(int)i);}<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">C\u00f3digo dispon\u00edvel em <a href=\"https:\/\/github.com\/ioccc-src\/winner\/blob\/master\/1984\/anonymous\/anonymous.c\">winner\/1984\/anonymous\/anonymous.c at master \u00b7 ioccc-src\/winner \u00b7 GitHub<\/a><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Abaixo mostro o c\u00f3digo melhor apresentado, em m\u00faltiplas linhas e endenta\u00e7\u00f5es. A leitura do c\u00f3digo melhora, mesmo assim ainda n\u00e3o \u00e9 f\u00e1cil entender.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c\">int i;\nmain(){\n    for(;i[\"]&lt;i;++i){--i;}\"];\n        read('-'-'-',i+++\"hell\\\no, world!\\n\",'\/'\/'\/'));\n}\nread(j,i,p)void*i;{\n    write(j\/p+p,i---j,(int)i\/(int)i);\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O que o c\u00f3digo faz \u00e9:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>constr\u00f3i um ponteiro que aponta para as letras da string literal <code>\"hello, world!\\n\"<\/code>,<\/li>\n\n\n\n<li>chama uma fun\u00e7\u00e3o <code>read()<\/code> (nome enganador) que, por sua vez, chama o syscall <code>write<\/code> com <code>fd = 1<\/code> (stdout), buffer = endere\u00e7o do caractere atual e count = 1, escrevendo um byte por vez,<\/li>\n\n\n\n<li>o loop no <code>main<\/code> controla quantas vezes essa chamada acontece (termina quando a indexa\u00e7\u00e3o numa certa string chega ao <code>'\\0'<\/code>).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Existe uma explica\u00e7\u00e3o mais detalhada do c\u00f3digo dispon\u00edvel em <a href=\"https:\/\/medium.com\/%40LainIwakura\/deobfuscating-obfuscated-code-for-fun-and-no-profit-36ec615c8f5d\">Deobfuscating obfuscated code for fun and no profit | by Lain Iwakura | Medium<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A seguir mostro o c\u00f3digo em uma vers\u00e3o leg\u00edvel e moderna. Ele est\u00e1 com a mesma l\u00f3gica, mas usando sintaxe ANSI C moderna e nomes descritivos.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c\">#include &lt;unistd.h>  \/\/ para write()\n\nint main(void) {\n    int i = 0; \/\/ contador\/\u00edndice de caracteres\n    const char *msg = \"hello, world!\\n\";\n\n    \/\/ la\u00e7o que percorre cada caractere at\u00e9 o '\\0' (fim da string)\n    while (msg[i] != '\\0') {\n        write(1, &amp;msg[i], 1); \/\/ escreve um caractere na sa\u00edda padr\u00e3o (stdout)\n        i++;                  \/\/ avan\u00e7a para o pr\u00f3ximo caractere\n    }\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Por que foi premiado<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Essas constru\u00e7\u00f5es s\u00e3o v\u00e1lidas no padr\u00e3o C de 1983 (K&amp;R C), mas hoje parecem heresias de engenharia. O programa demonstra <strong>como conhecer os cantos mais obscuros da linguagem<\/strong> pode gerar resultados surpreendentes. O autor explora regras <em>pouco conhecidas<\/em>, mas leg\u00edtimas, da linguagem C:\n<ul class=\"wp-block-list\">\n<li><code>a[b] == b[a]<\/code> (indexa\u00e7\u00e3o sim\u00e9trica)<\/li>\n\n\n\n<li><code>'\/' \/ '\/' == 1<\/code> (divis\u00e3o de caracteres)<\/li>\n\n\n\n<li><code>'-' - '-' == 0<\/code><\/li>\n\n\n\n<li>Ponteiros e inteiros podem ser somados (<code>\"hello\" + i<\/code>)<\/li>\n\n\n\n<li>Convers\u00f5es impl\u00edcitas e p\u00f3s-decrementos (<code>i---j<\/code>)<\/li>\n\n\n\n<li>Defini\u00e7\u00f5es no estilo <strong>K&amp;R<\/strong> (antes do ANSI C) permitem par\u00e2metros sem tipos expl\u00edcitos.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Tamanho m\u00ednimo e aus\u00eancia de depend\u00eancias:\n<ul class=\"wp-block-list\">\n<li>n\u00e3o inclui <code>&lt;stdio.h&gt;<\/code>,<\/li>\n\n\n\n<li>n\u00e3o usa <code>printf<\/code>,<\/li>\n\n\n\n<li>tem apenas 2 fun\u00e7\u00f5es e 1 vari\u00e1vel global.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">O que se aprende com ele<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Entender profundamente o C: Como o compilador trata strings e ponteiros.<\/li>\n\n\n\n<li>A limita\u00e7\u00e3o da clareza: este tipo de c\u00f3digo mostra que, embora \u201cfuncione\u201d, a legibilidade fica profundamente prejudicada \u2014 e em contextos de engenharia de software isso seria um problema.<\/li>\n\n\n\n<li>A brincadeira t\u00e9cnica: o IOCCC n\u00e3o \u00e9 sobre \u201cser pr\u00e1tico\u201d, mas sobre \u201cser criativo\u201d e explorar os limites da linguagem C. Ele mostra que domar C inclui entender seus cantos obscuros.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Vencedor de 1986 &#8211; Jim Hague<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Este programa ganhou o IOCCC em 1986. Ele implementa o padr\u00e3o Morse internacional de transmiss\u00e3o de mensagens \u2014 ou seja, converte texto em c\u00f3digo Morse \u2014 e o faz de forma altamente ofuscada.<\/p>\n\n\n\n<pre title=\"\" class=\"wp-block-code\"><code lang=\"c\" class=\"language-c\">#define\tDIT\t(\n#define\tDAH\t)\n#define\t__DAH\t++\n#define DITDAH\t*\n#define\tDAHDIT\tfor\n#define\tDIT_DAH\tmalloc\n#define DAH_DIT\tfgets\n#define\t_DAHDIT\tchar\n_DAHDIT _DAH_[]=\"ETIANMSURWDKGOHVFaLaPJBXCYZQb54a3d2f16g7c8a90l?e'b.s;i,d:\"\n;main\t\t\tDIT\t\t\tDAH{_DAHDIT\nDITDAH\t\t\t_DIT,DITDAH\t\tDAH_,DITDAH DIT_,\nDITDAH\t\t\t_DIT_,DITDAH\t\tDIT_DAH DIT\nDAH,DITDAH\t\tDAH_DIT DIT\t\tDAH;DAHDIT\nDIT _DIT=DIT_DAH\tDIT 81\t\t\tDAH,DIT_=_DIT\n__DAH;_DIT==DAH_DIT\tDIT _DIT,81,stdin\tDAH&amp;&amp;(_DIT[strlen(_DIT)-1]='\\0',_DIT);__DIT\nDIT'\\n'DAH DAH\t\tDAHDIT DIT\t\tDAH_=_DIT;DITDAH\nDAH_;__DIT\t\tDIT\t\t\tDITDAH\n_DIT_?_DAH DIT\t\tDITDAH\t\t\tDIT_ DAH:'?'DAH,__DIT\nDIT' 'DAH,DAH_ __DAH\tDAH DAHDIT\t\tDIT\nDITDAH\t\t\tDIT_=2,_DIT_=_DAH_;\tDITDAH _DIT_&amp;&amp;DIT\nDITDAH _DIT_!=DIT\tDITDAH DAH_&gt;='a'?\tDITDAH\nDAH_&amp;223:DITDAH\t\tDAH_ DAH DAH;\t\tDIT\nDITDAH\t\t\tDIT_ DAH __DAH,_DIT_\t__DAH DAH\nDITDAH DIT_+=\t\tDIT DITDAH _DIT_&gt;='a'?\tDITDAH _DIT_-'a':0\nDAH;}_DAH DIT DIT_\tDAH{\t\t\t__DIT DIT\nDIT_&gt;3?_DAH\t\tDIT\t\t\t DIT_&gt;&gt;1 DAH:'\\0'DAH;return\nDIT_&amp;1?'-':'.';}__DIT DIT\t\t\tDIT_ DAH _DAHDIT\nDIT_;{DIT void DAH write DIT\t\t\t1,&amp;DIT_,1 DAH;}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3digo dispon\u00edvel em <a href=\"https:\/\/github.com\/ioccc-src\/winner\/blob\/master\/1986\/hague\/hague.c\">winner\/1986\/hague\/hague.c at master \u00b7 ioccc-src\/winner \u00b7 GitHub<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No in\u00edcio do c\u00f3digo encontram-se v\u00e1rias macros definidas com nomes enganosos. O autor nomeia tokens como <code>DIT<\/code> e <code>DAHDIT<\/code> para s\u00edmbolos de C, o que torna o c\u00f3digo visualmente muito estranho, porque o leitor espera algo como <code>for<\/code> ou <code>if<\/code>, mas v\u00ea <code>DAHDIT<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O corpo do programa em si mistura essas macros com os comandos usuais de C, combinando loops e condi\u00e7\u00f5es com uma estrutura que visualmente n\u00e3o parece \u201ctexto de programa\u201d convencional. Isso for\u00e7a o leitor a pensar \u201co que isso realmente faz?\u201d e acompanhar o pr\u00e9-processador para entender.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A l\u00f3gica do programa realmente converte caracteres de entrada em sinais de c\u00f3digo Morse (pontos e tra\u00e7os), imprimindo o resultado. A ofusca\u00e7\u00e3o est\u00e1 no modo como o autor esconde os la\u00e7os de repeti\u00e7\u00e3o, as verifica\u00e7\u00f5es de caractere e a sa\u00edda usando essas macros com nomes que desencadeiam \u201cDIT\u201d e \u201cDAHDIT\u201d, evocando Morse, mas trocando pela sintaxe de C.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Outro truque t\u00edpico: o uso de operadores e express\u00f5es pouco comuns, como combina\u00e7\u00e3o de ponteiros, tern\u00e1rios, manipula\u00e7\u00e3o de bits, vari\u00e1veis com nomes curtos ou simb\u00f3licos, para comprimir o c\u00f3digo ou torn\u00e1-lo menos leg\u00edvel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Por que foi premiado<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Porque fez algo <strong>funcional<\/strong> \u2014 n\u00e3o era apenas \u201cprintar Hello, world!\u201d, mas implementar um conversor de Morse.<\/li>\n\n\n\n<li>Porque usou <strong>ofusca\u00e7\u00e3o criativa<\/strong> \u2014 renomeando macros, alterando visual do c\u00f3digo, tornando dif\u00edcil de ler, mas ainda C correto.<\/li>\n\n\n\n<li>Porque tornou-se educativo: ao \u201cdecifrar\u201d o c\u00f3digo o leitor acaba aprendendo sobre o pr\u00e9-processador, macros, substitui\u00e7\u00e3o de tokens, e constru\u00e7\u00e3o de la\u00e7os menos triviais.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">O que se aprende com ele<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A import\u00e2ncia de macros: ver como <code>#define<\/code> pode transformar radicalmente a leitura de um c\u00f3digo, ao substituir tokens por outros s\u00edmbolos ou palavras.<\/li>\n\n\n\n<li>O mesmo j\u00e1 visto no exemplo anterior, sobre &#8220;a limita\u00e7\u00e3o da clareza&#8221; e &#8220;a brincadeira t\u00e9cnica&#8221;.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continuo aqui a explica\u00e7\u00e3o iniciada em https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/. Inicio falando sobre o International Obfuscated C Code Contest (IOCCC), que \u00e9 uma competi\u00e7\u00e3o de programa\u00e7\u00e3o que premia os programadores que conseguem escrever os programas em C mais criativamente \u201cconfusos\u201d, engenhosos e dif\u00edceis de entender. O IOCCC nasceu em 1984, criado por Landon Curt Noll e Larry Bassel, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[109],"tags":[25,292,286],"class_list":["post-1322","post","type-post","status-publish","format-standard","hentry","category-programacao","tag-educacao","tag-humor","tag-raciocinio-logico"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Continuo aqui a explica\u00e7\u00e3o iniciada em https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/. Inicio falando sobre o International Obfuscated C Code Contest (IOCCC), que \u00e9 uma competi\u00e7\u00e3o de programa\u00e7\u00e3o que premia os programadores que conseguem escrever os programas em C mais criativamente \u201cconfusos\u201d, engenhosos e dif\u00edceis de entender. O IOCCC nasceu em 1984, criado por Landon Curt Noll e Larry Bassel,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Benjamin Grando Moreira\"\/>\n\t<link rel=\"canonical\" href=\"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Professor Benjamin - Blog com material das minhas disciplinas\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2] - Professor Benjamin\" \/>\n\t\t<meta property=\"og:description\" content=\"Continuo aqui a explica\u00e7\u00e3o iniciada em https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/. Inicio falando sobre o International Obfuscated C Code Contest (IOCCC), que \u00e9 uma competi\u00e7\u00e3o de programa\u00e7\u00e3o que premia os programadores que conseguem escrever os programas em C mais criativamente \u201cconfusos\u201d, engenhosos e dif\u00edceis de entender. O IOCCC nasceu em 1984, criado por Landon Curt Noll e Larry Bassel,\" \/>\n\t\t<meta property=\"og:url\" content=\"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-10-28T17:42:37+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-10-28T19:30:25+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2] - Professor Benjamin\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Continuo aqui a explica\u00e7\u00e3o iniciada em https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/. Inicio falando sobre o International Obfuscated C Code Contest (IOCCC), que \u00e9 uma competi\u00e7\u00e3o de programa\u00e7\u00e3o que premia os programadores que conseguem escrever os programas em C mais criativamente \u201cconfusos\u201d, engenhosos e dif\u00edceis de entender. O IOCCC nasceu em 1984, criado por Landon Curt Noll e Larry Bassel,\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte2\\\/#blogposting\",\"name\":\"O que \\u00e9 obfuscated code, op\\u00e7\\u00f5es e exemplos [parte 2] - Professor Benjamin\",\"headline\":\"O que \\u00e9 obfuscated code, op\\u00e7\\u00f5es e exemplos [parte 2]\",\"author\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/#organization\"},\"datePublished\":\"2025-10-28T14:42:37-03:00\",\"dateModified\":\"2025-10-28T16:30:25-03:00\",\"inLanguage\":\"pt-BR\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte2\\\/#webpage\"},\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte2\\\/#webpage\"},\"articleSection\":\"Programa\\u00e7\\u00e3o, Educa\\u00e7\\u00e3o, Humor, Racioc\\u00ednio L\\u00f3gico\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte2\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/category\\\/programacao\\\/#listItem\",\"name\":\"Programa\\u00e7\\u00e3o\"}},{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/category\\\/programacao\\\/#listItem\",\"position\":2,\"name\":\"Programa\\u00e7\\u00e3o\",\"item\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/category\\\/programacao\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte2\\\/#listItem\",\"name\":\"O que \\u00e9 obfuscated code, op\\u00e7\\u00f5es e exemplos [parte 2]\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte2\\\/#listItem\",\"position\":3,\"name\":\"O que \\u00e9 obfuscated code, op\\u00e7\\u00f5es e exemplos [parte 2]\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/category\\\/programacao\\\/#listItem\",\"name\":\"Programa\\u00e7\\u00e3o\"}}]},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/#organization\",\"name\":\"Professor Benjamin\",\"description\":\"Blog com material das minhas disciplinas\",\"url\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/\"},{\"@type\":\"Person\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/author\\\/admin\\\/#author\",\"url\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/author\\\/admin\\\/\",\"name\":\"Benjamin Grando Moreira\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte2\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/af961283f376b309b0f923ac364c17ad071f1c11e42a5686b4975ad4d514fe29?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Benjamin Grando Moreira\"}},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte2\\\/#webpage\",\"url\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte2\\\/\",\"name\":\"O que \\u00e9 obfuscated code, op\\u00e7\\u00f5es e exemplos [parte 2] - Professor Benjamin\",\"description\":\"Continuo aqui a explica\\u00e7\\u00e3o iniciada em https:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte1\\\/. Inicio falando sobre o International Obfuscated C Code Contest (IOCCC), que \\u00e9 uma competi\\u00e7\\u00e3o de programa\\u00e7\\u00e3o que premia os programadores que conseguem escrever os programas em C mais criativamente \\u201cconfusos\\u201d, engenhosos e dif\\u00edceis de entender. O IOCCC nasceu em 1984, criado por Landon Curt Noll e Larry Bassel,\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/#website\"},\"breadcrumb\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte2\\\/#breadcrumblist\"},\"author\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2025-10-28T14:42:37-03:00\",\"dateModified\":\"2025-10-28T16:30:25-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/#website\",\"url\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/\",\"name\":\"Professor Benjamin\",\"description\":\"Blog com material das minhas disciplinas\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2] - Professor Benjamin","description":"Continuo aqui a explica\u00e7\u00e3o iniciada em https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/. Inicio falando sobre o International Obfuscated C Code Contest (IOCCC), que \u00e9 uma competi\u00e7\u00e3o de programa\u00e7\u00e3o que premia os programadores que conseguem escrever os programas em C mais criativamente \u201cconfusos\u201d, engenhosos e dif\u00edceis de entender. O IOCCC nasceu em 1984, criado por Landon Curt Noll e Larry Bassel,","canonical_url":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/#blogposting","name":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2] - Professor Benjamin","headline":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2]","author":{"@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/author\/admin\/#author"},"publisher":{"@id":"http:\/\/www.galirows.com.br\/meublog\/#organization"},"datePublished":"2025-10-28T14:42:37-03:00","dateModified":"2025-10-28T16:30:25-03:00","inLanguage":"pt-BR","commentCount":1,"mainEntityOfPage":{"@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/#webpage"},"isPartOf":{"@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/#webpage"},"articleSection":"Programa\u00e7\u00e3o, Educa\u00e7\u00e3o, Humor, Racioc\u00ednio L\u00f3gico"},{"@type":"BreadcrumbList","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"http:\/\/www.galirows.com.br\/meublog#listItem","position":1,"name":"Home","item":"http:\/\/www.galirows.com.br\/meublog","nextItem":{"@type":"ListItem","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/category\/programacao\/#listItem","name":"Programa\u00e7\u00e3o"}},{"@type":"ListItem","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/category\/programacao\/#listItem","position":2,"name":"Programa\u00e7\u00e3o","item":"http:\/\/www.galirows.com.br\/meublog\/blog\/category\/programacao\/","nextItem":{"@type":"ListItem","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/#listItem","name":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2]"},"previousItem":{"@type":"ListItem","@id":"http:\/\/www.galirows.com.br\/meublog#listItem","name":"Home"}},{"@type":"ListItem","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/#listItem","position":3,"name":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2]","previousItem":{"@type":"ListItem","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/category\/programacao\/#listItem","name":"Programa\u00e7\u00e3o"}}]},{"@type":"Organization","@id":"http:\/\/www.galirows.com.br\/meublog\/#organization","name":"Professor Benjamin","description":"Blog com material das minhas disciplinas","url":"http:\/\/www.galirows.com.br\/meublog\/"},{"@type":"Person","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/author\/admin\/#author","url":"http:\/\/www.galirows.com.br\/meublog\/blog\/author\/admin\/","name":"Benjamin Grando Moreira","image":{"@type":"ImageObject","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/af961283f376b309b0f923ac364c17ad071f1c11e42a5686b4975ad4d514fe29?s=96&d=mm&r=g","width":96,"height":96,"caption":"Benjamin Grando Moreira"}},{"@type":"WebPage","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/#webpage","url":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/","name":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2] - Professor Benjamin","description":"Continuo aqui a explica\u00e7\u00e3o iniciada em https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/. Inicio falando sobre o International Obfuscated C Code Contest (IOCCC), que \u00e9 uma competi\u00e7\u00e3o de programa\u00e7\u00e3o que premia os programadores que conseguem escrever os programas em C mais criativamente \u201cconfusos\u201d, engenhosos e dif\u00edceis de entender. O IOCCC nasceu em 1984, criado por Landon Curt Noll e Larry Bassel,","inLanguage":"pt-BR","isPartOf":{"@id":"http:\/\/www.galirows.com.br\/meublog\/#website"},"breadcrumb":{"@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/#breadcrumblist"},"author":{"@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/author\/admin\/#author"},"creator":{"@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/author\/admin\/#author"},"datePublished":"2025-10-28T14:42:37-03:00","dateModified":"2025-10-28T16:30:25-03:00"},{"@type":"WebSite","@id":"http:\/\/www.galirows.com.br\/meublog\/#website","url":"http:\/\/www.galirows.com.br\/meublog\/","name":"Professor Benjamin","description":"Blog com material das minhas disciplinas","inLanguage":"pt-BR","publisher":{"@id":"http:\/\/www.galirows.com.br\/meublog\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"Professor Benjamin - Blog com material das minhas disciplinas","og:type":"article","og:title":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2] - Professor Benjamin","og:description":"Continuo aqui a explica\u00e7\u00e3o iniciada em https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/. Inicio falando sobre o International Obfuscated C Code Contest (IOCCC), que \u00e9 uma competi\u00e7\u00e3o de programa\u00e7\u00e3o que premia os programadores que conseguem escrever os programas em C mais criativamente \u201cconfusos\u201d, engenhosos e dif\u00edceis de entender. O IOCCC nasceu em 1984, criado por Landon Curt Noll e Larry Bassel,","og:url":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/","article:published_time":"2025-10-28T17:42:37+00:00","article:modified_time":"2025-10-28T19:30:25+00:00","twitter:card":"summary_large_image","twitter:title":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2] - Professor Benjamin","twitter:description":"Continuo aqui a explica\u00e7\u00e3o iniciada em https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/. Inicio falando sobre o International Obfuscated C Code Contest (IOCCC), que \u00e9 uma competi\u00e7\u00e3o de programa\u00e7\u00e3o que premia os programadores que conseguem escrever os programas em C mais criativamente \u201cconfusos\u201d, engenhosos e dif\u00edceis de entender. O IOCCC nasceu em 1984, criado por Landon Curt Noll e Larry Bassel,"},"aioseo_meta_data":{"post_id":"1322","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2025-11-03 20:25:33","updated":"2025-11-03 20:25:33","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"http:\/\/www.galirows.com.br\/meublog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"http:\/\/www.galirows.com.br\/meublog\/blog\/category\/programacao\/\" title=\"Programa\u00e7\u00e3o\">Programa\u00e7\u00e3o<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tO que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2]\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"http:\/\/www.galirows.com.br\/meublog"},{"label":"Programa\u00e7\u00e3o","link":"http:\/\/www.galirows.com.br\/meublog\/blog\/category\/programacao\/"},{"label":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 2]","link":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/"}],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/1322","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/comments?post=1322"}],"version-history":[{"count":5,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/1322\/revisions"}],"predecessor-version":[{"id":1334,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/1322\/revisions\/1334"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/media?parent=1322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/categories?post=1322"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/tags?post=1322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}