最近在公司办公环境下制作一个小脚本,使用Spire操作Excel,已知司内自带文件加密,在VS调试环境下自加密文件可进行读取数据等操作,而bin下.exe程序则受到自加密限制,为何VS调试不受影响;有无通过代码的解决办法。
图片左侧为调试打开界面(文件图标右下角无锁),右侧为bin下.exe打开界面(文件图标右下角有锁)
.exe运行下捕获的错误信息,可知司内加密方式为更改文件后缀
没什么好奇怪的,具体取决于软件解密的层级问题。
所以这种 所谓 安全保护 根本没法保护,以前帮朋友处理过这种文件(内部有加密,但电脑可以上网【就是说其他硬件接口不可用,比如usb】)无法考走的问题。—— 就因为它的解密是在winApi.OpenRead 之前(而所有的应用软件都是基于这个api读取buffer的),因此我“破解”的方式比较简单,用winApi把文件打开,读取流,然后发送到服务器上就可以了。
同样你可以想想这个安全软件原理和流程,比如上述方式他是可能用的,可以是加进程白名单。
使用FileSream读取文件流后使用Spire的LoadFromStream进行读取的抓取信息
同一文件在VS调试和.exe程序下读取的文件流长(FileStream.Length)
对文件流处理后有可能文件读取成功嘛?加入进程白名单尝试失败了
启动程序的用户不同?
是同一用户
是不是配置了Debug
模式启用加密?
使用的是VS2022的初始配置
不知道贵公司用的哪种加密软件,如果是针对软件的加解密,就比较麻烦了,比如加密系统把VS进程加入了免密系统,但是你自己做的程序并没有加入,就会这样