Windows Delphi多功能一体式.exe存储

Windows Delphi多功能一体式.exe存储,windows,delphi,Windows,Delphi,我编写了一个非常小的TSR程序(passwordmanager.exe),有两个非常小的记录文件 实际上,我将所有文件(exe、数据)保存到用户始终传输的一个U盘上,当数据包含敏感数据时 是否有任何技术可以修改当前正在运行的passwordmanager.exe本身的内部资源?据我所知,exe被复制到RAM中,因此passwordmanager.exe可能没有写锁,如果用户输入新密码,我可以让passwordmanager.exe增长 为什么我认为这可能有效?几年前,我有一个MSDOS程序要求输

我编写了一个非常小的TSR程序(
passwordmanager.exe
),有两个非常小的
记录文件

实际上,我将所有文件(exe、数据)保存到用户始终传输的一个U盘上,当数据包含敏感数据时

是否有任何技术可以修改当前正在运行的
passwordmanager.exe
本身的内部资源?据我所知,exe被复制到RAM中,因此
passwordmanager.exe
可能没有写锁,如果用户输入新密码,我可以让
passwordmanager.exe
增长

为什么我认为这可能有效?几年前,我有一个MSDOS程序要求输入密码,但不幸的是,用户忘记了密码。当我将MSDOS程序的内容打印到控制台时,用户幸运地在机器代码中找到了他的密码


问题:如何将两个非常小的记录文件存储到
exe

在NTFS上,您可以使用备用文件流:

(我记得Win2K刚问世时,看到一篇杂志文章(UK PC Pro),其中展示了如何使用记事本在.Exe中存储二次流,并对任何自称安全的操作系统都会提供此功能感到惊讶,但这就是问题所在。)

查看它们的工具:


在NTFS上,您可以使用备用文件流:

(我记得Win2K刚问世时,看到一篇杂志文章(UK PC Pro),其中展示了如何使用记事本在.Exe中存储二次流,并对任何自称安全的操作系统都会提供此功能感到惊讶,但这就是问题所在。)

查看它们的工具:

是否有任何技术可以修改当前正在运行的passwordmanager.exe本身的内部资源

不,没有。当一个进程启动时,它的可执行文件以独占方式锁定,因此无法修改

是否有任何技术可以修改当前正在运行的passwordmanager.exe本身的内部资源


不,没有。当一个进程启动时,它的可执行文件以独占方式锁定,因此无法修改

在你的评论中,你写道“是的,抗病毒计划会被打乱,我不在乎” 好吧,如果你不在乎你的程序可能被阻止。如果你有USB设备的写入权限,我可以想到这样一种模式:

将您的
正在运行的.EXE
应用程序.ExeName
)复制到
补丁.EXE
(通过
复制文件
)-或从资源生成该
补丁.EXE
(防病毒软件不喜欢这样!)

running.EXE
Execute/createnewprocess
patch.EXE
,参数如
patch.EXE/update/your\u record\u parameters/pid:running\u process\u id

patch.EXE
将启动并检查
/update
;信号
正在运行.EXE
关闭;等待它关闭;补丁
正在运行.EXE
;执行
running.EXE/patch_done
;自动关机


最后,
运行.EXE
现在可以通过检查
/patch\u done
并删除
patch.EXE
来进行清理,您在评论中写道“是的,抗病毒程序会被打乱,我不在乎” 好吧,如果你不在乎你的程序可能被阻止。如果你有USB设备的写入权限,我可以想到这样一种模式:

将您的
正在运行的.EXE
应用程序.ExeName
)复制到
补丁.EXE
(通过
复制文件
)-或从资源生成该
补丁.EXE
(防病毒软件不喜欢这样!)

running.EXE
Execute/createnewprocess
patch.EXE
,参数如
patch.EXE/update/your\u record\u parameters/pid:running\u process\u id

patch.EXE
将启动并检查
/update
;信号
正在运行.EXE
关闭;等待它关闭;补丁
正在运行.EXE
;执行
running.EXE/patch_done
;自动关机


最后,
运行.EXE
现在可以通过检查
/patch\u done
和删除
patch.EXE

来进行清理。我认为将数据存储到二进制本身并不更安全。用户可能仍会注意到文件正在增长,并尽可能地将其复制到单独的文件中。你也可能会打乱一些抗病毒程序。它被加密了,没关系。是的,抗病毒程序会被打乱,我不在乎。它不是一个完整的副本,我永远不会在你建议的副本中找到答案。@PeterRader你不能写入正在运行的可执行文件。这就是其他问题和答案应该明确的地方。@Jens,这是一个不同的问题,更接近(Remy在他的回答中也谈到了运行应用程序的情况)。Peter,另外,如果你要将你的应用程序安装到类似程序文件的文件夹中,你需要在启用UAC的系统上提升你的进程,这可能会很烦人。无论如何,我不认为将数据存储到二进制文件本身更安全。用户可能仍会注意到文件正在增长,并尽可能地将其复制到单独的文件中。你也可能会打乱一些抗病毒程序。它被加密了,没关系。是的,抗病毒程序会被打乱,我不在乎。它不是一个完整的副本,我永远不会在你建议的副本中找到答案。@PeterRader你不能写入正在运行的可执行文件。这就是其他问题和答案应该明确的地方。@Jens,这是一个不同的问题,更接近(Remy在他的回答中也谈到了运行应用程序的情况)。Peter,如果你要将你的应用程序安装到类似于程序文件的文件夹中,你需要在启用UAC的系统上提升你的进程,这可能会很烦人。这不是一个好主意,它们很容易丢失,甚至微软也停止在Windows中支持AFS元数据