問題タブ [reverse-engineering]
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.
debugging - API呼び出しの監視
リバースエンジニアリングを行っていますが、実行可能ファイルから呼び出されるAPIを知りたいです。私は主に特定のWindowsシステムDLLで呼び出されるAPIに興味があります。
そのための1つの方法は、dumpbinを使用してDLLからすべてのAPIを公開し、WindbgからのすべてのAPIにブレークポイントを設定することだと思います。
他のアプローチはありますか?多くのシステムDLLを監視する必要がある場合、これは多くの時間のように思われます。
ところで、私はWindows XPで作業していて、いくつかのWindowsシステムDLL関数を呼び出す1つの実行可能ファイルを監視したいと思います。
binary - 閉じた形式 (doc や vce など) を分析するにはどうすればよいですか?
.vce フォーマットを勉強したいです。これはバイナリ形式であり、単純なオブジェクトのシリアル化よりも複雑に見えます。バイナリ形式を分析するためのツールまたは手法は存在しますか?
binary - メモリ内の文字列の場所を見つける方法(物理的なオフセットがあります)?
str[possibly n]cmp
敵対的なバイナリファイルから見つける必要があります。問題は、分解に10億ドルあることです。
文字列からの助けがあるからだと私は知っています。'otx'(文字列を挿入する逆アセンブラ)を持たないバイナリを逆アセンブルしています。
プログラムがロードされたら、この文字列のメモリオフセットを見つける方法を知っておく必要があります。そうすれば、gdbなどを使用できます。
あなたが私にアルゴリズムを与えることができれば(私は他の方法を覚えていました:phys off = virtual off * segment adress + segment offset
-またはその効果のための何か)(psはそれは正しいですか?? :))
または、これがida proで非常に簡単である方法を教えていただければ、非常にありがたいです。
ありがとう :)
binary - IDA Pro でバイナリ ファイルを編集 (パッチ) する
ida pro でバイナリ ファイルを編集する方法を知りたいです (命令を 1 つ変更するだけです!)
(その ARM バイナリ)
ありがとう
java - jarファイルからメソッドシグネチャを取得するにはどうすればよいですか?
APIの一部のみのjavadocsに付属するサードパーティのjarファイルがあります。クラスとメソッドの完全なリストを取得するためにjarファイルをリバースエンジニアリングする方法はありますか?
reverse-engineering - 関数への引数はスタックまたはレジスタで渡されますか?
私は現在、アセンブリで作成したプログラムを分析しており、アセンブリ内でコードを移動することを考えていました。引数を1つ取るプロシージャがありますが、それがスタックに渡されるのかレジスタに渡されるのかわかりません。
IDA Proでプログラムを開くと、手順の最初の行は次のようになります。
宣言の上にカーソルを置くと、次のようにも表示されます。
スタック変数を指すと思いますか?
ただし、OllyDbgで同じプログラムを開くと、スタックのこの場所に大きな値があり、渡された可能性のあるパラメーターと矛盾するため、レジスターで渡されたと思います。
誰かが私を正しい方向に向けることができますか?
reverse-engineering - ボタンの押下を偽装するようにプログラムを変更する
私は、(ソース コードなしで) 与えられた MFC アプリケーションを持っています。このアプリケーションは、[更新] ボタンのあるウィンドウを開き、クリックすると非常に長い更新を実行します。
ウィンドウが作成されたとき (または DoModal などの他の場所) にメッセージがプログラムに送信され、ボタンが押されたと認識されるようにプログラムを変更したいと思います。
私はしばらくの間、Ida Pro と OllyDbg でこれをいじっていましたが、役に立ちませんでした。おそらくPumpMessageを使用することを検討しましたが、これは成功しませんでした。
何かアドバイス?
ruby - インスリン ポンプ コントローラから統計データ ファイルをリバース エンジニアリングする
私の意図は確かにそうではありませんが、これはグレー エリアのテーマである場合とそうでない場合があります。そのため、リバース エンジニアリングのトピックについて倫理的な議論を巻き起こすことは意図していません。
私は現在ポンプ療法を受けている1型糖尿病患者です。私はOmniPodユーザーです。これは使い捨てのポッドで、体に密着して 3 日間インスリンを投与します。パーソナル糖尿病マネージャー [PDM] (以下を参照) によって制御され、食事中に投与するインスリンの量、血糖測定値を制御し、外出先で炭水化物をカウントするための食品指数が含まれています。
(ソース: myomnipod.com )
新しい PDM には、データをダウンロードするための USB ポートがあります。このソフトウェアは、Windows ユーザーには無料 (CoPilot と呼ばれるパッケージ) ですが、Mac のサポートはありません。
PDM を Mac に接続すると、他の USB デバイスと同じようにマウントされ、IBF 拡張子が付いた単一のファイルを含む読み取り可能なボリュームが表示されました。重さは16KBです。
私の最初の本能は、それをテキスト エディターに渡すことでした。すると、非常にバイナリに見えるファイルが表示されました。次に、それを文字列に渡し (以下を参照)、16 進エディターで開きました。以下の文字列以外に多くの情報を得ることができませんでしたが; 圧縮形式の詳細などはありません。
このプロセスの次のステップは何ですか? 私は動的言語の専門家なので、Ruby や Python に関するリソースはどれも素晴らしいものです。テスト駆動のリバース エンジニアリング プロセスはありますか?
私が取得しようとしているデータに関する限り、それは私の進捗状況 (インスリン摂取量、血糖測定値、タイムスタンプ) に関するより多くの情報を得るためにチャート化したい情報です。これらはすべて、Windows ソフトウェア パッケージで可能です。
encryption - 暗号化アルゴリズムをリバース エンジニアリングするにはどうすればよいですか?
この方法でテキストを暗号化するアプリケーションを作成しました。
入力テキストを取得する
テキストを反転
16 進数に変換
キーを使用した XOR
Base64 エンコード
さて、私は自分で多くの暗号化/エンコードを行っていないので、私の質問はばかげているように聞こえるかもしれませんが、上記のアルゴリズムのコンテンツを含むファイルを取得し、このアルゴリズムについて知らなかったとしましょう。ガイドライン、原則、従うべきルールはありますか?
私の質問はこれらの 5 つのステップとは関係ありません。これは純粋な例です。
別の例として、A751CD9E1F99 というテキストを取り上げます。これが何を意味するのかを調査するにはどうすればよいでしょうか。