在我真正执行 .exe 文件之前,我试图找出它在我的 Windows 计算机上到底改变了什么,例如,查看将执行的注册表更改、哪些文件将被更改、哪些新文件将被添加等等。
这可能吗?
答案1
在运行程序之前,如何知道 Windows 计算机上会发生什么变化?
我想查看将要执行的注册表更改、将要更改哪些文件、将要添加哪些新文件等
那是不可能的:
如果您分析了 .exe 程序并知道它可以进行哪些系统调用,您就必须给它所有可能的输入来预测运行时会发生什么。
可能的输入数量是无限的(考虑在文本文件中输入随机字符的简单情况,就有数百万种可能的组合)。
在“要添加哪些新文件”的特殊情况下,无法预先知道您要提供给程序以保存文件的文件名。
你能做的最好的事情就是运行该程序(可能在沙箱中)并监视变化当它们发生时。
这种监测有很多种可能。最有用的可能是进程监控因为它提供了大量可以记录的信息。
从尼尔软件:
FolderChangesView 是一个简单的工具,它监视您选择的文件夹或磁盘驱动器,并列出在监视文件夹期间被修改、创建或删除的每个文件名。
只要您对所选文件夹具有读取权限,您就可以将 FolderChangesView 与任何本地磁盘驱动器或远程网络共享一起使用。
ProcessActivityView 创建所选进程尝试访问的所有文件和文件夹的摘要。对于进程访问的每个文件,都会显示以下信息:打开和关闭文件的次数、读/写调用次数、读/写字节总数、上次打开文件调用的 dll 等等...
从系统内部:
进程监视器是 Windows 的一个高级监视工具,可显示实时文件系统、注册表和进程/线程活动。
它结合了两个传统 Sysinternals 实用程序 Filemon 和 Regmon 的功能,并增加了大量增强功能,包括丰富且非破坏性的过滤、全面的事件属性(例如会话 ID 和用户名)、可靠的进程信息、完整的线程堆栈以及对每个操作的集成符号支持、同时记录到文件等等。
Process Explorer 显示有关进程已打开或加载的句柄和 DLL 的信息。
Process Explorer 显示由两个子窗口组成。顶部窗口始终显示当前活动进程的列表,包括其所属帐户的名称,而底部窗口中显示的信息取决于 Process Explorer 所处的模式:如果它处于句柄模式,您将看到顶部窗口中所选进程已打开的句柄;如果 Process Explorer 处于 DLL 模式,您将看到进程已加载的 DLL 和内存映射文件。
免责声明
答案2
我找到了一种可行的方法。
- 设置虚拟 Windows 机。
- 在其上安装“进程监视器”。
- 执行 exe
- 从 exe 中查找进程的 PID
- 在“进程监视器”中筛选该进程的 PID
- 实时查看更改
这不是最好的解决方案,但是是一个开始。