{"id":1318,"date":"2025-10-28T14:32:33","date_gmt":"2025-10-28T17:32:33","guid":{"rendered":"https:\/\/www.galirows.com.br\/meublog\/?p=1318"},"modified":"2025-10-28T14:50:06","modified_gmt":"2025-10-28T17:50:06","slug":"o-que-e-obfuscated-code-parte1","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/","title":{"rendered":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 1]"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Eu inicialmente escrevi esse artigo em <a href=\"https:\/\/www.anom.ia.br\/o-que-e-obfuscated-code\/\">https:\/\/www.anom.ia.br\/o-que-e-obfuscated-code\/<\/a>. Eu recomendo primeiro ler meu post original e depois voltar para ler o restante aqui, podendo pular direto para o exemplos. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em programa\u00e7\u00e3o, <em>obfuscated code<\/em> \u2014 ou c\u00f3digo ofuscado \u2014 \u00e9 o c\u00f3digo escrito de forma dif\u00edcil de entender. Ele pode executar uma tarefa simples, mas faz isso de maneira t\u00e3o confusa, compacta ou criativamente distorcida que at\u00e9 programadores experientes t\u00eam dificuldade para decifrar o que est\u00e1 acontecendo. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Escrever c\u00f3digo ofuscado \u00e9, de certo modo, o oposto do que se ensina em engenharia de software, onde busca-se clareza, legibilidade e manutenibilidade. Embora pare\u00e7a apenas uma brincadeira, o estudo do c\u00f3digo ofuscado revela um dom\u00ednio profundo da linguagem de programa\u00e7\u00e3o e do compilador.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No fundo, o <em>obfuscated code<\/em> \u00e9 uma forma de poesia t\u00e9cnica. Ele transforma o c\u00f3digo em um enigma, convida \u00e0 decodifica\u00e7\u00e3o e desafia nossa ideia do que \u00e9 \u201cbeleza\u201d em programa\u00e7\u00e3o. N\u00e3o \u00e9 \u00fatil no sentido tradicional, mas \u00e9 uma celebra\u00e7\u00e3o da criatividade, da curiosidade e do dom\u00ednio t\u00e9cnico.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Come\u00e7ando com um exemplo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Abaixo vai um exemplo pequeno de <em>obfuscated code<\/em> em C que imprime <strong>&#8220;Hello, world!&#8221;<\/strong>. O c\u00f3digo \u00e9 intencionalmente escrito de forma pouco direta (macros com <em>token-pasting<\/em>, escapes octais para letras, loop compacto) mas continua perfeitamente funcional. Depois do c\u00f3digo segue uma explica\u00e7\u00e3o em prosa, sem bullets.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c line-numbers\">#include &lt;stdio.h&gt;\n#define _(a,b) a##b\n#define P _(p,utchar)\n\nint main(void) {\n    char *s = \"H\\145llo, w\\157rld!\\n\";\n    for (int i = 0; s[i]; ++i) P(s[i]);\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Abaixo explico o que cada parte do programa faz, como o pr\u00e9-processador transforma os s\u00edmbolos e quais truques de C est\u00e3o sendo explorados:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Linha 2: Aqui \u00e9 definida uma macro chamada <code>_<\/code> que recebe dois par\u00e2metros, <code>a<\/code> e <code>b<\/code>. O operador <code>##<\/code> no pr\u00e9-processador \u00e9 o <strong>token-pasting operator<\/strong>: ele concatena os dois tokens fornecidos. Por exemplo, <code>_(p,utchar)<\/code> vira <code>p##utchar<\/code> e, ap\u00f3s a concatena\u00e7\u00e3o, o pr\u00e9-processador produz o token \u00fanico <code>putchar<\/code>. Usar <code>_<\/code> como nome de macro \u00e9 v\u00e1lido, embora pouco leg\u00edvel.<\/li>\n\n\n\n<li>Linha 3: Esta linha define outra macro <code>P<\/code> que expande para <code>_(p,utchar)<\/code>. Aplicando a expans\u00e3o recursivamente, <code>_(p,utchar)<\/code> \u00e9 substitu\u00eddo pelo resultado do <code>a##b<\/code>, isto \u00e9, <code>putchar<\/code>. Em resumo, a macro <code>P<\/code> acaba sendo um apelido (obscuro) para a fun\u00e7\u00e3o <code>putchar<\/code>.<\/li>\n\n\n\n<li>Linha 6: Aqui est\u00e1 um truque de ofusca\u00e7\u00e3o: a string parece estranha por conter escapes octais. <code>\\145<\/code> e <code>\\157<\/code> s\u00e3o escapes octais que representam caracteres ASCII. Calculando cada escape:\n<ul class=\"wp-block-list\">\n<li><code>\\145<\/code> em octal = 1\u00d764 + 4\u00d78 + 5 = 64 + 32 + 5 = 101 decimal \u2192 caractere ASCII 101 = <code>'e'<\/code>.<\/li>\n\n\n\n<li><code>\\157<\/code> em octal = 1\u00d764 + 5\u00d78 + 7 = 64 + 40 + 7 = 111 decimal \u2192 caractere ASCII 111 = <code>'o'<\/code>.<\/li>\n\n\n\n<li>Portanto a string literal \u00e9, na pr\u00e1tica, exatamente <code>\"Hello, world!\\n\"<\/code>. O <code>\\n<\/code> \u00e9 o escape de nova linha.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Linha 7: O <code>for<\/code> faz duas coisas compactas em uma linha:\n<ul class=\"wp-block-list\">\n<li>A condi\u00e7\u00e3o de continua\u00e7\u00e3o \u00e9 <code>s[i]<\/code>: Em C, em contexto condicional, isso \u00e9 equivalente a <code>s[i] != '\\0'<\/code>, ou seja, o la\u00e7o continua enquanto o caractere atual n\u00e3o for o terminador nulo da string.<\/li>\n\n\n\n<li>O corpo do <code>for<\/code> \u00e9 uma \u00fanica express\u00e3o: <code>P(s[i])<\/code>: Por expans\u00e3o das macros, <code>P<\/code> \u2192 <code>_(p,utchar)<\/code> \u2192 <code>putchar<\/code>. Assim, <code>P(s[i])<\/code> equivale a <code>putchar(s[i])<\/code> \u2014 imprime o caractere <code>s[i]<\/code> no <code>stdout<\/code>. Em outras palavras: o <code>for<\/code> varre a string <code>s<\/code> e imprime caractere por caractere.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Se expandirmos as macros e resolvermos os escapes, o programa \u00e9 conceitualmente equivalente ao c\u00f3digo abaixo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c\">#include &lt;stdio.h>\n\nint main(void) {\n    char *s = \"Hello, world!\\n\";\n    for (int i = 0; s[i]; ++i)\n        putchar(s[i]);\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Uma continua\u00e7\u00e3o deste post, com aprofundamento dos itens apresentados est\u00e1 dispon\u00edvel em <a href=\"https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/\">https:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte2\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eu inicialmente escrevi esse artigo em https:\/\/www.anom.ia.br\/o-que-e-obfuscated-code\/. Eu recomendo primeiro ler meu post original e depois voltar para ler o restante aqui, podendo pular direto para o exemplos. Em programa\u00e7\u00e3o, obfuscated code \u2014 ou c\u00f3digo ofuscado \u2014 \u00e9 o c\u00f3digo escrito de forma dif\u00edcil de entender. Ele pode executar uma tarefa simples, mas faz isso [&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],"class_list":["post-1318","post","type-post","status-publish","format-standard","hentry","category-programacao","tag-educacao","tag-humor"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Eu inicialmente escrevi esse artigo em https:\/\/www.anom.ia.br\/o-que-e-obfuscated-code\/. Eu recomendo primeiro ler meu post original e depois voltar para ler o restante aqui, podendo pular direto para o exemplos. Em programa\u00e7\u00e3o, obfuscated code \u2014 ou c\u00f3digo ofuscado \u2014 \u00e9 o c\u00f3digo escrito de forma dif\u00edcil de entender. Ele pode executar uma tarefa simples, mas faz isso\" \/>\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-parte1\/\" \/>\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 1] - Professor Benjamin\" \/>\n\t\t<meta property=\"og:description\" content=\"Eu inicialmente escrevi esse artigo em https:\/\/www.anom.ia.br\/o-que-e-obfuscated-code\/. Eu recomendo primeiro ler meu post original e depois voltar para ler o restante aqui, podendo pular direto para o exemplos. Em programa\u00e7\u00e3o, obfuscated code \u2014 ou c\u00f3digo ofuscado \u2014 \u00e9 o c\u00f3digo escrito de forma dif\u00edcil de entender. Ele pode executar uma tarefa simples, mas faz isso\" \/>\n\t\t<meta property=\"og:url\" content=\"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-10-28T17:32:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-10-28T17:50:06+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 1] - Professor Benjamin\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Eu inicialmente escrevi esse artigo em https:\/\/www.anom.ia.br\/o-que-e-obfuscated-code\/. Eu recomendo primeiro ler meu post original e depois voltar para ler o restante aqui, podendo pular direto para o exemplos. Em programa\u00e7\u00e3o, obfuscated code \u2014 ou c\u00f3digo ofuscado \u2014 \u00e9 o c\u00f3digo escrito de forma dif\u00edcil de entender. Ele pode executar uma tarefa simples, mas faz isso\" \/>\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-parte1\\\/#blogposting\",\"name\":\"O que \\u00e9 obfuscated code, op\\u00e7\\u00f5es e exemplos [parte 1] - Professor Benjamin\",\"headline\":\"O que \\u00e9 obfuscated code, op\\u00e7\\u00f5es e exemplos [parte 1]\",\"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:32:33-03:00\",\"dateModified\":\"2025-10-28T14:50:06-03:00\",\"inLanguage\":\"pt-BR\",\"commentCount\":2,\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte1\\\/#webpage\"},\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte1\\\/#webpage\"},\"articleSection\":\"Programa\\u00e7\\u00e3o, Educa\\u00e7\\u00e3o, Humor\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte1\\\/#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-parte1\\\/#listItem\",\"name\":\"O que \\u00e9 obfuscated code, op\\u00e7\\u00f5es e exemplos [parte 1]\"},\"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-parte1\\\/#listItem\",\"position\":3,\"name\":\"O que \\u00e9 obfuscated code, op\\u00e7\\u00f5es e exemplos [parte 1]\",\"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-parte1\\\/#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-parte1\\\/#webpage\",\"url\":\"http:\\\/\\\/www.galirows.com.br\\\/meublog\\\/blog\\\/o-que-e-obfuscated-code-parte1\\\/\",\"name\":\"O que \\u00e9 obfuscated code, op\\u00e7\\u00f5es e exemplos [parte 1] - Professor Benjamin\",\"description\":\"Eu inicialmente escrevi esse artigo em https:\\\/\\\/www.anom.ia.br\\\/o-que-e-obfuscated-code\\\/. Eu recomendo primeiro ler meu post original e depois voltar para ler o restante aqui, podendo pular direto para o exemplos. Em programa\\u00e7\\u00e3o, obfuscated code \\u2014 ou c\\u00f3digo ofuscado \\u2014 \\u00e9 o c\\u00f3digo escrito de forma dif\\u00edcil de entender. Ele pode executar uma tarefa simples, mas faz isso\",\"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-parte1\\\/#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:32:33-03:00\",\"dateModified\":\"2025-10-28T14:50:06-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 1] - Professor Benjamin","description":"Eu inicialmente escrevi esse artigo em https:\/\/www.anom.ia.br\/o-que-e-obfuscated-code\/. Eu recomendo primeiro ler meu post original e depois voltar para ler o restante aqui, podendo pular direto para o exemplos. Em programa\u00e7\u00e3o, obfuscated code \u2014 ou c\u00f3digo ofuscado \u2014 \u00e9 o c\u00f3digo escrito de forma dif\u00edcil de entender. Ele pode executar uma tarefa simples, mas faz isso","canonical_url":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/","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-parte1\/#blogposting","name":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 1] - Professor Benjamin","headline":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 1]","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:32:33-03:00","dateModified":"2025-10-28T14:50:06-03:00","inLanguage":"pt-BR","commentCount":2,"mainEntityOfPage":{"@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/#webpage"},"isPartOf":{"@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/#webpage"},"articleSection":"Programa\u00e7\u00e3o, Educa\u00e7\u00e3o, Humor"},{"@type":"BreadcrumbList","@id":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/#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-parte1\/#listItem","name":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 1]"},"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-parte1\/#listItem","position":3,"name":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 1]","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-parte1\/#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-parte1\/#webpage","url":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/","name":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 1] - Professor Benjamin","description":"Eu inicialmente escrevi esse artigo em https:\/\/www.anom.ia.br\/o-que-e-obfuscated-code\/. Eu recomendo primeiro ler meu post original e depois voltar para ler o restante aqui, podendo pular direto para o exemplos. Em programa\u00e7\u00e3o, obfuscated code \u2014 ou c\u00f3digo ofuscado \u2014 \u00e9 o c\u00f3digo escrito de forma dif\u00edcil de entender. Ele pode executar uma tarefa simples, mas faz isso","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-parte1\/#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:32:33-03:00","dateModified":"2025-10-28T14:50:06-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 1] - Professor Benjamin","og:description":"Eu inicialmente escrevi esse artigo em https:\/\/www.anom.ia.br\/o-que-e-obfuscated-code\/. Eu recomendo primeiro ler meu post original e depois voltar para ler o restante aqui, podendo pular direto para o exemplos. Em programa\u00e7\u00e3o, obfuscated code \u2014 ou c\u00f3digo ofuscado \u2014 \u00e9 o c\u00f3digo escrito de forma dif\u00edcil de entender. Ele pode executar uma tarefa simples, mas faz isso","og:url":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/","article:published_time":"2025-10-28T17:32:33+00:00","article:modified_time":"2025-10-28T17:50:06+00:00","twitter:card":"summary_large_image","twitter:title":"O que \u00e9 obfuscated code, op\u00e7\u00f5es e exemplos [parte 1] - Professor Benjamin","twitter:description":"Eu inicialmente escrevi esse artigo em https:\/\/www.anom.ia.br\/o-que-e-obfuscated-code\/. Eu recomendo primeiro ler meu post original e depois voltar para ler o restante aqui, podendo pular direto para o exemplos. Em programa\u00e7\u00e3o, obfuscated code \u2014 ou c\u00f3digo ofuscado \u2014 \u00e9 o c\u00f3digo escrito de forma dif\u00edcil de entender. Ele pode executar uma tarefa simples, mas faz isso"},"aioseo_meta_data":{"post_id":"1318","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 1]\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 1]","link":"http:\/\/www.galirows.com.br\/meublog\/blog\/o-que-e-obfuscated-code-parte1\/"}],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/1318","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=1318"}],"version-history":[{"count":3,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/1318\/revisions"}],"predecessor-version":[{"id":1328,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/1318\/revisions\/1328"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/media?parent=1318"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/categories?post=1318"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/tags?post=1318"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}