ここから本文です

0CC-FamiTracker ver0.3.11r1を日本語化しようとしています。

alexandria_miikoさん

2015/9/809:52:24

0CC-FamiTracker ver0.3.11r1を日本語化しようとしています。

http://hertzdevil.info/programs/
OSはWindows7 Professional 64bitです。

基本的にはResource Hackerでやっていますが、それでいじれないような範囲はバイナリエディタ(FavBinEdit)で編集しています。

バイナリエディタで編集している部分で、どうしても翻訳前の文より翻訳後の文の方が長くなってしまう所があるのですが、以下のページの後半部に従って、空いているバイトぶんを詰めることで解決しようとしています。
http://nekokabu.s7.xrea.com/blog/2008/06/20080601132819.html
しかしこれが上手くいかず、困っています。

このサイトの通りにやるなら、正しい手順は以下のようになるはずですよね(数値や文字列は実在のものです)。

【0x001C4FF0の位置から始まるMulti-frame selectionという文字列を、 0x001C4FD8まで詰めたい!】
手順1. 現在の位置の値0x001C4FF0に0x00400000を足して、0x005C4FF0とし、それをひっくり返して0xF04F5C00とする。
手順2. 詰め先の位置の値0x001C4FD8に0x00400000を足して、0x005C4FD8とし、それをひっくり返して0xD84F5C00とする。
手順3. 0xF04F5C00を16進数データとして検索し、一致箇所を全て0xD84F5C00に置換する。
手順4. Multi-frame selectionという文字列を0x001C4FD8の位置まで詰め、その分後ろを0x00で埋める。
【完了!】

で、何が上手くいかないのかというと、手順3で検索した0xF04F5C00に一致する箇所がどこにも見当たらないんです。これでは置換も何もありません……。
手順2の0x00400000を足す行為について、サイトでは一応「大抵この値でいけますがたまにこの値が使えないこともあるので注意です」と解説してあるのですが、今回がまさにこのケースなのでしょうか。
だとしたら、足すものを何か他の値にすれば解決するのでしょうか。
それはどうやって調べればいいのか、そもそもこの手が通用しないケースなのか、何なのか……。もう私にはさっぱりわかりません。
「日本語パッチ バイナリ ずらす」みたいな単語で自分なりに検索もしてみましたが、この手の裏技(?)について言及しているサイトは他に見つけられず、もームリと判断しました。
ちなみに手順1~3を全部飛ばして手順4だけやってみましたがもちろんダメでした。

何をどうすればこのデータ位置詰めが成功するか、どなたか御教唆下さい。


参考画像(1年間で消えます): https://kie.nu/2Io-

閲覧数:
107
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

arcs_666さん

2015/9/811:40:47

0x00400000を足すのは、exeが実行されたときexeの中身がメモリのどこに配置されているのかを求めるためです。
簡単な方法としては。プロセスメモリエディタや逆アセンブラ等を使用して、
"Multi-frame selection"がメモリのどこに配置されるのかを調べれば良いです。

UPXで圧縮されているexeの為、デコードに使用するUPXのバージョン等で差異が出るかもしれませんが、
私の環境の場合、"Multi-frame selection"が0x005C65F0に配置されていました。
つまり、0x005C65F0-0x001C4FF0=0x00401600で0x00401600が足す数値になります。

ただし、exe内の位置によってこの数値は変動する可能性があるので注意してください。
基本的に文字列は同じ数値が使用できる場所に配置されているはずですが。

質問した人からのコメント

2015/9/8 22:30:20

ありがとうございます。私の環境でも足す数値は0x00401600でした。実際に編集して位置詰めが正確にできることも確認できました。一件落着です。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。