Pergunta muito interessante. Eu já vi algumas falhas de DEP do cscript.exe antes. É irritante.
O VBScript é anterior à DEP no Windows e, como tal, não foi originalmente desenvolvido com a DEP em mente. Além disso, quando você começa a interagir com interfaces COM e OLE antigas e de terceiros em seus scripts, elas podem causar falhas do NX e o cscript.exe é responsabilizado por isso. Este último geralmente é o caso.
However, something really bothers me about using the old version. I feel like I could be introducing a security risk or a version issue.
É um pouco engraçado para mim que você diria isso, porque desabilitar a DEP para um programa como cscript.exe será way mais um risco de segurança do que usar a versão 2003.
Você não pode desabilitar a DEP para processos de 64 bits, ponto final.
For the purposes of application compatibility when DEP is set to the OptOut policy level, it is possible to selectively disable DEP for individual 32-bit applications. However, DEP is always enabled for 64-bit applications.
Então, isso deixa você com a versão de 32 bits, "SysWOW64" do cscript.exe ... no entanto, executáveis modernos podem e geralmente são marcados com um "você não pode desligar a DEP em mim,"
Tecnicamente, é o /NXCOMPAT
sinalizador com o qual o executável foi compilado. É um interruptor de linker. A versão antiga de 2003 do executável não foi compilada com essa opção, e é por isso que você pode colocá-la na lista de isenções de DEP, mas não na versão de 2008.
Mas espere mais! Se você ainda quiser usar a versão 2008 do SysWoW64 \ cscript.exe, tudo o que você precisa fazer é copiar o arquivo executável e, em seguida, executar:
editbin /NXCOMPAT:NO C:\cscript.exe
Agora você pode adicioná-lo à lista de isenções de DEP. Editbin.exe vem com o Visual Studio, o Windows SDK, etc.
Divirta-se injetando código na pilha ou memória heap e ramificando o ponteiro de instruções para executá-lo!