問題タブ [disassembly]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows-mobile - ARMV4i (Windows Mobile 6) ネイティブ コード逆アセンブラー
ARMV4i実行可能ファイルと DLLの逆アセンブラを知っている人はいますか?
私はプラグイン DLL を持っていますが、非常にまれにdata abort
(時間の 5% 未満)、特定の機能に絞り込んで作成しています (ダンプビンと によるアドレス出力を介してdata abort
)。ただ、かなり大きな機能なので少し絞ってみたいと思います。呼び出しで発生していることは知っていmemset()
ますが、その特定の関数には約 35 個の関数があるため、逆アセンブリを見て、問題の実際の場所を特定できることを期待していました。
optimization - 逆アセンブルされたコードのリファクタリング
関数を作成し、結果のアセンブリを見ると、改善できることがわかります。
読みやすくするために、作成した関数を保持したいと考えていますが、コンパイラのアセンブリを独自のアセンブリに置き換えたいと考えています。あなたの高度な言語機能と新しいアセンブリの間に関係を確立する方法はありますか?
assembly - z80 マシン コードのリバース エンジニアリングを開始するにはどうすればよいですか?
.z80 メモリ ダンプがあります。リバース エンジニアリングの方法を教えてください。何を知る必要がありますか? 手作業を最小限に抑えるにはどうすればよいですか?
.net - リフレクターを使用してアセンブリ全体をソース ファイルにダンプするにはどうすればよいですか?
リフレクターを使用してアセンブリ ソース全体をファイルにダンプする方法はありますか?
.net - Reflector がソース コードを反映できないようにする方法はありますか?
Reflector が私のソースコードを反映するのを防ぐ方法 (信頼でき、できれば商業的ではない) はありますか?
ありがとう、アディ
visual-studio-2005 - 関数ポインターが Visual Studio 2005 で正しくない、コードが 1 バイト オフセットで始まる
問題のコードは explorer.exe にフックされますが、コールバック関数へのエントリでクラッシュしていました。
コールスタック:
Visual Studio 2005 では、次の逆アセンブリが行われました。
そして0x548B0CC4あたりのメモリはすべて?????? マップされたメモリではないため、クラッシュします。
myCallWndProcRetCallback の開始時のマシン コードは次のとおりです。
ただし、Visual Studio では、この関数に対して次の逆アセンブリが提供される場合もあります。
これは正しい逆アセンブルのように見えますが、上記の逆アセンブルよりも 1 バイト遅れています。0x60055B58 以降の命令は同じであることがわかります。
そのため、リンカは関数が 0x60055B50 にあると言っているように見えますが、コードは実際には 0x60055B51 から始まります。前者は Windows フックに設定されたコールバックであることを確認しました。そのため、Windows が関数にコールバックすると、不正なコードが実行されます。
私が持っている質問は、リンカーがこれをどのように誤解する可能性があるかということです? 再構築を行ったところ、問題はなくなりました。ランダムなようです。/FORCE:MULTIPLE リンカー オプションが有効であった時点で、このコールバックに対してリンク エラーは報告されません。
遅い追加: これは、DLL の再配置またはリベースに関連している可能性がありますか? 再配置が 1 バイトずれていた場合、これが問題の原因になる可能性がありますか?
visual-studio - VS 逆アセンブリ ウィンドウには EXE 全体が表示されますか?
クライアントが私の会社のプログラムを実行していますが、どこかに到達する前に停止しています。彼らは、Windows イベント ログから次の情報を送信しました。
他にやるべきことはあまりないので、最後の努力として、その位置が逆アセンブラーのどこにあるかを見つけられるかどうかを確認しようとしています。Visual Studio でプログラムを実行し、一時停止し、[逆アセンブリ] ウィンドウを見て、そのアドレスまでスクロールしようとしましたが、そこに表示されるのは次のとおりです。
これは、Visual Studio が一時停止位置付近の EXE の一部のみを逆アセンブルするためでしょうか? スクロールバーが完全に機能しないため、実際にどれだけ分解されているかを確認するのは困難です。(スクロール位置をつかんで移動することはできません。行ごとまたはページごとにスクロールする必要があります。)
あなたが持っているかもしれない洞察をありがとう!
.net - ファクトチェック:.NETアプリは逆コンパイルに対してどの程度脆弱ですか?
私はMSMobiles.comブログで、とりわけ次のようなこの投稿に出くわしました。
.Netは多くの点で優れていますが、商用アプリには適していますか?とんでもない!誰でもあなたのソースコードを見ることができます。ハイエンドの難読化ツールは大いに役立ちますが、決心したハッカーなら誰でも1日以内にコードを修正できます。私はこれを、著作権侵害対策および難読化ツールに数千ドルを費やしたにもかかわらず、悲しい経験から知っています。
次に、.NETでの商用Windowsモバイルアプリの開発について次のように述べています。
1日の遅延に備えてください。その後、競合他社があなたの機能をコピーし、同じ機能を備えた独自のアプリをSkymarketに配置します。
.NETに精通している人のために:これは真実ですか、それともナンセンスですか?この問題はどういうわけかWindowsMobileに固有のものですか、それともWindows上の.NETにも当てはまりますか?Microsoftが独自のクライアントサイドソフトウェアを.NETで大量に作成していること(そして多くのベンダーがJavaで高価なアプリを作成していること、これは明らかに同じ問題を抱えていること)を知っているので、これは私には驚きのように思えました。 IPはとても簡単に盗まれる可能性があります。
.net - .dll を比較して違いを逆アセンブルするツールはありますか?
同じ dll の 2 つの異なるバージョンを比較し、違いを抽出する適切なツールを知っている人はいますか?
ありがとう
assembly - Dhamdhere 教科書の玩具 ISA のアセンブリ リストの解釈
次のアセンブラー出力リストを検討してください。
- コードの前の + 記号は何を意味しますか?
- のアドレスが
ONE
指定されているのはなぜ001
ですか? RESULT DS 1
最後のステートメントの後のエントリが空白になっているのはなぜですか?
このリストは、 Dhamdhere によるSystems Programming and Operating Systemsに掲載されています (編集者注: 回答者によって発見されたとおり)。