当前位置:C++技术网 > 精选软件 > 如何汉化修改一个软件含替换程序的图标

如何汉化修改一个软件含替换程序的图标

更新时间:2016-07-15 23:32:40浏览次数:1+次

    之前在文章《手把手教你替换一个软件程序界面的文字,暴力修改软件界面文字》以最原始的形式修改了软件界面的文字,给大家展示了软件修改的原理。不过,我们不会止步于此。
    我们用过很多汉化软件,如果都通过以上的方法汉化,绝对会吐血。不过替换软件界面的文章给我们一个原理的讲解分析,就够了。而实际的汉化过程中,我们有了基础的理论,会手动的去修改软件的文字,现在借助工具可以大大加速汉化的速度,降低工程量。
    本技术用于展示汉化修改软件的技巧,在实际的应用中,程序员都有必要了解,而不是专门的汉化工作者才需要知道的。假如我们生成了程序,又没有条件去编译,或者为了修改一个字编译整个项目代价实在太大了。所以借助exe软件文件修改工具就可以轻松解决问题。
    甚至,我们在需要准备多套语言版本的软件时,都不用以编译的形式提供,而只需要对exe进行修改即可。当然,最稳定的方式还是编译生成,但是最快最方便的方式还是直接修改exe。对exe文件直接修改得到的汉化版可能会潜在问题,因为可能操作了之后,破坏了一些数据区,甚至可能会破坏某部分的代码,导致在运行的时候程序执行某个功能或者加载某个数据的时候,发现数据并不是原本的样子,从而崩溃。一些软件可能会使用防修改手段,当检测到一些资源被修改之后,终止程序的运行。对于数据的格式之类的,会做一个私密的规定,表面上看不出来,但是一改数据,就破坏了原有的结构,从而被软件检测出来。一般专业的软件可能会做防修改防破解措施,当然不限于这一点。这里只是简单的说一下。
    如果是自己要修改软件,有条件尽量编译来修改,没有条件或者编译修改代价太大的时候,才使用直接修改exe文件的方法修改软件。请修改前备份exe文件,以免exe被破坏无法使用。

    我们先来演示一下汉化软件是怎么玩的。汉化实际上就是直接修改exe,将软件中出现的英文或者其他语言替换为中文,方便国人使用。汉化并不是破解,你可以汉化,帮助用户使用,但是请不要恶意破坏软件甚至篡改软件版权标志等,这是基本的从业道德。

    我们这里演示被汉化的软件是WinObj软件,软件下载介绍请访问《微软WinObj软件官方原版下载和winobj软件介绍》。英文界面如下:

英文版的WinObj界面

【英文版的WinObj界面】
    WinObj是一款查看Windows中各种对象的软件,可以帮助我们了解Windows。但是因为是英文版,可能会给英语不好的同学带来距离感。我们这里只是举例操作一个软件而已,你可以汉化自己常用的英文版软件,并不需要专门的汉化工具,甚至有些汉化工具做的并不好。下面来一起体验一下汉化的过程吧。
    我们先下载一款exe分析工具软件Resource Hacker。下载地址见:点此前去下载exe分析工具软件Resource Hacker

    就和记事本打开txt文件一样,用Resource Hacker打开一个需要汉化的exe程序,我们这里就是Winobj.exe了。Resource Hacker支持修改exe、dll、ocx、cpl、scr等Win32PE文件。

    打开Resource Hacker的菜单:【文件】-【打开】-选择exe文件,打开后界面如下:

Resource Hacker打开exe的界面

【Resource Hacker打开exe的界面】

    可以看到Winobj.exe文件被解析出来了,包含了菜单、位图、对话框、字符串、加速器(快捷键)、版本信息等等。显示的内容会因不同的exe文件而有差异,并不是所有的exe都有这些内容,有的exe只有部分,有的可能不止这些。这里展示的和VS中的RC资源编译器里展示的资源差不多,所以看上去很眼熟哦。

    我们要汉化,自然就是找到exe文件中所有的字符相关的东西,如果要修改图标,自然就是找图标相关的东西。我们可以自由展开浏览这些信息,发现有字符的可以修改。这个软件就是一个Exe文件编辑器,所以汉化和修改软件其实就和编译word文档一样方便简单。

    我们先展开菜单,然后选中“菜单”下的"WINOBJMENU"子节点,选中"1033"节点,在右侧可以看到此菜单的资源。如果你会是使用VS编程,修改其实就和修改RC文件一样简单了。如果你不会,也没有关系,你对照右下角显示的菜单对话框和右侧的菜单资源描述来修改即可。如下图所示:

修改Winobj.exe的英文菜单,改为中文菜单

【修改Winobj.exe的英文菜单,改为中文菜单】

    我们可以从右下角提示的对话框看到有三个主菜单项,我们对照到右边的菜单资源描述文字中,然后修改对应的单词即可。修改后的菜单资源如下图所示:

修改后的菜单资源

【修改后的菜单资源】

    我们对应修改了英文单词,然后在括号中用&符号紧接着一个字符,是用于alt键快速启用菜单的,当你在软件主界面的时候,按住ALT+&后面跟着的字母就可以快速选择这个菜单项了。修改了菜单资源后,顶部的【编译脚本】按钮亮了,当你将右下角的菜单对话框关闭后,上面的【显示菜单】按钮可以再次将菜单对话框显示出来,可以可视化对照操作。编辑好后,点击【编译脚本】,然后会弹出编译好后菜单的样子,如下图所示:

汉化后的winobj.exe的菜单预览效果

【汉化后的winobj.exe的菜单预览效果】

    如果想让修改永久生效,请点击Resource Hacker软件的菜单【文件】-【保存】即可。这样我们就得到了一个新的winobj.exe程序文件,而且就是我们汉化的软件。我们可以在打开的winobj.exe的目录下看到两个exe文件,如下图所示:

带有original字样的是原始文件,另一个是汉化版的exe文件

【带有original字样的是原始文件,另一个是汉化版的exe文件】

    我们双击汉化版的软件,看到的效果如下所示:

winObj.exe文件菜单被成功汉化了

【winObj.exe文件菜单被成功汉化了】

    那么其他部分的,如对话框,版本等都是这个套路来修改。记得,修改了字符后,一定要编译脚本,然后保存一下。那么替换图标,也是很简单的。我们选择其中一个图标资源,在右侧会显示一个图标,如下图所示:

选择一个图标资源,预览图标

【选择一个图标资源,预览图标】

    然后选择菜单【操作】,可以保存这个图标,还可以自己选择一个ico文件来替换其中的图标。最后记得保存即可。如下图所示:

保存exe的图标资源和替换exe的图标

【保存exe的图标资源和替换exe的图标】

    以上就是汉化的过程和提取exe图标以及替换exe中的图标的过程了。我这里只是提供一个参考,更多的精彩,等着你去探索哦。