我有XXX.EXE
这是将AES
应用于原始.EXE
的结果
我有一个主机进程,它在XXX.EXE
上调用CreateProcess
主机进程中有一种解密方法,允许解密.EXE
的任何块(这很简单,因为主机进程知道AES密钥)。
我想找到一种简单的方法来执行解密的.EXE
,并尽可能避免将整个.EXE
存储在内存中。
我尝试为ReadFile安装钩子,以便在CreateProcess
调用时动态解密,但这不起作用,因为CreateProcess也调用CreateFileMapping
,它可能使用内核模式函数读取文件,所以我被困住了。
有人有什么想法吗?
答案 0 :(得分:0)
您要做的是基本上运行packed executable以混淆正在运行的内容。打包程序将允许您正常运行可执行文件,并将有一小段未经模糊处理/未加密的代码,将解压缩二进制文件的其余部分。
有些打包者不需要一次性解压整个二进制文件,而其他打包者则需要。但是,这是恶意软件常用的技术,使逆向工程更加困难。这反过来又导致反病毒公司将打包的软件标记为恶意软件。
可以编写自己的可执行文件loader来解密剩余的可执行文件并加载导入的函数等。This article解释了Windows加载程序中涉及的步骤。