您的位置:首页 > 其它

软件汉化之对壳的解释

2007-08-01 09:09 155 查看
软件汉化步骤:
1.察壳
2.脱壳
3.开始汉化
使用工具:
1.察壳-->peid v0.94绿色版
2.脱壳-->自动脱壳:aspack 2.12的脱壳
     手动脱壳:ollydbg 绿色版
3.汉化-->ResScope 绿色版
     GetVBRes v0.51破解版--->针对VB编写的程序进行汉化
     Language Localizator 6--->针对VC/delphi编写的程序进行汉化
4.修改其他资源。
    --->提取图标。
   
备注:
*什么是壳:壳类似于乌龟壳。用来保护乌龟肉体,如果我们要吃龟肉,就必须要把乌龟壳先脱掉,否则无法看到或
      得到乌龟肉体。  区别不同的,乌龟壳直接用硬东西砸就行,软件壳要通过动态跟踪工具ollydbg等工具
      进行手动跟踪。把壳的代码和软件肉体的代码分离,去掉壳的代码,剩下肉体代码。
*加壳工具:aspack 2.12 此软件为压缩壳工具。 既通过这个软件压缩过的应用程序会变小,
        原理是把程序中的0空间的字节
        
压缩壳原理:
软件的结构如下:
--软件头--->假如执行入口时4000偏移地址,在头部记录软件代码区的起始地址--->4200地址。 和程序结束地址4800。
。。。。。中间有无数0代码相隔
--软件内容(软件代码区)--->假如这部分代码的开始是42aa地址,则42aa位eop既程序入口地址
。。。。。中间有无数0代码相隔
--软件尾--->假如这部分代码是4800地址
那么原本这个软件大小是800H。

加壳后(压缩壳):地址42aa的内容会被改变,编成一段壳代码,壳代码会把程序中的0减少
(假如程序中有100个0则经过加壳后程序里就剩下50个零) 。 0减少了程序字节就变少了。体积减少了。但原先的程序
入口地址也会被改变,假如改变到了4310处,但此信息将在程序的壳内记录,并不在文件头部记录。
另外加壳程序还要重新调整软件头信息。既软件结尾出为4750偏移。
整个软件大小也就变为了750H 了。

脱壳过程就是逆向工程。 找到程序的真正入口地址。然后把真正入口地址以后的代码抓出来,重新调整文件大小和程序
入口地址。既还原回未被加壳前的状态。

为什么加壳后的程序不能被资源修改软件进行资源修改。
未被加壳的程序中, 资源(字符串/图标等信息)是记录在正常的文件偏移地址中,加壳后则因为代码地址全部被壳程序改变。
所以使用资源修改软件之后,查到的资源位置全部被改变,故无法修改资源。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: