注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

群青学院·群X会

CROSS+CHANNEL 汉化信息的发布站!(crosschannel.cn)

 
 
 

日志

 
 

CROSS?CHANNEL复刻版汉化全教程 4/10 文件下断失败原因分析及解决方案  

2013-02-09 11:00:23|  分类: 本作汉化教程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

前面的文章多少有些暗示本文,确实,准备调试加密算法的时候却发现文件没法下断,无计可施,期末考试又快到了,只能请wiki908队友通过密码学知识先行分析一下,成果放在下一篇。之前在澄空上也发了咨询帖,感谢热情的“损疾”前辈指教,原来只是一个关于“异常”的小问题,只要在提示异常的时候按Shift+F7/F8/F9继续调试或者将最近的异常加入忽略列表就行了。不过在咨询前我已经一步一步找到了大概原因,下面就分享一下我是如何找到的错误原因的吧。

    我们调试解密算法首先肯定要在文件相关的API下断点,然后单步走到加密处,于是我就下了如下图的几个断点:

CROSS?CHANNEL复刻版汉化全教程 4/10 文件下断失败原因分析及解决方案 - crosschannel - CROSS?CHANNEL爱好者汉化联盟

断下来之后,我就F8和F7单步跟踪,结果跟到如下图所示的情况——RaiseException收集异常:

CROSS?CHANNEL复刻版汉化全教程 4/10 文件下断失败原因分析及解决方案 - crosschannel - CROSS?CHANNEL爱好者汉化联盟

接着运行就是Win7常见的“程序已经停止运行”,不放图了,很别扭的界面,想了半天,在API列表里面翻弄着,突然看到了GetLastError,觉得可以试试跟踪这个函数,因为这个函数的参数在OD里面是能看到宏定义的值的,于是在所有的GetLastError上都下断点了,如下图:

CROSS?CHANNEL复刻版汉化全教程 4/10 文件下断失败原因分析及解决方案 - crosschannel - CROSS?CHANNEL爱好者汉化联盟

首先让程序停在第一个CreateFileA,如下图:

CROSS?CHANNEL复刻版汉化全教程 4/10 文件下断失败原因分析及解决方案 - crosschannel - CROSS?CHANNEL爱好者汉化联盟

然后我们单步跟踪,看到右下角堆栈窗口显示打开的是CHIP+.ARC,如下图。感到很奇怪啊,游戏文件夹里只有CHIP.ARC,怎么多了一个加号呢,本来没有引起注意,因为很多面向对象的语言字符串都是很执行加法连接操作的,所以就不敏感了。

CROSS?CHANNEL复刻版汉化全教程 4/10 文件下断失败原因分析及解决方案 - crosschannel - CROSS?CHANNEL爱好者汉化联盟 

于是单步走,紧跟着的一个跳转没有实现,如下图:

CROSS?CHANNEL复刻版汉化全教程 4/10 文件下断失败原因分析及解决方案 - crosschannel - CROSS?CHANNEL爱好者汉化联盟

然后跳到了老远处,是GetLastError,往下走一点点,看到EAX=ERROR_FILE_NOT_FOUND,如下图:

CROSS?CHANNEL复刻版汉化全教程 4/10 文件下断失败原因分析及解决方案 - crosschannel - CROSS?CHANNEL爱好者汉化联盟

于是我就觉得前面那个CHIP+.ARC有蹊跷,索性把游戏文件夹下的CHIP.ARC文件名改成了CHIP+.ARC,于是就成功了,CreateFileA下面的跳转就实现了,如下图:

CROSS?CHANNEL复刻版汉化全教程 4/10 文件下断失败原因分析及解决方案 - crosschannel - CROSS?CHANNEL爱好者汉化联盟

这当然是有原因的,游戏首先判断文件夹下是否有CHIP+.ARC,没有的话就找CHIP.ARC,但是没有成功打开文件夹会记录异常的,所以在OD里面没有选择忽略异常系统就会让程序崩溃, 用IDA看一下游戏判断文件的顺序:

CROSS?CHANNEL复刻版汉化全教程 4/10 文件下断失败原因分析及解决方案 - crosschannel - CROSS?CHANNEL爱好者汉化联盟

RIO+.ARC没有找到之后JNZ是跳到读取RIO.ARC的程序段,个人认为RIO+.ARC是程序员调试用的接口,不过这个问题总算是安全解决了。

小提示:汉化包是否可以就用添加+的方式放在游戏目录呢?(答案是不建议,这样日文游戏就没法运行了,拖出去……)

·MewX

  评论这张
 
阅读(1238)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018