Monday, October 5, 2026

PDF Adobe Reader exe injection attack



 // Este código roda no arranque do Adobe Acrobat

var MinhaFuncaoSegura = app.trustedFunction(function(oDoc, cCaminho) {

    

    // --- INÍCIO DA TRANSIÇÃO DE PRIVILÉGIO ---

    // Eleva o privilégio do 'stack frame' atual para permitir APIs restritas

    app.beginPriv(); 

    

    try {

        // Operação Restrita: Guardar o ficheiro num caminho arbitrário do sistema

        oDoc.saveAs(cCaminho); 

        console.println("Documento guardado com sucesso em: " + cCaminho);

    } 

    catch(e) {

        console.println("Erro na execução: " + e.toString());

    }

    

    // --- FIM DA TRANSIÇÃO DE PRIVILÉGIO ---

    // Revoga imediatamente os privilégios elevados por segurança

    app.endPriv(); 

    

});



// Código inserido num botão do PDF
// Transita o fluxo para a função confiável mapeada na máquina
if (typeof(MinhaFuncaoSegura) !== "undefined") {
    // A função aceita o objeto do documento (this) e executa a ação restrita de forma segura
    MinhaFuncaoSegura(this, "/C/Utilizadores/Publico/DocumentoFinal.pdf");
} else {
    app.alert("Esta funcionalidade requer privilégios administrativos locais.");
}


var GravarEmPastaQualquer = app.trustedFunction(function(oDoc) {
    app.beginPriv();
    
    // FALHA ADOBE: Se a pasta "Relatorios2026" não existir no seu disco C:,
    // esta linha falha imediatamente e o script é abortado.
    var pastaDestino = "/C/Relatorios2026/FicheiroFinal.pdf";
    
    oDoc.saveAs(pastaDestino); 
    
    // Esta mensagem nunca será exibida se a pasta de destino for inválida
    console.println("Gravação concluída com sucesso."); 
    
    app.endPriv();
});

No comments:

PDF Adobe Reader exe injection attack

 // Este código roda no arranque do Adobe Acrobat var MinhaFuncaoSegura = app.trustedFunction(function(oDoc, cCaminho) {          // --- INÍ...