当前位置:内核开发->逆向破解 ->手把手教你替换一个软件程序界面的文字,暴力修改软件界面文字

原创版权标志手把手教你替换一个软件程序界面的文字,暴力修改软件界面文字

作者:codeGod  发表时间:2015-11-6  阅读:
[摘要] 如果你是程序员,对于发布的程序,发现界面上出现了错别字,而你又没法用编程工具重新编译,或者根本现在就没有源代码,怎么修正错别字呢?如果你不是程序员,但是感觉软件上面的提示文字很别扭,或者想个性一把,要怎么样才能修改软件界面上的文字呢?

技术适用场景:

    如果你是程序员,对于发布的程序,发现界面上出现了错别字,而你又没法用编程工具重新编译,或者根本现在就没有源代码,怎么修正错别字呢?

    如果你不是程序员,但是感觉软件上面的提示文字很别扭,或者想个性一把,要怎么样才能修改软件界面上的文字呢?

    技术是一把双刃剑,用得好可以方便工作,用得不好可能造成危害,我们仅提供技术交流。

原理分析:

    软件也是一个文件,所有数据包括软件界面的文字都是存储在文件中的,只要我们找到对应的文字存储的字节位置,再修改成想要的文字,然后再将数据保存,即可实现修改。

效果预览:

被修改后的软件界面


原始软件界面


详细步骤:

1.准备要修改的exe文件和WinHex软件
    我们要修改的exe最好是单独的exe,这样我们看到的软件程序界面的文字都在exe文件中。为了达到最好的效果,请下载本文指定的文件来操作。先熟悉流程,然后自己再去玩其他的exe文件哦。
    我们演示的被修改的exe文件:文件名批处理器,请先下载:点此下载文件名批处理器软件
    要操作文件数据的软件:WinHex,请先下载:点此下载WinHex软件
    这两个文件都是单个的exe,使用方便,双击即可运行。建议从上面指定的位置下载。

2.打开软件,确定要修改哪些文字
    然后你打开文件名批处理器软件,界面如上面的原始软件界面。
    我们确定要修改的文字为:批量插入。然后关闭文件名批处理器软件。我们接下来确定要替换的文字为:我要搞基
    确定原始的软件被替换的文字,必须是软件存在的,而且替换文字长度不能比被替换文字长,否则程序就可能被破坏了,可能导致程序无法正常运行哦。

3.查询出这些文字的编码
    因为中文在exe文件中是以编码存储的。所以,我们要先来查询【批量插入】和【我要搞基】这几个字的十六进制编码,后面再WinHex软件中将用来编辑exe文件。
    查询的地址:点此去查询文字编码
    查询的界面如下:
ASCII字符编码查询,Unicode编码查询

    我们依次输入几个字,然后点击“>>>>”按钮,然后右边的编码就显示出编码了。

    查询的十六进制结果如下:

批:0x6279
量:0x91cf
插:0x63d2
入:0x5165

我:0x6211
要:0x8981
搞:0x641e
基:0x57fa

4.组合出正确的存储顺序的编码
    得到了每一个字的编码,我们来组合一下完整的十六进制序列。我们不看0x,每一个编码只剩下4个数字,后面两位放在前面,前面两位放在后面,那么批量插入的完整的十六进制序列为:7962cf91d2636551  ,我要搞基的完整的十六进制序列为:116281891e64fa57

5.用WinHex打开exe文件
    我们双击从上面地址下载来的WinHex文件,启动程序。像word一样打开一个文件,选择我们下载的文件名批处理器文件。打开后,看到的就是exe文件的十六进制序列数据。
    如下图所示:
   
6.使用十六进制查找得到的十六进制串
    点击WinHex工具栏的“十六进制序列查找”按钮查找。工具栏按钮如下图所示:
   
    弹出的查找十六进制对话框如下所示:
   
    我已经输入好了批量插入的十六进制序列,然后确定。然后定位到了这个十六进制序列的位置,如下图所示:
   
7.替换原始的十六进制串
    然后我们从序列开头,从头到尾输入我要搞基的十六进制序列116281891e64fa57,这样就替换掉了原始的批量插入文字。修改后如下图所示:
   
8.保存文件
    上面的修改只是在内存中,我们需要保存文件,将修改的数据永久写入exe文件中保存。这样我们的exe以后都只会显示我们修改的文字了。
    我启动被修改的exe文件看看,就已经是我们修改后的文字了。
文章来源:C++技术网原创文章版权为网站和作者共同所有,会员文章禁止转载。非会员文章转载做好本文超链接即表示授权转载。通过文章下面的分享按钮可以自由分享所有文章。


  • 群魔乱舞    2015/11/9 10:22:15回复
    NB

返回顶部

在线提问
问题标题:
问题描述:(简陋的描述会导致问题被最后回答、没有针对性回答甚至无法解答。请确保问题描述的足够清楚。)