問題タブ [dynamic-analysis]
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.
profiling - 動的命令実行カウントを収集する最も簡単な方法は?
アプリケーションの特定の実行で LLVM ビットコードの各命令が実行された回数を簡単かつ迅速に収集する方法が必要です。私が知る限り、私が取ることができるアプローチはいくつかあります。
PINを使用します。これには、DWARF デバッグ情報と命令デバッグ情報を使用して、バイナリ内の命令をビットコード内の命令にマップする必要があります。これがどれほど正確かは100%わかりません。
llvm-prof を使用します。ここで2つ質問です。まず、スタック オーバーフロー
opt
で呼び出されるオプションを見てきました--insert-edge-profiling
。しかし、そのオプションは 3.6 では利用できないようですか? 第 2 に、このようなプロファイリングでは、個々の命令レベルではなく、関数レベルでのみ実行回数が記録されるようです。あれは正しいですか?AddressSanitizerに似た新しいツールを作成します。これはうまくいくかもしれませんが、やり過ぎのようです。
私が見逃している私の目標を達成するためのより簡単な方法はありますか?
android - Android で詳細なプロセス情報を取得する
プロセスの動的分析を行うアプリを作成します。これを達成するために、電話で実行されているプロセスに関する詳細な統計が必要です。
注:電話をルート化したので、いくつかの制限が削除されました。ここに私の質問があります。プロセス情報を詳細に動的に収集するにはどうすればよいですか? の結果は知っていますがtop
、ps
コマンドは役に立ちますが、それらを呼び出す方法がわかりません。または、ルート化された電話でこれらのコマンドにアクセスできますか?
ロリポップ以来、情報が限られているため
、ウェブを検索しても役に立ちません。ActivityManager.RunningAppProcessInfo
android - Android: Android で実行中のアプリを他のプロセスと区別する
ps
電話のシェルでコマンドを実行しました。問題は、Google Play、Adobe Reader などの通常の電話ユーザーとして実行したアプリケーションに関連するプロセスをどのように区別できるかということです。
私が気づいたように、一部のプロセスはユーザー名の形式で実行され、プロセスの子として実行されますが、バックグラウンド サービスとシステム サービスを含む多くapp_xxx
のプロセスがあります。zygote
アプリリストボタンを押したときに電話が表示するリストのように、それらの短いリストを作成する方法はありますか (現在、実行中のアプリケーションリストにサムネイル付きの 6 つのアプリのみが表示されます)。
ps
adbシェルでの出力は次のとおりです。
windows - System.mapに相当するWindows?
QEMU の Windows VM で動的分析を実行しています。EIP に基づいてゲスト OS 内で現在実行されている機能を調べたいと思います (OS が何をしているかを知りたいだけです)。
Windows用のSystem.mapに相当するものはありますか? Linux で同様のタスクを実行するときは、通常、これを使用します。
私は Windows シンボル パッケージを認識していますが、関数アドレスだけで完全なデバッグ情報は必要ないため、2 つの Windows VM を使用せずにこれを行う方法を見つけようとしています。
現在windows7を使用しています
web-applications - Web アプリケーション用の動的入力ジェネレーター
動的分析を使用して Web アプリケーションを分析します。次に、入力を生成できる入力ジェネレーターが必要です。
これを実現するオープンソースのツールはありますか?
Apollo などの多くの論文を読みましたが、ツールを公開していないようです。
ありがとうございました
android - Android エミュレーターの内部ストレージにファイルを書き込む
電話の内部ストレージにファイルを書き込むアプリを作成しました。実際の Android フォンでテストしたところ、動作しました。また、API 16 Google Nexus 4 を実行している Android Studio エミュレーターでもテストしました。現在、Droidbox のような動的分析ツールを自分のアプリに対して実行しようとしていますが、Droidbox を使用してエミュレーター内でアプリを実行するたびに奇妙なことが起こります。ファイルをまったく作成しないでください。それは私の電話と Android Studio の両方で機能しましたが、Droidbox エミュレーター (/android-sdk-linux/tools/ フォルダーのエミュレーターを使用します) では機能しません。私は間違いなくアクセス許可を含め、適切な Android バージョンを設定しました。Droidbox でファイルを作成できないのはなぜですか?
static-analysis - 動的レポートで静的分析レポートの同等の API を見つける方法は?
静的および動的マルウェア分析の 2 つのレポートがあります。実際には、動的レポートにはない MSVCRT の dll のいくつかの API (_p_commode、_setusermatherr など) が静的レポートに含まれています。動的レポートに同等の API があるかどうかは正確にはわかりません。そして、それらが動的レポートにないのはなぜですか?
java - Java の動的依存関係チェック ツール
Gradle プロジェクトの依存関係階層を分析して最適化するツールを探しています。私はすでにhttps://github.com/wfhartford/gradle-dependency-analyzeを見て、これは Netflix https://github.com/nebula-plugins/gradle-lint-pluginからのものです。どちらも、コンパイルされたクラスの静的分析に基づいて仕事をします。それにもかかわらず、リフレクションに基づくものは静的コード分析ツールを使用して見つけることができないため、インジェクション フレームワークは失敗し、実行中のコードが使用されている間に静的コードが使用していない依存関係の結果が分析によって得られます。
使用できるツールはありますか?単体テストの実行に基づいて、一部のコード カバレッジ ツールが行うようなことを考えています。どんなアイデアでも大歓迎です!
x86 - Pin: 指定された共有ライブラリをインストルメント化します
実行可能ファイルとそれに関連する共有ライブラリに対して簡単なインストルメンテーション タスクを実行し、実行されたすべての命令をメイン ファイルと共有ライブラリに記録しています。
ただし、Pin
必ず投げる
計装中。私は 32 ビット システムで作業しているため、約 3G のメモリ消費量に達するたびに、インストルメンテーション プロセスがクラッシュします。
このプラットフォームには非常に多くの共有ライブラリがあるため、この 32 ビット システムで作業したいと考えています。一方、実際には1つの共有ライブラリにしか興味がないため、メインの実行可能ファイルとその特別なライブラリ内で実行された命令のみを記録する方法を見つけようと考えています.
ただし、それを行うかどうか/どのように行うかはわかりません。インストルメンテーションの前の今、私の設定は次のとおりです。
ご覧のとおり、メインの実行可能ファイルを計測しているかどうかを確認していません。つまり、すべてのライブラリを計測できるはずです。
私のテスト プラットフォームは 32 ビット x86 Ubuntu 14.04 です。また、テスト対象は 32 ビット ELF バイナリ コードです。
私の質問は次のとおりです。私の状況では、メモリ例外を克服するために、関心のあるライブラリのみをインストルメント化するように構成する必要がありますか? もしそうなら、どうすればそれを行うことができますか?