問題タブ [ida]
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.
reverse-engineering - Windbg + IDA: モジュール内のアドレスを計算する
Windows XP マシンをリモートでデバッグしています。ドライバの 1 つがアドレス 0xb2c4c000 から 0xb2cb9680 までロードされています。
IDA でドライバーを開くと、ブレークポイントを設定するオフセットは 00017619 になります。
IDA アドレスを windbg に効果的に一致させるにはどうすればよいですか?
0xb2c4c000 + 00017619 = 0xB2C635F7 を合計し、windbg の「u」コマンドを使用してそのアドレスを逆アセンブルするという明白な方法を試しました。しかし、結果は IDA のアセンブリと一致しませんでした。
余談ですが、windbg で実行中のコマンドをキャンセルする方法はありますか? 処理に時間がかかるコマンドを何度か実行しましたが、必要に応じてキャンセルできるようにしたいと考えています。だから働き続けられる。
御時間ありがとうございます。
assembly - xorの後のx86 jnz?
IDA Pro を使用して x86 dll を逆アセンブルした後、次のコードを見つけました (pusedo-c コードに私が追加したコメント。正しいことを願っています)。
私が理解しやすいようにしましょう:
xor 命令の後の条件付きジャンプ命令はどのように機能しますか?
assembly - 紛らわしい機能
したがって、IDAを使用してdllを逆アセンブルしているときに、次のクラス関数に遭遇しました。
ecx
意味this
とeax
は戻り値ですが、何が返されるのか理解できません。何か助けはありますか?
ida - IDA Proで、関数にフラグを立てる方法はありますか?
IDAProを使って特に重要な機能を見つけました。ただし、ソースは非常に大きいため、すぐに追跡できなくなると確信しています。
関数に重要なフラグを立てたり、色分けしたりする方法はありますか?
objective-c - 単純な ARM 命令を逆アセンブルしていますか?
私はIDA Proをいじり、自分の製品を分解しようとしています。
アセンブリ言語の知識が乏しいので、いくつかわからないことがあります。以下はCGContextSetRGBStrokeColorを呼び出すコードの一部です。
IDA では、次のようになります。
私は多くのことを理解していません:
- 0x3F800000は数字の 1 とどのように関連していますか? 私はそれが参照であると思いますが、それが何を参照しているのかわかりませんでした。
- MOVSが 4 回ではなく 3 回呼び出されるのはなぜですか(引数が 4 つあるため)。
- R0、R1、R2などはCPUレジスタですか?
- 誰かがこれらを説明できますか:
いくつかのテキスト行 http://a.imageshack.us/img836/4018/gah.png
このファイルはフレームワーク(したがって、Mach-Oファイル) です。その関数は CoreGraphics から来ています。
iphone - 逆アセンブリから単純な ARM 関数プロトタイプをデコードできませんか?
この単純な関数のプロトタイプがわかりません:
スタック内:
関数呼び出し:
それが私がこれまでに得たものであり、エラーが発生します。
3 つのレジスタ (R0、R1、R2) が使用されるため、3 つの引数が必要です。3 つ目は、スタック変数を参照します (それがどのように機能するかはまだわかりません)。# 0x28 (var_28) は ADD 呼び出しでのみ言及されており、それが何であるかは不明です。どこで間違いを犯したのですか?
情報を逃した場合は、教えてください。追加します。ちなみにこれはCamera.frameworkのものです。
reverse-engineering - シンボルの不一致、ida/windbg
最近、私は Windows カーネルについてもっと学ぼうとしていました。私のsys(win7 x64無料)の正しいシンボルをダウンロードしました。IDA を実行し、ntoskrnl.exe を開きます。IDA は、pdb ファイルを添付するかどうかを尋ねました。しかし、ほとんどの関数は解決されませんでした - sub_XXXXXX。そこで私は Windbg を実行し、ntoskrnl にあるはずのランダムに選択された関数 (KiSystemCall64) をアンアセンブルしました。そして、それは出力を示しています。しかし、IDAにはそのような機能はありません(または解決されませんでした)。要約すると、同じシンボルを使用して、WinDBg でアセンブルされていない関数は、IDA では解決されません (それらの兆候はありません) (およびその逆)。あなたからの助け、提案をいただければ幸いです。
c++ - 16進数でexeを変更した後に変更されるプッシュ命令のアドレス
Windows 7、32ビットホームプロで実行
Visual Studio 2008で非常にシンプルな数行のアプリを作成し、コンパイルして、リリースモードの標準ライブラリと実行可能test.exeにリンクしました。
cのコードは次のとおりです。
これにより、VS2008で表示される次のマシンコードと対応するアセンブリが生成されます(アドレスは以下にリベースされ、通常の開始仮想アドレスは0x4001000)
ここで、MessageBoxを呼び出す代わりに、プッシュ0の直後に別の文字列 "h"をプッシュしたいので、hexeditを使用して、FF15A420 ...を含むセクションを検索し、上書きして次のようにします。
IDAで実行可能ファイルを無料で開くと、.textセクションに次のように表示されます。
これは今のところ良さそうです、私は0x401014で私の新しいプッシュステートメントを見る。
ここで、IDAフリーでexeを突然デバッグすると、コードが変更されます(以下を参照)。プッシュ0FEEDBACCがプッシュ0FFA4BACCになり、最初の2バイトが変更された理由がわかりません。
ここで何が起こっているのか、なぜ私がプッシュしている番号が変更されているのかを誰かが説明できますか?このアドレスの開始物理バイトを変更しようとしましたが(何らかのアライメントの問題が疑われます)、違いは見られませんでした。
ありがとう、
スキモン
assembly - exeがどのように機能し、dllおよびexeファイルのアドレス指定がどのように行われるか
- Windowsベースの実行可能ファイルはどのように機能しますか?
- 実行可能ファイルで開始アドレスはどのように見つかりますか?
- アドレスが保存されているファイルの実行について、それらのアドレスをどのように読み取ることができますか?
- dllまたはexeファイルの呼び出しとretはどのように機能しますか?
idaprodisassemblerを使用するためのヒントを教えてください。
disassembly - IDAProの前の機能
IDA Proのグラフ表示モードで、関数を見ています。この関数は別の関数を呼び出し、その関数名をクリックすると、そのアセンブラーコードが表示されます。
私の問題は、元の関数である呼び出し元の関数に戻る簡単な方法が必要なことです。私は外部参照へのジャンプでそれを行うことができますが、私はもっと単純な「戻る」か何か(Eclipseが持っているような)を望んでいました。そのような機能はありますか?