問題タブ [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 - IDA Proのデバッグセクションとは何ですか?
アセンブリスキルが低いdllファイルを分析しようとしているので、非常に些細なことを達成できなかった場合はご容赦ください。私の問題は、アプリケーションのデバッグ中に、デバッグセッションでのみ探しているコードを見つけ、デバッガーを停止した後、アドレスが失われることです。コードの多くは読み取り可能であるため、dllは難読化されているようには見えません。スクリーンショットを見てください。私が探しているコードは、debug376セクションのアドレス07D1EBBFにあります。ところで、このdebug376セクションはどこで入手できましたか?
だから私の質問は、デバッグしていないときにこの関数を見つけるにはどうすればよいですか?ありがとう
アップデート
さて、私が言ったように、デバッガーを停止するとすぐに、コードは消えます。バイトシーケンスで見つけることさえできません(ただし、デバッグモードでは見つけることができます)。デバッガーを起動すると、コードはすぐに逆アセンブルされません。その場所にハードウェアブレークポイントを追加する必要があります。ブレークポイントに到達した場合にのみ、IDAは逆アセンブルされたコードを表示します。このスクリーンショット を見てください。興味のあるコード行が表示されます。これは、プログラムがデバッグモードで実行されていない場合は表示されません。よくわかりませんが、実行時にコードを解凍するようなもので、設計時には表示されないと思います。
とにかく、どんな助けもいただければ幸いです。ブレークポイントがヒットするまで(「db8Bh」などと表示されるまで)そのコードが非表示になっている理由と、可能であればデバッグせずにそのアドレスを見つける方法を知りたいです。ところで、これは別のモジュール(dll)からのコードでしょうか?
ありがとう
更新2
debug376は実行時に作成されるセグメントであることがわかりました。とても簡単な質問:このセグメントがどこから来たのかをどうやって知ることができますか:)
debugging - 最初に呼び出された DLL
ですから、簡単な質問かもしれません。まず第一に、私は IDA を使用したデバッグ プロセスの初心者であることに注意してください。笑わないでください...
Windows サービス、正確には svchost.exe をデバッグしたい。WindbgでIDAを使用しています。だから、私は適切なプロセスに添付しました。右側のウィンドウの特別なリストに、プロセスが使用する dll ファイルが表示されます。私の質問は次のとおりです。どうすれば知ることができますか-最初に使用されるdllは何ですか? ブレークポイントを追加したいのですが、どの関数に追加する必要があるのかわかりません... このプロセスは Windows 7 の 5355 リモート ポートを使用します。このポートにデータを送信し、トレースを表示したいと考えています。私のデータ...最初に使用されたdllを見つけることができるかもしれません。
助けや説明をしてくれた人に感謝します。
winapi - 短命のHANDLEが関連付けられているファイルを見つける
私はIDAのデモをいじっており、プログラムのリバースエンジニアリングを実行して、使用するファイルの1つの構造を把握しようとしています。私の最終的な目標は、自分のプログラムから直接そのファイルを読み取れるようにすることです。
Process Monitorを使用して、を呼び出すサブルーチンを見つけることができましたkernel32_ReadFile
。hFile
私が知りたいのは、変数がを呼び出す前に、変数が何を指しているのかを知る方法です。ReadFile
デバッグモードでメニューを調べていましたが、IDA内で、ファイルハンドルに関連付けられているファイルに関する情報を検索できる場所が見つかりませんでした。
ハンドルを実際のファイルにマップするにはどうすればよいですか?
c - IDAProでのCコードの解釈が必要
IDA Proを使用して次のCコードを逆アセンブルしています。ただし、以下の逆アセンブルを見ると、不完全に見えます。データはスタックにロードされているように見えても(Cコードに従って)初期化されることはありませんが、00401040にあるプロシージャ(nullsub_1)はデータを使用しませんか?私は正しい評価をしていますか、それとも何かが足りませんか?Visual C++6/2005を使用してCコードをコンパイルしました。
reverse-engineering - IDA Proで配列の要素のサイズを設定するにはどうすればよいですか?
IDA Proで配列の要素のサイズを設定するにはどうすればよいですか?DWORDの配列が必要な構造を作成しています。ただし、デフォルトはバイトです。
IDAPro6.1を使用しています
c# - これらの文字列を復号化できません
前文
私は、作者がずっといなくなったプログラムを逆アセンブルしてリバースエンジニアリングしようとしています。このプログラムは、私が他の場所ではまだ見つけていないいくつかのユニークな機能を提供します...私はプログラムをリバースエンジニアリングすることに興味があり、興味をそそられます。別のプログラムを探すのを手伝ってくれるだけなら...気にしないでください。
問題
IDA Pro w / Hex-Rays Decompilerを使用して、リバースエンジニアリングを高速化するために、中途半端な疑似コードを取得しています。私が物事をスピードアップするのに役立つと思う1つの大きなことは、文字列が何を意味するかを理解することです。これまでのところ、これは4文字を超える文字列について私が見つけたものです。
3文字の文字列の同様の擬似コードを調べ、型情報にHex-Raysホバーオーバーを使用することから、これを理解する方法は次のとおりです。
- runtimeVersionはconstwcharです
- これは、Unicode文字(UTF-16)を持っていることを意味します
- 文字列はメモリに埋め込まれていますが、この場合、弱く暗号化されています(XOR?)
上記の擬似コードは、定数「882」が文字列ごとに異なることを除いて、すべての大きな文字列で同じです。これは、文字列を1つずつ検索し、それらを一意に「暗号化」する、ある種のコンパイル時の暗号化またはマクロであると想定しています。ただし、問題は、擬似コードを複製しても適切な文字列を取得できないように見えることです。これが私がC#で持っているものです:
'rawCharacters'はushort配列です。私はそれらのdwordエントリのそれぞれを半分に分割し、それぞれをushortとして扱います。それらを下から上に向かって配列に配置します...したがって、runtimeVersion [0]に割り当てられた値が最初に配列に追加され、次にdword_131893Eからの値、次にdword_1318942などに追加されます。
ここで何が欠けているのかわかりません。これは非常に単純なため、文字列を逆にして回復するのは簡単なようですが、擬似コードから実際のコードへの変換に困惑しています。
考え?
c++ - 実行中のプログラムをデバッグせずに、オブジェクトのメモリ レイアウトを把握しますか?
プログラムのリバースエンジニアリングに取り組んでいます。IDA Pro と Hex-Rays Decompiler を使用しています。オブジェクトがあり、オブジェクトにメソッド呼び出しがあることを知っているコードのチャンクに直面していますが、それは私が理解できない方法で示されています。例えば:
ここで、interfacePtr が ICLRRuntimeHost オブジェクトを指していることがわかります。(C++、.NET CLR ランタイム) しかし.... *(*interfacePtr + 24) に何があるかわかりません。メソッドであることがわかりますが、+24 にあるものをどのように把握すればよいでしょうか?
ida - IDA 5.0 のアセンブリ言語を変更する
アセンブリ言語を IDA 5.0 の AT&T 構文に設定することはできますか? ありがとう
assembly - 16進エディタで命令を変更するにはどうすればよいですか?
リバース エンジニアリングをいじっていますが、16 進エディターで jnz を jz に変更する方法がわかりません。システムによって異なることは理解していますが、この情報をどこで見つければよいかわかりません。私は Mac OS X 64 ビットで作業しており、IDA Pro でコードを逆アセンブルしました。
assembly - x86 MOV 構文について
これは簡単に (おそらくばかばかしいほど簡単に) 答えられる質問だと思いますが、ほぼ 2 時間 Google を検索した後、私は三振になりました。私の問題は、構文が何をしているのか理解していないためだと確信しています。
IDA で逆アセンブルされたコードを見ていますが、次のコードが何をしているのかわかりません。
にジャンプすると、値が であることがbyte_404580
わかります。しかし、これがどのように使用されているかわかりません。.data:00404580 byte_404580 db 69h
0x69
このコードが表示されるコンテキストを提供しましょう。
EAX
最初は 0x73 である上記の仮定では、 DL
=0x76 が得られます。パターンを見つけるために の値を変えてみましたEAX
が、何が起こっているのかわかりませんでした。