注册

CpuDbg x96

查看: 1112|回复: 0
收起左侧

WriteFile写入文本是ASCII还是UNICODE?

[复制链接]
发表于 2024-6-22 17:07:12 | 显示全部楼层 |阅读模式
今天看到 gayhub  上有位网友提 issue问 vm.exe 是干什么用的.
一开始我是懵的, 努力回忆了一下, 才想起来, 最初用到了7Z压缩软件.
而这个vm.exe 还有 vm.dll  就是 7Z 压缩软件的EXE和模块.
至于为什么叫 vm, 当时只是随手写的名字.
PixPin_2024-06-23_00-55-01.png

想了半天才想起来用到了VM.EXE的有帮助文档. 因为帮助文档是HTML格式的, 文件非常多,
为了整洁, 我就用7Z压缩包压缩了.
另一个地方用的就是ALT+E模块中的劫持代码使用了.

PixPin_2024-06-23_00-56-11.png

后来就试了一下这个劫持功能, 发现崩溃了...
调试发现又是多编码的问题导致的.
之前使用的是_MBCS, 后来为了在不同语言的系统上不显示乱码, 就将工程改成了UNICODE了.
改成UNICODE后,整个工程问题非常多. 也没有办法一次性解决. 只能每次遇到了,再解决.
将劫持改成UNICODE折腾了半天才改好. 但是又有新问题了.全是乱码...
正常的应该这样:

PixPin_2024-06-23_01-00-39.png

可是我保存的确是这样:

PixPin_2024-06-23_01-01-06.png

熟悉UNICODE编码的朋友应该都知道, UNICODE(小端序) BOM 是 FF FE,
我把BOM信息添加上后,确实能正常显示了.
但怪就怪在这, 我生成的所有文件都是没有手动添加UNICODE LITTLE ENDIAN BOM信息.
notepad.exe是如何知道我保存的是ASCII 还是UNICODE???
-------------------------------------------------------
2024.07.16
我突然想起来之前的7z压缩模块为什么起名为 "vm.exe" 了.
因为我压缩部分代码是我从之前的一个 "硬盘解密" 的项目移植出来的.(实际上是修改的 tc 和 dc 的源码改的)
那个 "硬盘解密" 软件有一个功能就是模拟操作系统运行 *.img 镜像系统. 而运行镜像的虚拟机用的是 qemu. 如下图:

PixPin_2024-07-16_11-02-04.png

不过现在这些都不重要了. 因为 cpudbg 从 v0.8.2 版本开始, 已经将工程资源中的 "vm.exe" 释放到本地磁盘上了. 并改回原先的名字 "7z.exe" 了.
-------------------------------------------------------
to be continue...
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注册

QQ|Archiver|手机版| CpuDbg x96

GMT, 2024-12-22 05:26 , Processed in 0.062500 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表