Delphi一体化.exe存储

时间:2014-08-21 09:27:06

标签: windows delphi

我写了一个非常小的TSR程序(passwordmanager.exe)并且有两个非常小的files of records

实际上我将所有文件(exe,数据)保存到用户总是传输的一个USB-Stick上,而数据包含合理的数据。

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

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

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

3 个答案:

答案 0 :(得分:3)

在您的评论中,您写了"是的,抗病毒程序会感到不安,我不在乎" 好吧,如果你不在乎你的程序可能被阻止。 你对该USB设备有写权限,我可以想到这样的模式:

将您的running.EXEApplication.ExeName)复制到patch.EXE(通过CopyFile) - 或者从资源中生成patch.EXE(防病毒不会喜欢这个!)。

running.EXE使用参数例如执行/创建新流程patch.EXE patch.EXE /update /your_record_parameters /pid:running_process_id

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

最后,通过查看running.EXE和删除/patch_done

patch.EXE可以立即清理

答案 1 :(得分:1)

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

http://support.microsoft.com/kb/105763

(我记得Win2K第一次出现的时候看到一篇杂志文章(英国PC专业版),它展示了如何使用记事本在.Exe中存储辅助流,并且惊讶于任何具有安全性的操作系统都会提供这个设施,但你去。)

查看它们的工具:

http://www.nirsoft.net/utils/alternate_data_streams.html

答案 2 :(得分:0)

  

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

不,没有。当进程启动时,其可执行文件将被独占锁定,因此无法修改。