我需要在 exe 文件启动后删除它,以便无法对其进行分析(当然,除非我错过了转储的可能性)。我知道有几种方法可以做到这一点,但它们非常有用:
- 启动程序后拔出闪存驱动器。它将继续工作,但图像将不再存在于任何地方(这可能会在请求资源时导致运行时错误,但这并不重要)。
- 创建一个虚拟磁盘并在程序启动时断开它(与方法1几乎相同。
那么在运行时删除exe的正常方法是什么?也许在物理级别使用磁盘?
我需要在 exe 文件启动后删除它,以便无法对其进行分析(当然,除非我错过了转储的可能性)。我知道有几种方法可以做到这一点,但它们非常有用:
那么在运行时删除exe的正常方法是什么?也许在物理级别使用磁盘?
通常 Windows 在执行或读/写期间锁定文件。当然,您可以尝试使用病毒使用的方法来解决此问题,但我认为防病毒软件会迅速消除这种混乱。我认为对您来说最好的选择是完成卸载脚本。
这不能回答问题,但这是我所知道的最大值。
http://web.archive.org/web/20160308234918/http://www.catch22.net/tuts/self-deleting-executables
文章中最简单的解决方案是基于 bat 文件可以自行删除的事实:
del %0要么del %0.bat保存在记事本中,然后运行。我根据个人经验补充一下(与上篇文章无关):WinHEX程序可以让你替换媒体上的任意字节,文件不是文件没关系,没有运行,你可以用知识关于文件系统在设备部分中找到可执行模块并通过覆盖这些字节将其从文件系统中删除。但是没有已知的方法可以通过 WinHEX 程序实现此类操作。同样,您还可以在 Windows 环境中读取存储密码的系统文件。这可以使用已删除的文件恢复实用程序之一来完成。当您要求恢复存在的文件(例如,存储密码并被操作系统锁定的文件)时,它会在您希望的任何位置复制其内容。
还有一个选项可以通过物理内存使用驱动程序(内核)。好吧,或者从进程列表中解开模块。任何事物。只是认为有一个 ring3 选项。我将尝试使用注入系统进程
Windows 有 1 个非常困难的选项: 1. 创建一个文件 2.exe 它
1) 使用汇编代码创建一个区域(例如,VirtualAlloc 在 0x20000 和 0x410000(对于 1.exe))
2) 在单个块中读取 0x410000 处的 1.exe
3) 用汇编代码创建一个区域(例如地址 0x20000)
4)切换到汇编程序清除所有汇编程序堆栈并使 jmp 0x20000
5)汇编代码从内存中擦除2.exe(也是vinapi控制虚拟内存)
6)写入同一个地方(从我擦除2.exe的地方)1.exe从内存0x410000和jmp到这段代码,但我不知道它是否可以在这里工作
例如,您可以尝试以某种特殊方式将 1.exe 文件本身编译为 dll 并将其加载到进程内存中。总的来说,值得挖掘一下 Wirth。记忆。当然,如果您删除投影的 exe 并关闭文件描述符,那么您可以删除该文件(那么 2.exe 根本不需要)。需要测试。
我们称它为 Windows 漏洞测试器。
然而我找到了解决方案。它被称为进程空心(github上的源代码)。anmap exe后,图片没有列为涉及,所以可以删除