問題タブ [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.
delphi - Delphi:イベント変数のアドレスを取得するには?
イベント ハンドラーを保持する変数のアドレスを取得するにはどうすればよいですか?
例えば
プライベート メンバ、イベント ハンドラ、変数のアドレスが必要です。FOnChange
なんで?
誰が私のFOnChange
ハンドラ変数をジャンクで上書きしているのかを突き止めようとしています。
私はコードをステップ実行しています:
イベント ハンドラーが割り当てられることはなく、しばらくの間、FOnChange
変数はnil
ウォッチ ウィンドウに表示されます。
しかし、後でFOnChange
変数はがらくたに変わっています:
FOnChange
だから私はCPUウィンドウのデータペインで変数を監視したいので、次のように監視できます:
に
のアドレスがわからないことを除いてFOnChange
; 私はちょうど作った$410018
。
イベント変数のアドレスを見つけるにはどうすればよいですか?
私が試したこと
ウォッチリスト
Alt+F5
- 変更時:
OnChange: TNotifyEvent $253B588
- FOnChange: 'FOnChange' の検査中にエラーが発生しました: 式エラー
- Self.FOnChange: 'Self.FOnChange' の検査中にエラーが発生しました: 式エラー
- @オンチェンジ:
@OnChange: Pointer $253B588
- @@OnChange : '@@OnChange' の検査中にエラーが発生しました: 式エラー
- @FOnChange :
@FOnChange: Pointer $253B588
- @@FOnChange :
@@FOnChange: ^Untyped (no address)
データ: @@FOnChange $253B588`
コンセンサスは住所にあるよう0x253B588
です。
しかし、サンプルコードを実行すると:
それは次のようになります。
の住所が見つからないのも不思議ではありませんFOnChange
。2 つの住所です。
assembly - x86逆コンパイルのリソース
プログラムを表現して実行するための低レベルのプロセスをしっかりと理解したいと思います。これを行うには、オブジェクトファイル情報(ヘッダー、セクションなど)を解析して表示するプログラムを作成することにしました。この部分はもうすぐ終わります。自然な拡張は、残りの関連データを逆コンパイルしてアセンブリ命令にすることです。最初は、x86に焦点を当てます。
この逆コンパイルに関連するリソースはどこにありますか(バイナリ-> ASM)?x86はASMと1対1で対応していることを読みましたが、変換テーブルをプルするための最適なリファレンスはわかりません。
また、その間、提供されたデバッグ情報を追跡することに興味があります。この情報に使用される形式に関する参照はありますか(-gオプションを指定したELFおよびGCCを想定します)?
一般的なアドバイスはありますか?ここでの目標は、私の理解を深めるための実践的なプロジェクトです。
vb.net - 一部のアセンブリをVB.NETに変換する-SHRオペレーターの動作が異なりますか?
さて、ここで簡単な質問
私はいくつかのアセンブリを研究していて、いくつかのアセンブリルーチンをVB.NETに変換し直しています
さて、私が問題を抱えている特定のコード行があります。アセンブリでは、次のことを想定しています。
次に、次の行が実行されます
それは私に次のことを与えます:
さて、VB.NETでは、私は次のことをします
これは私に同じことを与えるべきです...しかし、それは値0F0D0408の代わりにSLIGHTビットが異なります私はFF0D0408を取得します
では、ここで何が起こっているのでしょうか。
assembly - 逆アセンブルされた gcc 出力は、「call function-offset」ではなく「call 0」を実行しているように見えますが、正しく機能します
この C プログラムから取得した非常に単純な SPARC アセンブリ出力を見てみました。
セクション .text の分解:
「call」命令が次のように言う理由がわかりません。
そうでない理由:
プログラムは正常に動作しますが、この出力はあまり意味がありません。なぜこのように処理されるのか、何か提案はありますか?
ありがとう
assembly - PDP-8 プログラムの逆アセンブル
これは PDP-8 プログラムです。どなたでも分解できますのでよろしくお願いします。
このコードが一体何をしているのか知りたいです。
PS: これは宿題ではありません。ビデオでこのコードを見つけました。それについての説明はありません。
.net - 2つのdllの内容を比較するにはどうすればよいですか?
あるインストールのいくつかのdllを、使用しているアプリケーションの別のインストールのいくつかのdllと比較したいと思います。それらが完全に同じであることを確認する必要があります。2つのdllを比較して、メソッド、プロパティ、バージョンなどがまったく同じであることを確認するにはどうすればよいですか?
RedGate .Net Reflectorを使い始めましたが、作業が面倒になったので、SOを試してみて、他の誰かが以前に私の状況にあったかどうかを確認し、迅速な解決策があるかどうかを確認しました。
ありがとうございました!
mips - 逆コンパイラのルールを定義する良い方法を探しています。アドバイスが必要です
私は MIPS アーキテクチャ用の非常に単純な逆コンパイラに取り組んでおり、進行するにつれて、コード分析のための多くのルールを定義する必要があります。bneであり、現在の前のアドレスを参照しています -ループを作成します問題 - そのようなルールがたくさんあり、それらを定義する良い方法を見つけることができません。すべてのルールに個別の関数を書き、素敵な OOP ベースロジッククラスを定義し、それらを拡張して作成しようとしましたルール、失望したコードで正規表現を試してみましたが(驚いたことに、これは予想よりもうまく機能します)、何を試しても、コードをすぐに大きくして読みにくくなりました。それ。
これは、私が間違ったツールを使用してこのタスクを解決しようとしているという結論に達します(そのような複雑なタスクにはあまりにも愚かであることは言うまでもありません:))が、何を試すべきかわかりません。現在、テストされていない 2 つのアイデアがあります。1 つはある種の DSL を使用することです (私はこれについてまったく経験がないので、完全に間違っている可能性があります)。
誰かが私を正しい方向に向けてくれることを願っています.thx.
visual-studio-2010 - コンパイルされたDLLからのXAMLの表示
Visual Studio 2010拡張機能を開発しようとしていますが、VisualStudioXAMLがどのように表示されるかを確認できればはるかに簡単です。ReflectorとBAML逆アセンブラを使用しましたが、それでは私が望むものが得られなかったようです。私が探しているXAMLファイルのURIは次のとおりです。
Microsoft.VisualStudio.Shell.UI.Internal;component/mainwindow/mainwindow.xaml
これが見つかったDLLはでしたMicrosoft.VisualStudio.Shell.UI.Internal.dll
。これは、その名前のリソースが必要であることを意味しますか?リフレクターにはまったく表示されません。
windows - EXE 内のファイル オフセットをその PE セクションにマップする方法
ImageHlp.dll で作成したプログラムを開いて少しいじってみましたが、ファイルに大きなギャップがあるように見えます。私が理解しているように、各 PE セクションについて、セクション ヘッダーはファイル内のオフセットを としてPhysicalAddress
、サイズを として指定するため、 からまでSizeOfRawData
のすべてがそのセクションである必要があります。しかし、これらの範囲でカバーされていない EXE ファイルの大部分があるため、何かが欠けているに違いありません。PhysicalAddress
PhysicalAddress + SizeOfRawData
ImageRVAToSection を使用して RVA アドレスを指定し、RVA が配置されているセクションを特定できることはわかっています。ファイル オフセットで同様のことを行う方法はありますか? どの PE セクション バイト $ED178 などに属しているかを調べるにはどうすればよいですか?
.net - 最適化されたjitted.NETコードの逆アセンブルを表示するにはどうすればよいですか?
何らかの理由で、関数の最適化されたコンパイラ出力を確認すると便利な場合や興味深い場合があります。
管理されていないC/C ++コードの場合、これを行うための私のお気に入りの方法は、リリースモードでコンパイルし、目的の関数にブレークポイントを固定し、実行して、ブレークポイントに達したときにVisualStudioで逆アセンブリを表示することです。
最近、C#プロジェクトでこれを試しましたが、その手法が機能しないことがわかりました。リリースモードでも、私が見る分解は明らかに最適化されていません。(Visual Studio 2010で)「デバッグ...オプションと設定...デバッグ...一般...モジュールロード時のJIT最適化の抑制」オプションを見つけて無効にしました。これにより、おそらく私が望むものに近づくことができます。これで、実行しようとすると警告が表示されますが、ブレークポイントで停止して、分解を確認することができません。
したがって、関数のCLR(4.0)ジッターの分解され最適化された出力を確認したい場合、それを実行するための最良の方法は何ですか?明確にするために、ILの逆アセンブル(Reflectorで確認できます)だけでなく、x86(またはできればx86_64)の逆アセンブルを確認したいと思います。