win平台strace工具ProcessMonitor

打游戏找不着存档文件引发的纠结

众所周知unity游戏本地存档位置一般在

游戏安装目录\游戏名_Data
C:\Users\用户名\AppData\Local\公司名\游戏名
C:\Users\用户名\AppData\LocalLow\公司名\游戏名
C:\Users\用户名\AppData\Roaming\公司名\游戏名

但是本宅最近玩的一款unity游戏貌似做了特殊处理,翻遍了以上目录死活没找到存档位置。
呵呵,有意思了。
你存档要读写文件吧,读写文件要使用句柄吧,我查询游戏进程的句柄不就能找到你把存档藏在哪了么?
But, unfortunately, 通过查看句柄我并没有看到存档文件的影子。
当时推测可能是写入文件后马上关闭句柄,这种情况通过查看句柄不一定捕捉得到。
那还有什么办法呢?
对了,读写文件肯定要通过系统调用,我做个strace不就行了?
嗯,win平台上有没有类似的strace工具呢?

Process Monitor

对比了诸多工具,我最终选择了这个,小巧。
工具下载:
链接:https://pan.baidu.com/s/1fi34vZ3mSIxLRFmxWtiG3Q
提取码:zfid
工具主界面:

主界面.png

在捕获的结果中可以看到进程名、操作类型(图中是读文件)、文件路径,甚至还能看到操作文件的偏移量。
打开过滤对话框(图中的蓝绿色漏斗按钮)可以发现,能捕获的系统调用有很多种,除了文件读写,还有注册表读写、TCP UDP连接等等,功能十分强大!
OK,有了这款神器之后我最终找到了存档位置。
他并没有采用文件存档,而是把存档放在注册表里,并且注册表项没有公司、游戏相关的名字(老兄你至于么)...
通过修改存档实现了我的需求,问题解决。

你可能感兴趣的:(win平台strace工具ProcessMonitor)