{"id":464,"date":"2026-10-03T19:17:29","date_gmt":"2026-10-03T18:17:29","guid":{"rendered":"https:\/\/wpcalc.com\/pt\/descodificar-javascript-eval\/"},"modified":"2026-10-03T19:17:29","modified_gmt":"2026-10-03T18:17:29","slug":"descodificar-javascript-eval","status":"publish","type":"post","link":"https:\/\/wpcalc.com\/pt\/ferramentas-web\/descodificar-javascript-eval\/","title":{"rendered":"Descodificador de JavaScript Eval"},"content":{"rendered":"<section class=\"not-prose calculator-box\" aria-labelledby=\"calculator-title\"><div class=\"flex items-baseline sm:items-center justify-between gap-2 sm:gap-3\"><div class=\"flex flex-col sm:flex-row sm:items-center gap-2\"><span class=\"icon icon-calculator text-primary-700! text-base! dark:text-primary-300!\" aria-hidden=\"true\"><\/span><h2 id=\"calculator-title\" class=\"text-lg font-display font-bold\">Ferramenta de Descodifica\u00e7\u00e3o de Eval em JavaScript<\/h2><\/div><div class=\"calcdash-favorite group\">\n  <button type=\"button\" class=\"favorite\" id=\"favorite\" data-favorite-id=\"464\" data-favorite-title=\"Descodificador de JavaScript Eval\" data-favorite-url=\"https:\/\/wpcalc.com\/pt\/ferramentas-web\/descodificar-javascript-eval\/\" data-favorite-excerpt=\"Cole um JavaScript que come\u00e7a com eval(function(...)) para ver a string devolvida pela sua fun\u00e7\u00e3o interna, formatada como c\u00f3digo leg\u00edvel. N\u00e3o utilize scripts n\u00e3o confi\u00e1veis: a descodifica\u00e7\u00e3o pode executar JavaScript no seu navegador.\" aria-label=\"Adicionar aos favoritos\" data-favorite-icon=\"icon icon-conversion\">\n    <span class=\"icon icon-shape-star-empty\" aria-hidden=\"true\"><\/span>\n  <\/button>\n  <div class=\"calcdash-favorite__tip\" aria-hidden=\"true\">\n   <span class=\"favorite-tooltip\" id=\"favorite-tooltip\"><\/span>\n  <\/div>\n  <span class=\"sr-only\" role=\"status\" id=\"favorite-status\"><\/span>\n<\/div><\/div><form action=\"https:\/\/wpcalc.com\/pt\/ferramentas-web\/descodificar-javascript-eval\/\" method=\"POST\" class=\"calculator\" id=\"calculator-464\" data-post=\"464\"><fieldset class=\"fieldset-input is-1\"><legend class=\"sr-only\">Campos de entrada<\/legend><div class=\"field\" id=\"input-1\"><label for=\"field-1\">C\u00f3digo JavaScript Ofuscado<\/label><textarea id=\"field-1\" name=\"cdigo_javascript_ofuscado\"><\/textarea><\/div><\/fieldset><div class=\"buttons\"><button type=\"submit\" data-text=\"Recalcular\" id=\"calculate-button\" data-post=\"464\">Calcular<\/button><button type=\"reset\">Redefinir<\/button><\/div><div class=\"field is-checkbox hidden!\" id=\"field-auto-calc\"><input type=\"checkbox\" id=\"auto-calc\"><label for=\"auto-calc\">Calcular automaticamente<\/label><small>Se ativado, o resultado \u00e9 atualizado automaticamente quando voc\u00ea altera qualquer valor.<\/small><\/div><div class=\"fieldset-result is-hidden\" aria-labelledby=\"result-title\" aria-live=\"polite\" role=\"region\"> <h3 class=\"result-title bg-gradient-to-r from-primary-50 to-gray-50 dark:from-primary-900 dark:to-gray-800\" id=\"result-title\"><span class=\"icon icon-s-pulse\" aria-hidden=\"true\"><\/span> Seus resultados<\/h3><div class=\"result-box\"><div class=\"field-result is-column\" id=\"output-1\"><span class=\"field-title\"><span>C\u00f3digo JavaScript Decodificado<\/span><\/span><span class=\"field-value\" id=\"result-1\"><\/span><button type=\"button\" class=\"copy-result\" data-tooltip=\"Copiar resultado\" aria-label=\"Copiar resultado\"><span class=\"copy-icon icon icon-document-copy\" aria-hidden=\"true\"><\/span><\/button><\/div><\/div><div class=\"result-actions\"><button type=\"button\" class=\"copy-link\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z\"\/><path d=\"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z\"\/><\/svg><span class=\"copy-link__text\">Copiar link para este c\u00e1lculo<\/span><\/button><span class=\"sr-only\" role=\"status\" id=\"copy-link-status\"><\/span><\/div><\/div><a href=\"#respond\" class=\"hidden transition-opacity duration-300 opacity-0 w-50 text-sm justify-center items-center gap-2 px-4 py-2 rounded bg-gray-200 text-gray-700 hover:bg-gray-300\" id=\"leave-comment\"><span class=\"icon icon-comments\" aria-hidden=\"true\"><\/span>Deixar um coment\u00e1rio<\/a><\/form><\/section><section id=\"calc-reactions\" class=\"not-prose hidden my-12 bg-gradient-to-r from-primary-50 to-gray-50 border border-indigo-100 rounded-xl px-6 py-4 shadow-sm\" data-post=\"464\" aria-live=\"polite\" aria-labelledby=\"calc-reactions-title\"><p id=\"calc-reactions-title\" class=\"text-sm text-gray-500 text-center mb-2\">O que voc\u00ea achou deste resultado?<\/p><div role=\"group\" aria-labelledby=\"calc-reactions-title\" class=\"grid grid-cols-3 sm:flex sm:flex-row sm:justify-around gap-4 sm:items-center sm:flex-wrap\"><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"like\"><span class=\"reaction-count\" data-reaction-count=\"like\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\ude00 <\/span><span class=\"reaction-description font-medium\">Curti <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"helpful\"><span class=\"reaction-count\" data-reaction-count=\"helpful\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\udca1 <\/span><span class=\"reaction-description font-medium\">\u00datil <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"confused\"><span class=\"reaction-count\" data-reaction-count=\"confused\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\ude15 <\/span><span class=\"reaction-description font-medium\">Confuso <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"disappointed\"><span class=\"reaction-count\" data-reaction-count=\"disappointed\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\ud83d\ude1e <\/span><span class=\"reaction-description font-medium\">Decepcionado <\/span><\/button><button type=\"button\" aria-pressed=\"false\" class=\"reaction-btn flex flex-col items-center gap-1 text-sm text-gray-700 hover:text-primary-600 cursor-pointer transition-transform hover:scale-105\" data-reaction=\"inaccurate\"><span class=\"reaction-count\" data-reaction-count=\"inaccurate\">0<\/span><span class=\"reaction text-3xl\" aria-hidden=\"true\">\u274c <\/span><span class=\"reaction-description font-medium\">Impreciso <\/span><\/button><\/div><div id=\"reaction-message\" class=\"hidden mt-8 rounded-md border border-primary-100 bg-white\/50 backdrop-blur-sm px-4 py-2 text-sm text-center shadow-sm\"><\/div><\/section><div class=\"calcdash-ad not-prose calcdash-ad--calc_result calcdash-ad--in-article\"><ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"ca-pub-1721569815777345\" data-ad-slot=\"6317458308\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\"><\/ins><script>(adsbygoogle = window.adsbygoogle || []).push({});<\/script><\/div>\n<style id=\"wpcoderpro-inline-1\">.formula-box {\r\n\tborder-bottom: none !important;\r\n}<\/style><section class=\"formula-box\" aria-labelledby=\"formula-title\">\r\n\t<div id=\"formula-title\" class=\"not-prose font-display mb-4\"><span class=\"icon icon-formula\" aria-hidden=\"true\"><\/span><h2>F\u00f3rmula do Descodificador de JavaScript Eval<\/h2><\/div>\r\n\t<figure class=\"not-prose formula\">\r\n\t\t<figcaption class=\"formula-title\">F\u00f3rmula<\/figcaption>\r\n\t\t<div class=\"text-base text-gray-800\" id=\"formula\">\n\\[ D = B_4\\!\\left(L\\!\\left(E\\!\\left(S_{4:}\\right)\\right)\\right) \\]\n<\/div>\r\n\t<\/figure>\r\n\t<\/p>\n<p><strong>Em que:<\/strong><\/p>\n<ul>\n<li>\\(S\\) \u2014 o texto introduzido em C\u00f3digo JavaScript Ofuscado.<\/li>\n<li>\\(S_{4:}\\) \u2014 esse texto ap\u00f3s os seus primeiros quatro caracteres, removendo normalmente <code>eval<\/code>.<\/li>\n<li>\\(E\\) \u2014 avalia\u00e7\u00e3o JavaScript da express\u00e3o restante.<\/li>\n<li>\\(L\\) \u2014 remo\u00e7\u00e3o dos espa\u00e7os em branco iniciais da string devolvida.<\/li>\n<li>\\(B_4\\) \u2014 formata\u00e7\u00e3o com uma indenta\u00e7\u00e3o de 4; \\(D\\) \u00e9 o resultado apresentado.<\/li>\n<\/ul>\n<p>Isto descreve os passos de processamento da ferramenta, n\u00e3o uma fun\u00e7\u00e3o especial de descodifica\u00e7\u00e3o de JavaScript. A avalia\u00e7\u00e3o tem de devolver uma string para que os passos seguintes de remo\u00e7\u00e3o de espa\u00e7os em branco e de formata\u00e7\u00e3o funcionem.<\/p>\n<p>\r\n<\/section>\n<style id=\"wpcoderpro-inline-2\">.calculation-box {\r\n\tborder-bottom: none !important;\r\n}<\/style><section id=\"calculation\" class=\"calculation-box\" aria-labelledby=\"calculation-title\">\r\n\t<div id=\"calculation-title\" class=\"not-prose font-display\"><span class=\"icon icon-unordered-list\" aria-hidden=\"true\"><\/span><h2>Descodificador de JavaScript Eval \u2013 Exemplo de C\u00e1lculo<\/h2><\/div>\r\n\r\n<\/p>\n<p><strong>Exemplo:<\/strong> introduza <code>eval(function(p){return p.replace(\"0\", \"42\");}(\"const answer = 0;\"))<\/code> em C\u00f3digo JavaScript Ofuscado. Remover <code>eval<\/code> deixa uma chamada de fun\u00e7\u00e3o que devolve uma string.<\/p>\n<p>\\[ \\operatorname{replace}(\\text{\"const answer = 0;\"},\\text{\"0\"},\\text{\"42\"})=\\text{\"const answer = 42;\"} \\]<\/p>\n<p><strong>Resultado:<\/strong> C\u00f3digo JavaScript Descodificado apresenta <code>const answer = 42;<\/code>. Este exemplo demonstra os passos de processamento; os scripts compactados usam normalmente uma fun\u00e7\u00e3o de substitui\u00e7\u00e3o mais elaborada.<\/p>\n<p>\n\r\n<\/section>\n<h2>Como utilizar a calculadora<\/h2>\n<ol>\n<li>Cole a express\u00e3o completa em <strong>C\u00f3digo JavaScript Ofuscado<\/strong>. A entrada pretendida come\u00e7a com <code>eval(function(...))<\/code>; mantenha a chamada de fun\u00e7\u00e3o e os seus argumentos intactos.<\/li>\n<li>Execute a calculadora e consulte o <strong>C\u00f3digo JavaScript Descodificado<\/strong>. A ferramenta remove os primeiros quatro caracteres, avalia o que resta, corta os espa\u00e7os em branco iniciais da string devolvida e formata-a.<\/li>\n<li>Utilize a op\u00e7\u00e3o de c\u00f3pia do resultado se quiser inspecionar o texto num editor. Analise o que ele faz antes de o executar noutro local.<\/li>\n<\/ol>\n<p>N\u00e3o existem valores de c\u00f3digo predefinidos a submeter. Um campo vazio produz a mensagem \u201cIntroduza o c\u00f3digo\u201d. Se a entrada estiver malformada ou n\u00e3o devolver uma string, o c\u00e1lculo pode falhar e n\u00e3o produzir um resultado descodificado.<\/p>\n<h2>O que significa a descodifica\u00e7\u00e3o de eval em JavaScript<\/h2>\n<p>Alguns compactadores de JavaScript produzem uma express\u00e3o exterior com o formato <code>eval(function(...){...}(...))<\/code>. A fun\u00e7\u00e3o interna constr\u00f3i uma string de c\u00f3digo-fonte substituindo tokens curtos por identificadores mais longos ou outro texto. Na express\u00e3o original, o <code>eval<\/code> exterior executaria depois esse c\u00f3digo gerado. Esta calculadora remove o prefixo literal <code>eval<\/code> para poder apresentar a string devolvida pela express\u00e3o interna.<\/p>\n<p>Essa distin\u00e7\u00e3o \u00e9 importante ao ler o resultado. O texto apresentado \u00e9 o c\u00f3digo-fonte gerado, n\u00e3o necessariamente um registo de tudo o que aconteceu durante a descodifica\u00e7\u00e3o. A express\u00e3o interna ainda \u00e9 avaliada para o obter, e uma fun\u00e7\u00e3o interna pode executar a\u00e7\u00f5es antes de devolver uma string. A formata\u00e7\u00e3o torna o resultado mais f\u00e1cil de analisar, mas n\u00e3o explica o comportamento do c\u00f3digo nem garante que \u00e9 seguro.<\/p>\n<p>Utilize o resultado para analisar mais de perto vari\u00e1veis, chamadas de fun\u00e7\u00e3o, URLs e a l\u00f3gica de constru\u00e7\u00e3o de strings. Se o c\u00f3digo-fonte estiver apenas minificado em vez de encapsulado numa express\u00e3o eval compat\u00edvel, um resultado do <a href=\"https:\/\/wpcalc.com\/pt\/ferramentas-web\/comprimir-javascript\/\">Compressor de JavaScript<\/a> ilustra outro tipo de transforma\u00e7\u00e3o: encurtar c\u00f3digo n\u00e3o implica, por si s\u00f3, um passo de descodifica\u00e7\u00e3o baseado em eval. Para comparar como este estilo de encapsulamento \u00e9 criado, consulte o <a href=\"https:\/\/wpcalc.com\/pt\/ferramentas-web\/ofuscador-javascript-eval\/\">Ofuscador de JavaScript (eval)<\/a>.<\/p>\n<h2>Pressupostos, limita\u00e7\u00f5es e seguran\u00e7a<\/h2>\n<p><strong>N\u00e3o trate isto como uma sandbox segura para malware.<\/strong> A ferramenta chama o <code>eval<\/code> de JavaScript sobre a entrada depois de remover os seus primeiros quatro caracteres. Embora isso possa evitar a execu\u00e7\u00e3o do c\u00f3digo-fonte gerado, como o <code>eval<\/code> exterior original faria, a express\u00e3o restante pode, ela pr\u00f3pria, executar JavaScript. Uma entrada n\u00e3o confi\u00e1vel pode ter efeitos secund\u00e1rios no seu navegador. Inspecione scripts suspeitos num ambiente isolado adequado, em vez de os colar numa p\u00e1gina em que confia.<\/p>\n<p>A ferramenta remove exatamente quatro caracteres; n\u00e3o analisa o JavaScript para localizar um <code>eval<\/code> exterior. Um coment\u00e1rio inicial, espa\u00e7os antes de <code>eval<\/code> ou um encapsulamento diferente podem alterar o que \u00e9 avaliado. Assume tamb\u00e9m que a express\u00e3o avaliada devolve uma string: um n\u00famero, um objeto ou um valor indefinido n\u00e3o podem ser processados pela opera\u00e7\u00e3o de string seguinte. A l\u00f3gica fornecida executa uma avalia\u00e7\u00e3o e uma passagem de formata\u00e7\u00e3o; n\u00e3o descompacta repetidamente camadas aninhadas nem fornece realce de sintaxe.<\/p>\n<p>A formata\u00e7\u00e3o pode acrescentar quebras de linha e indenta\u00e7\u00e3o, pelo que o resultado apresentado n\u00e3o deve ser tratado como id\u00eantico, byte a byte, \u00e0 string devolvida. Se a inspe\u00e7\u00e3o revelar um valor codificado separadamente em Base64, um <a href=\"https:\/\/wpcalc.com\/pt\/ferramentas-web\/decodificador-base64\/\">Descodificador Base64<\/a> pode ajudar a examinar esse valor; ele n\u00e3o faz parte do processo de descodifica\u00e7\u00e3o desta calculadora.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cole um JavaScript que come\u00e7a com eval(function(...)) para ver a string devolvida pela sua fun\u00e7\u00e3o interna, formatada como c\u00f3digo leg\u00edvel. N\u00e3o utilize scripts n\u00e3o confi\u00e1veis: a descodifica\u00e7\u00e3o pode executar JavaScript no seu navegador.<\/p>\n","protected":false},"author":3168,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[15],"tags":[28],"class_list":["post-464","post","type-post","status-publish","format-standard","hentry","category-ferramentas-web","tag-ferramentas-de-conversao"],"acf":[],"_links":{"self":[{"href":"https:\/\/wpcalc.com\/pt\/wp-json\/wp\/v2\/posts\/464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpcalc.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpcalc.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpcalc.com\/pt\/wp-json\/wp\/v2\/users\/3168"}],"replies":[{"embeddable":true,"href":"https:\/\/wpcalc.com\/pt\/wp-json\/wp\/v2\/comments?post=464"}],"version-history":[{"count":2,"href":"https:\/\/wpcalc.com\/pt\/wp-json\/wp\/v2\/posts\/464\/revisions"}],"predecessor-version":[{"id":1724,"href":"https:\/\/wpcalc.com\/pt\/wp-json\/wp\/v2\/posts\/464\/revisions\/1724"}],"wp:attachment":[{"href":"https:\/\/wpcalc.com\/pt\/wp-json\/wp\/v2\/media?parent=464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpcalc.com\/pt\/wp-json\/wp\/v2\/categories?post=464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpcalc.com\/pt\/wp-json\/wp\/v2\/tags?post=464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}