QtWeb日本語化パッチ製作開始
QtWebというブラウザの日本語化に悪戦苦闘中。
パックされてるんだけど、アンパッカーでアンパックできないので、マニュアルアンパックする事にした。
QtWebをOllyDbgで開く。
010597F0 $ 60 PUSHAD
最初の命令がPUSHADになっているので、対応するPOPADを探そうかと思いましたが、スマートじゃない。
なので、OEPを探してみます。
QtWebをPEiDでスキャン。
セクションビューアでVirtual Offset/Sizeを見る。
UPX0 V.Offset[00001000] V.Size[007AB000]
UPX1 V.Offset[007AC000] V.Size[004AE000]
で、OllyDbgでラントレース停止条件を設定します。
EIP値の指定範囲内で停止させます。
値はさっきPEiDで見たやつ。
range範囲はUPX0のV.Offset値~UPX1のV.Offset値。
QtWebを最初にOllyで開いた時を思い出して下さい。
010597F0 $ 60 PUSHADでした。
アドレスが01000000台から始まっていますので注意が必要です。
01001000~017AC000でrange設定。
範囲指定をしたらトレースを開始します。
トレースが自動的に止まったら、そこがOEPになる。
OllyメニューからプラグインでOllyDumpを選び、Dump debugged processを選択。
BaseOfCode値はUPXのアンパックコードがあるセクションがBaseになっているので元のBaseに修正。
Rebuild Importのチェックは外します。
IAT再構築可能ならこのチェックを入れるだけでダンプからIAT再構築ができるのですが、Ollyで上手く再構築できた試しがないので、後で自分で再構築したほうが楽です。
ダンプ後、ImportREConstructorを起動します。
アンパック前のオリジナルファイルを開き、OEP入力欄にさっき調べたOEPを入力。
AutoSearchし、RVAとSizeに値が入ったのを確認したらGetImportsする。
その後、FixDumpを押してさっきOllyDumpで出力したファイルを開いて終了。
新しく作成されたファイルが実行可能かどうか確認します。
もし実行できなかったらどっか間違っていますので修正して最初からやり直し。
このOEPを探すのがまだ慣れない…。
その他、細かい解析方法はJPatcherz Team BBSにて公開予定。
4月 8th, 2009 at 6:33 PM
はじめまして。
QtWebの日本語化について検索してみたとこたどり着きました。
現在の日本語化の進み具合はいかがでしょうか?
4月 10th, 2009 at 11:57 AM
a2shiさん、コメントどうもです。
それが、仕事と転職活動とでゆっくりソフトを解析する時間が確保できなくて、まだほとんど進んでいません。
現状はソフトのリソースを覗くことがまだできていないので、まずはリソース情報を確保するのが第一目標です。
4月 10th, 2009 at 8:36 PM
ためしに UPX-Ripper 1.3 (UPX3.03) にてアンパックしてみたところ、
無事アンパック出来て、実行も出来たんですが、
リソースはよくわからなかったですね。
4月 11th, 2009 at 2:14 PM
そうなんですよ、アンパックしてあるはずのリソースがなくて、どうやったら覗けるのかなぁと。
いろいろとリソースエディタを集めて試行錯誤中です。