ARMV4i (Windows Mobile 6) ネイティブ コード逆アセンブラ
-
09-06-2019 - |
質問
誰かが逆アセンブラを知っていますか ARMV4i 実行可能ファイルとDLL?
非常にまれなプラグイン DLL を使用して作成しています data abort
(時間の 5% 未満) (dumpbin と、 data abort
)。ただし、かなり大規模な機能なので、少し絞り込みたいと思います。それが起こっていることは知っています memset()
しかし、その特定の関数には約 35 個の関数があるため、逆アセンブリを確認することで実際に問題がどこにあるのかを把握できると期待していました。
解決
IDA ProはARMの分解を確実に行います。そして、彼ら (Datarescue) は、現地時間の午後 11 時頃に私にライセンスを手配してくれたことがあったので、彼らをお勧めしたいと思います...
から見えます http://www.datarescue.com/idabase/ 会社の再編があったようですが、それでも良い製品だと思います。
新しいパブリッシャーへのリンクは次のとおりです。 http://www.hex-rays.com/idapro/
他のヒント
私はそれを信じています IDAプロ あなたが望むことをします。これは O'Reilly Security Warrior の本で言及されており、Windows Mobile 開発者フォーラムでも推奨されているのを見たことがあります。
チャームド〜魔女3姉妹 Windows Mobile / Pocket PC / Win CE (ARM CPU 用) 逆アセンブラおよびアセンブラです
シェアウェア逆アセンブラである BDASM も参照してください。新しいバージョンには ARM プラグインが含まれています。Web サイトはダウンしているようですが、検索するとシェアウェアのディストリビューションが見つかります。
単純な ARM 逆アセンブラのソース コード 武装解除, 、も利用可能です。
binutils (Linux コンパイラ ツール) objdump を使用すると、「objdump -b binary -m arm7tdmi -D file_name」のように逆アセンブリを実行できます。
-アダム
数年前、組み込み作業を行っているときに使用していた ARM 逆アセンブラを見つけました。ただし、その名前は覚えていません。ただし、エミュレータか何かのような、より大きなパッケージの一部だったと思います。
あなたの場合、コンパイラに、コンパイルされたコードのアセンブリ リストを生成するように依頼していただけますか?そうすることで、ある程度の範囲が得られるかもしれません。
それができない場合は、取得できるのがスタック トレースだけであれば、関数を 1 つ以上の新しい関数に分割することができます。次に、新しい関数を 1 つ以上に再度分割します。これは実証済みの「分割統治」方法です。また、1 つの関数で memset() を 35 回呼び出している場合は、設計の観点からも良いアイデアになる可能性があります。
アップデート:私が使用したパッケージを見つけました: ARMフェタミン. 。私が開発していた ARM9 コードでは機能しましたが、かなり長い間更新されていないようです。