問題タブ [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.

0 投票する
4 に答える
2669 参照

c++ - ここで何が起こっているか: v5 = *(_Byte *)(this + 4)?

IDA pro からのコード ダンプを見ています。このレイアウトとして次の機能があります。

私が本当に興味を持っているのは、「+ 4」が正確に何をしているのかということです。これは追加ですか、それとも何か他のものですか?

ありがとう

0 投票する
2 に答える
5395 参照

reverse-engineering - IDA プロ: unknown_libname_x 関数に署名を適用しますか?

署名を適用するとき、IDA pro はいくつかの関数に unknown_libname_x という名前を付けます。これらの関数は、IDA が十分な詳細を持っていないライブラリ関数を反映しています。ただし、多くの場合、他の署名にはそのような関数に関するより多くの情報が含まれている可能性があるため、最初の署名の後にそれらの署名が適用される場合、IDA にすべての unknown_libname_x 関数にも適用してもらいたいのですが、これは可能ですか? IDAは、以前に適用された署名またはあなたが触れていない関数にのみ署名を適用するようです。

率直に言って、IDA がデフォルトでこれを行わない理由がわかりません。署名 y が特定の関数について x よりも多くの情報を持っている場合、x が提供した情報を y に上書き/追加することは些細なことのように思えます。

0 投票する
2 に答える
640 参照

c++ - IDA Pro、QT Nokia Library、dll 呼び出し、実際に何をしているのか?

IDA Pro を使用して dll をリバースしました。IDA によって生成された疑似コードを見ると、QT ライブラリへの一連の呼び出しに興味があります。関数を呼び出せるように、関数の場所を見つけようとしていますか? 何が起こっているのかを繰り返してみたいのですが、IDA によって生成されたコードに少し混乱しています。本当に必要なものについて、誰かが私にいくつかの指針を与えることができますか? 関数呼び出しを定義するときの「this」の使用に特に興味があります。これが何を意味するのかよくわからないからです。ありがとう。

0 投票する
1 に答える
2087 参照

c++ - IDAプロの「this」キーワード

IDAプロの疑似c++コードでの「this」キーワードの正確な意味は何でしょうか。

関数呼び出しがあるとしましょう:

この関数を呼び出すもの:

さて、関数では、ドキュメントによると、オブジェクトを呼び出すために使用されるオブジェクトへのポインタである「intthis」の定義を見ることができます。私が疑問に思っているのは、関数を書き直して、同じように動作するが、「this」パラメーターを渡す必要がないようにする方法です。

0 投票する
1 に答える
1040 参照

c++ - MFC .dll、CString の問題、IDA c++ 疑似コード、どれくらい近いですか?

私はいくつかの IDA 疑似 C++ コードを持っていますが、どれくらい近いのか疑問に思っていました...

台詞:

逆コンパイルされた .dll は CString を使用するため、MFC ベースの dll であると想定しました。ドキュメントを読んで、CString がすぐに利用できるようになると思いました。ただし、エラー Error 1 error C2665: 'ATL::CStringT::CStringT' : none of the 17 overloads could convert the all argument types? が表示されます。

MakeLower と Find でも同様のエラーが発生します。これは、私が読んだことによると、標準の CString 関数なので、どこが間違っているのでしょうか?

また、#include ヘッダーを使用して非 mfc ベースの .dll で CString クラスを使用できるはずですが、同じエラー 1 エラー C2039: 'CString' : is not a member of 'ATL:: が発生します。 CStringT' では、どうすれば使用できますか?

ありがとう。

0 投票する
4 に答える
4114 参照

python - 手による C++ 名マングリング

プラグインを使用して、Python でIDA Pro逆アセンブラーのスクリプトを作成しています。idapythonこれを使用して、IDA の自動分析が不足しているギャップを埋めることができます。

私が困惑した領域の 1 つは、(より適切な用語が必要なため) 「きれいな名前」を使用して場所/機能に名前を付けることです。私が意味することの例を以下に示します。

IDAプリティネームのサンプルスクリーンショット

idapythonIDA Pro自体では、基本的なCっぽい関数名しか入力できません。許可されていない記号 (スコープ解決演算子など) を入力すると、アンダースコアに置き換えられます。ただし、マングルされた名前 (例: ) を手で入力すると__ZN9IOService15powerChangeDoneEm、IDA Proこれを整形してくれます。

したがって、私の質問:パススルーするマングルされた名前を生成するにはどうすればよいidapythonですか? 利用可能な名前マングリング ライブラリはありますか? Pythonで利用できますか? マングリング機能を取り除き、g++それを回避する唯一の希望はありますか?

0 投票する
1 に答える
1959 参照

ida - IDA pro リバース エンジニアリング -- 文字列条件

IDA pro を使用してパッカーでトロイの木馬をリバースしていますが、トロイの木馬が winrar でトロイの木馬をデパックすることで、いくつかのファイル (実際には 2 つのファイル) をアンパックすることがわかりました。今、私は実際に何が起こっているのかを見たいと思い、IDA pro を使用して逆アセンブルしようとしましたが、文字列で分析すると、解凍されたファイル名が見つかりません。スタック、そしてIDA proで条件を設定する方法を考えています.1つのレジスタに文字列が含まれている場合、たとえば%eax = string(whatever string)の場合に発生します。

ご協力いただきありがとうございます

0 投票する
2 に答える
1226 参照

powerpc - PPC とは何ですか? また、その意味は何ですか?

誰もが PPC について話し続けていますが、私はそれが何であるかを知りません。PPC には複数の用語があることは知っていますが、これは Ida などと呼ばれるプログラムに関連していることは知っています。では、PPC とは何の略ですか。それはどういう意味ですか/何をしますか? どこでそれについて学ぶことができますか?

0 投票する
3 に答える
8709 参照

com - IDA Pro で、構造体フィールドを .data セグメントで定義されている vtable にオフセットすることはできますか?

これが私が達成したいことです。クラス データを格納する構造体として定義したクラスを特定しました。クラスのメソッドの 1 つは、class-field を vtable へのポインタであるかのように使用します。

ご覧のとおり、vtable から 3 番目の関数を呼び出します。実行時に、vtable_40194AE0 が次のような .data セクションの配列を指していることを確認しました

vtable_40194AE0 が常に 0x40194AE0 の vtable を指していることを何らかの方法で IDA に伝える方法はありますか?

?

構造体の vtable_40194AE0 を「ユーザー定義のオフセット」に設定しようとしましたが、役に立ちません:(

どうもありがとう !

0 投票する
3 に答える
34375 参照

assembly - IDA pro asm の指示の変更

IDA ビュー A で asm 命令を変更する方法を知りたいだけです。

  1. 命令を編集する方法 (例: jnz から jmp)?
  2. 新しい命令を挿入する方法 (既存のコードに挿入された func1 の呼び出し、func2 の呼び出し)?

dif ファイルの作成方法と DLL に変更を適用する方法は知っていますが、どうすれば「違いを生む」ことができますか? IDA でコードを編集するにはどうすればよいですか?

DLL を変更する方法を学びました。

  1. コードを変更する (どのように?)
  2. 差分ファイルを生成します。
  3. 差分ファイルとスクリプトを使用して、コードの変更を DLL に適用します。