吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2329|回复: 4
收起左侧

[其他原创] 【原创源码】【VB6】文字转unicode或ascii

[复制链接]
马云爱逛京东 发表于 2021-8-6 18:16
我今天在汉化一个C++的软件时,遇到了点编码的问题。
先说经过吧。我在ODBG调试器里面载入文件,并搜索到英文字符串,然后追过去:

1.png
之后就是找到这个字符串存放的地址。考虑到这个API调用的是GetSaveFileNameW,所以查看它的Unicode字符串。
2.png
接下来我就犯了难了,平时接触的程序里面通常是Ascii的调用,直接在二进制编辑窗口的Unicode文本框输入中文,结果不行。
3.png
4.png
只能通过修改十六进制数据实现。
于是我用网上的文本转Unicode工具,把文字转成了Unicode再填入,结果还是不行。
经过我一个多小时的研究发现,程序的Unicode二进制数据是高低位互换的。然而,网上的文本转Unicode工具转换出来的结果是高位在先,低位在后。
所以只能动手写文本到Unicode的转换程序了。
界面长这样:
5.png
用起来也相对容易,只需要把需要的文本放第一行,就会生成高低位颠倒的Unicode码。
例如,我在之前找到的字符串为“Animated PNG 0utput”,翻译成中文就是“动画化PNG输出”。
把这个输入到第一行,然后就能看到转换后的结果。
6.png
这时候单击“拷贝Unicode”,再在ODBG的十六进制编辑窗口粘贴一下,就能看到效果。
7.png
很明显,这里改过来了。之后偷梁换柱就可以。

接下来是代码部分。
其实,本工程的代码并不复杂,利用好ASC和ASCW函数就可以分对文本转换成Ascii和Unicode了。
重点还是C++程序里面的数据的放置方式,经过我的摸索,可以得到这个结论:
Unicode字符串的每一个字符高低位颠倒;Ascii字符串的每一个字符不用颠倒高低位。
因此,用本工程的代码生成出来的程序,其计算出来的Ascii码是正确的。

最后是代码下载:
文字转Unicode或ASCII.7z (1.62 KB, 下载次数: 75)
(此附件仅包含程序源码,不提供成品文件,需要者请自行编译)

免费评分

参与人数 2吾爱币 +6 热心值 +1 收起 理由
我是一个外星人 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

苏紫方璇 发表于 2021-8-6 18:32
od那个窗口输入中文可以选择,在记事本里输入,然后复制上去
xiawan 发表于 2021-8-6 19:03
 楼主| 马云爱逛京东 发表于 2021-8-6 19:52
苏紫方璇 发表于 2021-8-6 18:32
od那个窗口输入中文可以选择,在记事本里输入,然后复制上去

我试过了,只有ascii的可以这么做,unicode的是乱码

点评

有可能是我装的od或者某些插件给修复了,我这里可以复制  详情 回复 发表于 2021-8-6 22:20
苏紫方璇 发表于 2021-8-6 22:20
马云爱逛京东 发表于 2021-8-6 19:52
我试过了,只有ascii的可以这么做,unicode的是乱码

有可能是我装的od或者某些插件给修复了,我这里可以复制
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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