论坛风格切换切换到宽版
  • 37874阅读
  • 101回复

[原创/更新]TransText 2.2.264 - 字符串提取、回写以及替换工具 [复制链接]

上一主题 下一主题
离线Yonsm

发帖
57
金钱
60
威望
6
只看该作者 40 发表于: 2007-04-23
不仅仅如此,还因为这种字符串不是用什么字符(不是NULL,也不是 $ 之类的)作为结尾的,而是依靠 37 作为长度。
离线Yonsm

发帖
57
金钱
60
威望
6
只看该作者 41 发表于: 2007-04-23
已经支持了(.NET 专用——未整合以前的版本)。

但是有个问题Qian兄有没有发现:
1.37520065006600720065007300680020004200610074007400650072007900200049006E0066006F0072006D006100740069006F006E00
2.2A4F00700065006E00530065006D006100700068006F007200650020004500720072006F0072003A002000

第一个字符串,长度是 37,是个奇数,第二个字符串,2A,是个偶数。理论上这两个一类的UNICODE字符串,这个长度到底表示什么?

就是说,我现在有个问题:怎样修正汉化后的长度。如果我按以前的方法不修正只补零的话,显示不正确;补空格的话当然显示不好看。如果修正为字符个数*2,那么永远都不会出来 37 这样的长度。

不知道那个才是对的,就是说现在 提取,然后即使不修改.ttt 文件, 重新回写后,都会造成很多字符串长度相差 1 字节(如上面的字符串 2)。如果都加 1 也不行(如上面的字符串 1)。也不行,郁闷。

不过如果你不选择修改字符串长度,可以用空格来填充,肯定不会有问题,就是难看些。

附件: TransText.rar (69 K) 下载次数:133
离线

发帖
8853
金钱
135
威望
14
只看该作者 42 发表于: 2007-04-23
刚才用PEID看到upolyx字样,或是因为加壳吧。
感谢重新修正
<a href="http://teach.hanzify.org/index.php?Go=Show::422-1074355200" target="_blank"><!--coloro:red--><span style="color:red"><!--/coloro-->正大光明赚钱求存,阳谋有私继续汉化</a><br /><a href="http://bbs.hanzify.org/index.php?showtopic=20135" target="_blank">新手提问必看</a><br />Exescope只是汉化辅助工具<br /><a href="http://teach.hanzify.org" target="_blank">看教学啊看教学!</a><br />你先动手,我再帮你!<!--colorc--></span><!--/colorc--><br /><img src="http://teach.hanzify.org/Images/hhteach.gif" border="0" alt="图像" /><br />多做补丁版,少做安装版...
离线Yonsm

发帖
57
金钱
60
威望
6
只看该作者 43 发表于: 2007-04-24
QUOTE(乾 @ 2007年 04月 23日 21时 10分) [snapback]329488[/snapback]

刚才用PEID看到upolyx字样,或是因为加壳吧。
感谢重新修正



不太明白你的意思,谁加壳?
都没有啊,TransText 没有,你放的那个 .NET 的程序似乎也没有。

另外我想知道TransText这样能不能用于你贴出的软件的非标提取和回写,因为字符长度重写会造成很多变化。

离线

发帖
8853
金钱
135
威望
14
只看该作者 44 发表于: 2007-04-24
我上传那个程序检查出upolyx字样
可能要过些天才详细测试提取写入情况了
<a href="http://teach.hanzify.org/index.php?Go=Show::422-1074355200" target="_blank"><!--coloro:red--><span style="color:red"><!--/coloro-->正大光明赚钱求存,阳谋有私继续汉化</a><br /><a href="http://bbs.hanzify.org/index.php?showtopic=20135" target="_blank">新手提问必看</a><br />Exescope只是汉化辅助工具<br /><a href="http://teach.hanzify.org" target="_blank">看教学啊看教学!</a><br />你先动手,我再帮你!<!--colorc--></span><!--/colorc--><br /><img src="http://teach.hanzify.org/Images/hhteach.gif" border="0" alt="图像" /><br />多做补丁版,少做安装版...
离线曾半仙

发帖
2409
金钱
20
威望
2
只看该作者 45 发表于: 2007-04-24
那是因为某人提供的userdb.txt里面有不良的匹配规则, 导致多个合并了此数据的userdb全部被破坏了.
而那个貌似用IL可以看到是作为数组使用的
离线

发帖
8853
金钱
135
威望
14
只看该作者 46 发表于: 2007-04-27
今天做了批量回写,不错。
有几个想法:
有关超长写入:应该增加一个选项,即是否追加写入,还是覆盖写入。目前是覆盖写入,等于借用了后面的字串。我今天的写入有5个超长,但有两个后面超的较多,后面并非都是00,于是要对照原始文件复制回被覆盖的内容。建议增加追加或覆盖的选项。本例就应该使用追加写入。
关于修改字串长度:我觉得还是放弃算了——该打,前面要求实现的也是我...
本例而言:
原文是:0800000050726F6772616D,字串的真实长度是07,但软件里面长度是+1了,且中间有00间隔。当我使用修改字串长度功能时,没有修改08,而是在字串前面加了长度,且没有+1。
这里还是太复杂了,不如屏蔽掉吧。

再次感谢这个好工具。
<a href="http://teach.hanzify.org/index.php?Go=Show::422-1074355200" target="_blank"><!--coloro:red--><span style="color:red"><!--/coloro-->正大光明赚钱求存,阳谋有私继续汉化</a><br /><a href="http://bbs.hanzify.org/index.php?showtopic=20135" target="_blank">新手提问必看</a><br />Exescope只是汉化辅助工具<br /><a href="http://teach.hanzify.org" target="_blank">看教学啊看教学!</a><br />你先动手,我再帮你!<!--colorc--></span><!--/colorc--><br /><img src="http://teach.hanzify.org/Images/hhteach.gif" border="0" alt="图像" /><br />多做补丁版,少做安装版...
离线Yonsm

发帖
57
金钱
60
威望
6
只看该作者 47 发表于: 2007-04-27
QUOTE(乾 @ 2007年 04月 27日 03时 45分) [snapback]329836[/snapback]

今天做了批量回写,不错。
有几个想法:
有关超长写入:应该增加一个选项,即是否追加写入,还是覆盖写入。目前是覆盖写入,等于借用了后面的字串。我今天的写入有5个超长,但有两个后面超的较多,后面并非都是00,于是要对照原始文件复制回被覆盖的内容。建议增加追加或覆盖的选项。本例就应该使用追加写入。
关于修改字串长度:我觉得还是放弃算了——该打,前面要求实现的也是我...
本例而言:
原文是:0800000050726F6772616D,字串的真实长度是07,但软件里面长度是+1了,且中间有00间隔。当我使用修改字串长度功能时,没有修改08,而是在字串前面加了长度,且没有+1。
这里还是太复杂了,不如屏蔽掉吧。

再次感谢这个好工具。


又是 3:45!要好好休息呀……

有关超长写入:晕了,又没明白。举个例子先。
修改字串长度:明白。不行就补空格没事:)

也多谢你仔细测试啊。没问题的话,我整理一下发布一下,你看看那些地方还要改(麻烦的功能就不想做了,已经够我用的了:)。
离线

发帖
8853
金钱
135
威望
14
只看该作者 48 发表于: 2007-04-28
原版:
0007000000264779726F3A000900000081
其中264779726F3A是要汉化的英文“&Gyro:”
汉化后的中文为“陀螺效应:”
0007000000CDD3C2DDD0A7D3A63A0081
由于超长较多,吧后面的0009等字串也“覆盖”掉了,而我不能确定这个0009有没有用,于是就从原版中复制,手动修补为(当然,长度符07已手动改为0A):
000A000000CDD3C2DDD0A7D3A63A000900000081

因此,我认为当前的超长强制写入是覆盖式写入,强制覆盖后面的内容,如果后面是有足够多的00,应该不用担心,如果不是,则需要追加式的写入,就是这种了:
000A000000CDD3C2DDD0A7D3A63A000900000081
不覆盖后面原有内容,自动加长。

当然,我这个的例子,目标对象是不检查文件总长度,所以怎么追加都无所谓。如果是PE或其他文件,还是需要追加后手动删除足够的空字节维持文件长度。但我这里讨论的关键是:
“不检查超长字符串”应该有两个选项:“覆盖写入”和“追加写入”。
当然,如果可行的话,当选择“追加写入”后,建议在全部回写完毕时提示“本次回写总共追加了0A字节”这样的文字。
<a href="http://teach.hanzify.org/index.php?Go=Show::422-1074355200" target="_blank"><!--coloro:red--><span style="color:red"><!--/coloro-->正大光明赚钱求存,阳谋有私继续汉化</a><br /><a href="http://bbs.hanzify.org/index.php?showtopic=20135" target="_blank">新手提问必看</a><br />Exescope只是汉化辅助工具<br /><a href="http://teach.hanzify.org" target="_blank">看教学啊看教学!</a><br />你先动手,我再帮你!<!--colorc--></span><!--/colorc--><br /><img src="http://teach.hanzify.org/Images/hhteach.gif" border="0" alt="图像" /><br />多做补丁版,少做安装版...
离线

发帖
8853
金钱
135
威望
14
只看该作者 49 发表于: 2007-04-28
这几个文件都提示“◇ 未找到合适的字符串:...”
gsmission.spb需要提取MISSIONS,gspilotrecord.spb需要提取PILOT RECORDS,dlgassignbook.spb需要提取SETTINGS - CONTROLS、CALIBRATION、BUTTONS / KEYS、CONTROL AXES、FORCES等字串
[attachmentid=23157]

gssettings.spb提取不完整,如:
0x00000B22,0032=Low|Low|Medium Low|Medium High|H
0x00000BFA,0067=lick to choose sound settings for engines, air traffic control, coc
0x00000CC0,0032=to modify keyboard and joystick
0x00000D59,0067=lick to adjust flight model, crash detection, and other realism set

对了,同样的文件,我使用4月20号发布的版本做相同的提取,不存在上述问题,上述问题是最新版本才会出现。

如果是因为后面增加字符串长度修改所导致,那么不妨放弃吧。原来的功能就很好了,呵呵
附件: 070415_old.rar (33 K) 下载次数:16
<a href="http://teach.hanzify.org/index.php?Go=Show::422-1074355200" target="_blank"><!--coloro:red--><span style="color:red"><!--/coloro-->正大光明赚钱求存,阳谋有私继续汉化</a><br /><a href="http://bbs.hanzify.org/index.php?showtopic=20135" target="_blank">新手提问必看</a><br />Exescope只是汉化辅助工具<br /><a href="http://teach.hanzify.org" target="_blank">看教学啊看教学!</a><br />你先动手,我再帮你!<!--colorc--></span><!--/colorc--><br /><img src="http://teach.hanzify.org/Images/hhteach.gif" border="0" alt="图像" /><br />多做补丁版,少做安装版...