ページ 1 / 1
マニュアルアンパックについて
Posted: 2012年12月26日(水) 12:19
by boonsutazio
[削除内容を復元しました] by softya(ソフト屋)
IATの再構築について
http://ruf fnex.oc.to/kenji/crackme/reverse_en gineering.html
このサイトを手本にして未知のソフ トウェアを解析しています。 OEPまで発見していまはIAT再構築の 段階なのですが
0000D09Cからの4バイトは「B5 5C E 3 77」となっています。それを正し いアドレスである「E2 D0 00 00」に 変更してください。そのままバイナ リエディタを見てください。crackme _dump.exeのアドレス0000D0E2には 、ExitProcessという文字列が存在し ているのが確認できます。次に進み ます。OllyDbgを見ると次はGetProcA ddressのアドレス「0040D098」です ね。ベースアドレス400000を省いて 0000D098として、バイナリエディタ からこのアドレスの位置にあるデー タを調べると「FD A5 E3 77」です。 そのデータを正確なGetProcAddress 文字列のアドレス「D2 D0 00 00」に 変更します。文字列のアドレスとい っても実際には、文字列の先頭より2 バイト前のアドレスとなっています が、この説明は割愛します。これに ついてはPEフォーマットを学んでく ださい。このようにして、OllyDbgを 見ながらcrackme_dump.exeのIATを 変更していきます。この例だと4箇所 、計16バイトありますね。すべて変 更すると、以下のようになります。
この部分で GetProcAddress文字列のアドレス「 D2 D0 00 00」
この 変更するアドレスのD2 D0 00 00 はどのようにして調べるのですか?
E2 D0 00 00 これも同じです
Re: マニュアルアンパックについて
Posted: 2012年12月26日(水) 12:51
by softya(ソフト屋)
「PEフォーマットを学んでく ださい」とありますが学ばれましたか?
まぁ、内容次第ではフォーラムルールに抵触する質問になるので何処まで答えて良いか問題ですが、「PEフォーマット」を理解しないと始まりません。
Re: マニュアルアンパックについて
Posted: 2012年12月26日(水) 14:27
by boonsutazio
http://hp.vector.co.jp/authors/VA050396/tech_07.html
このサイトをみています。
流れは少しわかってきましたが、具体的に何をすれば取得できるかが、わかりません。
バインドと書いていますが、いまから、私がする作業ですよね?
E2 d0 00 00は、getprocaddressなどとは書いていません。
どのような作業をすればよいか、教えて貰えませんか?
ページのしたの方にある
e 00010008 0356 GetFileSizeEx 0001000C 0086 CreateFileW 00010010 0899 VirtualFree 00010014 0897 VirtualAlloc 00010018 0727 RtlUnwind 0001001C 0862 TerminateProcess 00010020 0322 GetCurrentProcess 00010024 0878 UnhandledExceptionFilter 00010028 0842 SetUnhandledExceptionFilter 0001002C 0569 IsDebuggerPresent 00010030 0679 RaiseException 00010034 0534 HeapFree 00010038 0489 GetVersionExA 0001003C 0528 HeapAlloc 00010040 0419 GetProcessHeap 00010044
これでもなさそうでした。
Re: マニュアルアンパックについて
Posted: 2012年12月26日(水) 15:13
by softya(ソフト屋)
ロード・バインドはOSの仕事です。
もっとOSなど基本的なことを勉強したほうが良いと思います。
基礎をすっ飛ばしても理解には繋がりませんよ。
自分でDLLなどのプログラムを組んで動作を理解しつつ、デバッガで追いかけるなどをしないとダメです。
「インポートのバインド」
http://msdn.microsoft.com/ja-jp/library ... .100).aspx
「リバースエンジニアリング入門 連載インデックス - @IT -」
http://www.atmarkit.co.jp/fsecurity/index/index_re.html
「Windows実行ファイル「EXE」の謎に迫る:CodeZine(コードジン)」
http://codezine.jp/article/corner/61
Re: マニュアルアンパックについて
Posted: 2012年12月26日(水) 16:12
by softya(ソフト屋)
記事の無闇な削除は原則として禁止しております。
http://dixq.net/board/board.html
理由をお聞かせください。
Re: マニュアルアンパックについて
Posted: 2012年12月27日(木) 10:17
by boonsutazio
http://ruffnex.oc.to/kenji/crackme/reve ... ering.html
このサイトを見てUPXで圧縮されたpcrackme.exeをサンプルを見ながらOEP(オリジナルエント リーポイント)を探して そこからダンプファイルに落として IATの再構築を行ったら無事ファイルが正しく実行できました。
それで、次にUPX以外のパッカーでパックされたソフトを解析してみました。 OEPまでは探すことができたので、
Ollydumpを使って OllyDbgで「右クリック→検索→ラベル名」もしくは「Ctrl + N」とすると、新しくウィンドウが 開きます。
この作業をして同じように書き換えました。
そしたら
http://ruffnex.oc.to/kenji/crackme/error2.bmp このエラー画像はでなくなったのですが、
原因が思いつかないのですが、可能性がある原因としては何があるでしょうか?
IATの再構築を自動で行ってくれるソフトはいろいろあったので試してみたのですが(ImportStdio など) すべてアプリケーションエラーがでました。
やはり手動でIATの再構築を行おうが自動で行おうが結果が同じだったのです。
アプリケーションエラーは起動した瞬間に終了してしまいます。
いったい何が原因でしょうか?
可能性を教えてください。
Re: マニュアルアンパックについて
Posted: 2012年12月27日(木) 11:29
by softya(ソフト屋)
何故消そうとしたかは教えてもらえないのでしょうか?
>アプリケーションエラーは起動した瞬間に終了してしまいます。
>いったい何が原因でしょうか?
そのexeを見てみないとなんとも言えないですが、アンパック対策されている場合は初心者ではアンパックは難しいでしょう。
ただし、この掲示板では違法なものは禁止しておりますのでexeを掲載するのならライセンス的に大丈夫なものを載せてください。
それと違法な目的のためにアンパックなどの情報を扱うのはNGとさせて頂いております。
※ パッカー作成のための研究なら問題無いです。
Re: マニュアルアンパックについて
Posted: 2012年12月27日(木) 11:40
by boonsutazio
softya(ソフト屋) さんが書きました:何故消そうとしたかは教えてもらえないのでしょうか?
質問を変更する為です。
紛らわしい行為、失礼致しました。
>アプリケーションエラーは起動した瞬間に終了してしまいます。
>いったい何が原因でしょうか?
そのexeを見てみないとなんとも言えないですが、アンパック対策されている場合は初心者ではアンパックは難しいでしょう。
ただし、この掲示板では違法なものは禁止しておりますのでexeを掲載するのならライセンス的に大丈夫なものを載せてくだ
それと違法な目的のためにアンパックなどの情報を扱うのはNGとさせて頂いております。
※ パッカー作成のための研究なら問題無いです。
ソフトウェアの作成を考えていまして、クラック対策の為にパッカーを自作もしくは、それに近い処置を施そうと考えています
自分でexeファイルを作成して自分で解析しています。
Exeファイルを掲載すれば、原因を教えて頂けますか?
Re: マニュアルアンパックについて
Posted: 2012年12月27日(木) 11:44
by softya(ソフト屋)
私もパッカー専門家ではないので答えられるか自信がありませんが、今までの情報では誰も答えられないと思います。
問題究明のためには、パッカー前のexeとハンドアンパック後のexeの両方がほしいですね。
Re: マニュアルアンパックについて
Posted: 2012年12月30日(日) 04:13
by boonsutazio
softya(ソフト屋) さんが書きました:私もパッカー専門家ではないので答えられるか自信がありませんが、今までの情報では誰も答えられないと思います。
問題究明のためには、パッカー前のexeとハンドアンパック後のexeの両方がほしいですね。
遅くなりました。
http://www42.tok2.com/home/test2ch/pass.zip
こちらに「パック済みファイル」と「パック前ファイル」を入れてあります。
パック済みファイルのOEPを解析して、アンパックしてほしいです。
どのアドレスにブレークポイントを立てたらよいかなどご教授お願いします。
Re: マニュアルアンパックについて
Posted: 2012年12月30日(日) 11:23
by softya(ソフト屋)
私の欲しかったのは「ハンドアンパック後のexe」なんですが。アンパックするつもりはありません。
Re: マニュアルアンパックについて
Posted: 2012年12月30日(日) 11:31
by boonsutazio
softya(ソフト屋) さんが書きました:私の欲しかったのは「ハンドアンパック後のexe」なんですが。アンパックするつもりはありません。
ハンドアンパックとは、私がIAT 再構築に失敗し
てみて動かなかったファイルのことでしょうか?
Re: マニュアルアンパックについて
Posted: 2012年12月30日(日) 11:38
by softya(ソフト屋)
その通りです。何処を失敗したかを知ることが必要です。
Re: マニュアルアンパックについて
Posted: 2012年12月30日(日) 23:26
by boonsutazio
softya(ソフト屋) さんが書きました:その通りです。何処を失敗したかを知ることが必要です。
http://www42.tok2.com/home/test2ch/pass2.zip
こちらがアンパックに失敗したdump後のOEP修正済みファイルです。
正しく起動することができません。
Re: マニュアルアンパックについて
Posted: 2012年12月31日(月) 00:00
by softya(ソフト屋)
どうやらアンパックされていませんが、私も追っかける気力はありません。
packed_パスワード_dump.exeは、いきなりアンパック処理の続きが動いているように見えます。
つまり、OEPを見つけられていないと思います。
そもそもパック処理の勉強ならアセンブラを勉強しないと話になりませんので、まずアセンブラを勉強してちゃんと追いかけるべきです。
それから簡単なパック処理から作ってみましょう。
テクニックが欲しくなったら、他のパック処理を参考にすれば良いのではないでしょうか。
Re: マニュアルアンパックについて
Posted: 2012年12月31日(月) 14:09
by boonsutazio
softya(ソフト屋) さんが書きました:どうやらアンパックされていませんが、私も追っかける気力はありません。
packed_パスワード_dump.exeは、いきなりアンパック処理の続きが動いているように見えます。
つまり、OEPを見つけられていないと思います。
Sfxのoepは見つけられています。
アンパックしなくても、認証は無効化できるのですが
やはり見にくいという点では、アンパックが必要かと思われます。
Dumpしたファイルが、正しく起動しない理由を探しているのですが
Dumpした時点では、oepはどうなってるのでしょうか?
解凍してかそもそもパック処理の勉強ならアセンブラを勉強しないと話になりませんので、まずアセンブラを勉強してちゃんと追いかけるべきです。
解凍できたら、追いかけることはできました。
きっちり認証部分も無効化されていました。
それから簡単なパック処理から作ってみましょう。
テクニックが欲しくなったら、他のパック処理を参考にすれば良いのではないでしょうか。