2008-08-22 24 views
2

の逆アセンブラについて知っている人はいますか?ARMV4i実行可能ファイルとDLL?ARMV4i(Windows Mobile 6)ネイ​​ティブコード逆アセンブラ

私は、プラグインDLL私は( data abortでDUMPBINとアドレス出力を介して)特定の機能に絞ってきた非常に稀な data abort(時間の< 5%)で書いているんだ

。しかし、それはかなり大きな機能であり、少し絞り込んでいきたいと思います。私はそれがmemset()コールで起こっていることを知っていますが、その特定の機能には約35個の機能があります。そのため、分解を見て実際に問題がどこにあるか把握できることを期待していました。

+0

また人は、コンパイラ生成アセンブリリストであろう。おそらくソースとの相関がより簡単になります。多くの場合、 'data abort'はスタックポインタとフレームポインタを出力します。確かにリンクレジスタ 'lr'が役に立ちます。私はWindows Mobileがこの情報を提供することを願っています。 –

答えて

2

IDA Proは間違いなくARMの分解を行います。そして彼ら(Datarescue)はかつて地元の午後11時ごろにライセンスを手配してくれたので、私はそれらをお勧めしたいと思っています。

私はhttp://www.datarescue.com/idabase/から見ると、会社の再編がありましたが、 。ここで

は、新しい出版社へのリンクです:http://www.hex-rays.com/idapro/

0

数年前、私は組み込み作業をしているうちに使用していたARM逆アセンブラを見つけました。しかし、私はその名前を覚えていません - 私はそれがエミュレータのような大きなパッケージの一部だとは思いますが。

あなたの場合、コンパイルされたコードのアセンブリリストを生成するようにコンパイラに依頼できますか?それはあなたにある範囲を与えるのを助けるかもしれません。

これで失敗した場合、スタックトレースを得ることができれば、関数を1つ以上の新しい関数に分割することができます。次に、新しい関数を1つ以上に分割します。これは、実証済みの「分割と征服」の方法です。そして、ある関数でmemset()を35回呼び出すと、設計の観点からも良いアイデアかもしれません!

更新:私が使用したパッケージ:ARMphetamineが見つかりました。私が開発していたARM9コードではうまくいきましたが、かなり前から更新されていないようです。

4

IDA Proはあなたが望むことをすると信じています。これはO'Reilly Security Warriorの本で言及されており、Windows Mobileの開発者フォーラムでは推奨されています。

1

ChARMeDは、Windows Mobile /ポケットPC/WinのCE逆アセンブラとアセンブラ(ARM CPU用)

あなたはまたBDASM、シェアウェアの逆アセンブラに見えるかもしれませんです - 後のバージョンにはARMプラグインがあります。ウェブサイトはダウンしているようだが、それを検索するとシェアウェアの配布が見つかるだろう。

単純なARM逆アセンブラのソースコードDISARMも使用できます。

のbinutils(Linuxのコンパイラツール)objdumpのは、分解を生成するために使用することができる、 "objdumpは-bバイナリ-m ARM7TDMI -D FILE_NAME"

-Adam

関連する問題