私は、自分のデバイスにPHA(潜在的に有害なアプリケーション)がインストールされていると(他のSafetyNetデータのなかから)ユーザーに報告するAndroidアプリを作成しています。Testing SafetyNetClient.listHarmfulApps()
私はSafetyNet Verify Apps APIを使用しています。 isVerifyAppsEnabled()
への私の呼び出しは正常に動作していますが、listHarmfulApps()
への呼び出しは何も起こりません。
両方が構文上同じであるので、私は私のコードがOKであると考えていますが、ここではそれはとにかく、次のとおりです。
SafetyNetClient safetyNetClient = SafetyNet.getClient(this.getContext());
safetyNetClient.listHarmfulApps()
.addOnCompleteListener(new OnCompleteListener<SafetyNetApi.HarmfulAppsResponse>() {
@Override
public void onComplete(@NonNull Task<SafetyNetApi.HarmfulAppsResponse> task) {
Log.d("FragmentSafetyNet", "Received listHarmfulApps() result");
if (task.isSuccessful()) {
SafetyNetApi.HarmfulAppsResponse result = task.getResult();
List<HarmfulAppsData> appList = result.getHarmfulAppsList();
if (appList.isEmpty()) {
Log.d("FragmentSafetyNet", "There are no known potentially harmful apps installed.");
} else {
Log.e("FragmentSafetyNet", "Potentially harmful apps are installed!");
for (HarmfulAppsData harmfulApp : appList) {
Log.e("FragmentSafetyNet", "Information about a harmful app:");
Log.e("FragmentSafetyNet", " APK: " + harmfulApp.apkPackageName);
Log.e("FragmentSafetyNet", " SHA-256: " + harmfulApp.apkSha256);
Log.e("FragmentSafetyNet", " Category: " + harmfulApp.apkCategory);
}
}
} else {
Log.d("FragmentSafetyNet", "An error occurred. " +
"Call isVerifyAppsEnabled() to ensure " +
"that the user has consented.");
}
}
})
.addOnSuccessListener(new OnSuccessListener<SafetyNetApi.HarmfulAppsResponse>() {
@Override
public void onSuccess(SafetyNetApi.HarmfulAppsResponse harmfulAppsResponse) {
Log.d("listHarmfulApps()", "Sucess! Received listHarmfulApps() result");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e("listHarmfulApps()", "Error: " + e.getMessage());
}
});
本当にコードにあまりありません:それは基本的に適応Google's page上のコードでありますGMS 11.0.2で新しいAPI呼び出しを使用してください(前述の例では廃止された呼び出しをすべて使用しています)が、全く機能していません。リスナーのどれも起動されていません。
私は何かを混乱させるか、単に私がテストしているデバイスにPHAがないだけです。
私の3つの質問
1)私のコードは正しいですか?
2)私がインストールできるPHAは、ブラックリストに載せられ、リストに表示されますが、実際には有害ではありません。 (アンチウイルスソフトウェアのテストに使用されたEICARウイルスのような)。
3)最後に、(1)と(2)が不可能な場合、インストールできるPHAはありますか?この場合、私は後で拭いてくれる根ったエミュレータのように、制御された使い捨ての環境を使用します。
ありがとうございます。この問題の結果に興味のある人のための
マルウェアを取得するために使用したウェブサイトの一部を共有できますか?さらに重要なことに、マルウェアがSafetyNet APIをトリガーし、APIがそれらのAPKを有害なものとしてリストアップしましたか? – Tyson
こんにちは@Tyson、私はStackOverflowでここに投稿することはできませんが、私は見つけるのは難しいですね。 Gmailのドットコムを自分のユーザー名に追加して、私と連絡を取ってください。 – AlxDroidDev
いくつかのマルウェアアプリケーションが見つかりました。 Apps APIを検証すると、そのアプリがマルウェアであることが識別され、VerifyAppsConstant intが返されます。私はこのアプリについてもっと知りたいと思います。例えば、 'x'マルウェアが自分の写真をサードパーティのサーバーに送っているなら、それについて具体的に説明したいと思います。現在、私のデータは共有されていると言えますが、どのような種類のデータが共有されているのか分かりません。どのように私はウイルス 'x'の詳細を取得することができますか? – Tyson