今天看到 gayhub 上有位网友提 issue问 vm.exe 是干什么用的.
一开始我是懵的, 努力回忆了一下, 才想起来, 最初用到了7Z压缩软件.
而这个vm.exe 还有 vm.dll 就是 7Z 压缩软件的EXE和模块.
至于为什么叫 vm, 当时只是随手写的名字.
想了半天才想起来用到了VM.EXE的有帮助文档. 因为帮助文档是HTML格式的, 文件非常多,
为了整洁, 我就用7Z压缩包压缩了.
另一个地方用的就是ALT+E模块中的劫持代码使用了.
后来就试了一下这个劫持功能, 发现崩溃了...
调试发现又是多编码的问题导致的.
之前使用的是_MBCS, 后来为了在不同语言的系统上不显示乱码, 就将工程改成了UNICODE了.
改成UNICODE后,整个工程问题非常多. 也没有办法一次性解决. 只能每次遇到了,再解决.
将劫持改成UNICODE折腾了半天才改好. 但是又有新问题了.全是乱码...
正常的应该这样:
可是我保存的确是这样:
熟悉UNICODE编码的朋友应该都知道, UNICODE(小端序) BOM 是 FF FE,
我把BOM信息添加上后,确实能正常显示了.
但怪就怪在这, 我生成的所有文件都是没有手动添加UNICODE LITTLE ENDIAN BOM信息.
notepad.exe是如何知道我保存的是ASCII 还是UNICODE???
-------------------------------------------------------
2024.07.16
我突然想起来之前的7z压缩模块为什么起名为 "vm.exe" 了.
因为我压缩部分代码是我从之前的一个 "硬盘解密" 的项目移植出来的.(实际上是修改的 tc 和 dc 的源码改的)
那个 "硬盘解密" 软件有一个功能就是模拟操作系统运行 *.img 镜像系统. 而运行镜像的虚拟机用的是 qemu. 如下图:
不过现在这些都不重要了. 因为 cpudbg 从 v0.8.2 版本开始, 已经将工程资源中的 "vm.exe" 释放到本地磁盘上了. 并改回原先的名字 "7z.exe" 了.
-------------------------------------------------------
to be continue...
|