PreEmptive Protection™ DashO™ は、フックを検出するために、Android アプリケーションまたはライブラリにチェックを差し込むことができます。 フック チェックとレスポンスの構成は、Checks - Hook パネルを使って、またはコード アノテーションを追加することにより行います。
フック チェック
フックを検出するには、アプリケーション内の 1 つ以上のメソッドに HookCheck を設定します。 DashO はいくつかのランタイム フック チェックを実行するコードを追加します。 このチェックは、概要の説明に従って構成できます。
アプリケーションには、さまざまな用途の HookCheck をさまざまな構成で含めることができます。 複数のチェックを使用したり、レスポンスを混合したりすることにより、アタッカーの侵入を妨げられるでしょう。
private static boolean hookedFlag;
@HookCheck(action="@hookedFlag")
public void onCreate(Bundle check){
}
@HookCheck(response=ResponseType.Hang)
private int computeResult(){
}
メモ: Android のフック チェックは、アプリケーションのコンテキストへのアクセスを必要とし、チェックが差し込まれるクラスに
getApplicationContext()メソッドの存在が必要です。android.app.Activity、android.app.Application、android.app.Serviceのようなandroid.context.Contextを拡張するクラスは、getApplicationContext()を継承するので、追加の変更は不要です。 そうでない場合は、getApplicationContext()メソッドを追加して、適切なContextが返されることを確認してください。
フック レスポンス
HookResponse アノテーションは、HookCheck と情報をやり取りします。 このレスポンスは、概要の説明に従って構成できます。
private static boolean hookedFlag;
@HookCheck(action="@hookedFlag")
public void onCreate(Bundle state){
}
@HookResponse(source="@hookedFlag", response=ResponseType.Exit, probability=0.05f)
private int computeResult(){
}
@HookResponse(source="@hookedFlag", response=ResponseType.Error, probability=0.1f)
private FileInputStream readInput(){
}