我写了一个非常小的TSR程序(passwordmanager.exe
)并且有两个非常小的files of records
。
实际上我将所有文件(exe,数据)保存到用户总是传输的一个USB-Stick上,而数据包含合理的数据。
是否有任何技术可以修改当前正在运行的passwordmanager.exe
本身的内部资源?据我所知,exe被复制到RAM,因此passwordmanager.exe
可能没有写锁定,如果用户输入新的密码,我可以让passwordmanager.exe
增长。
为什么我认为这可行?多年前我有一个MSDOS程序要求输入密码,但不幸的是用户忘记了密码。当我将MSDOS程序的内容打印到控制台时,用户很幸运地在机器代码中找到了他的密码!
问题:如何将两个非常小的记录文件存储到exe
?
答案 0 :(得分:3)
在您的评论中,您写了"是的,抗病毒程序会感到不安,我不在乎" 好吧,如果你不在乎你的程序可能被阻止。 和你对该USB设备有写权限,我可以想到这样的模式:
将您的running.EXE
(Application.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中存储辅助流,并且惊讶于任何具有安全性的操作系统都会提供这个设施,但你去。)
查看它们的工具:
答案 2 :(得分:0)
是否有任何技术可以修改当前正在运行的passwordmanager.exe本身的内部资源?
不,没有。当进程启动时,其可执行文件将被独占锁定,因此无法修改。