Pahelp naman po kung paano po gawin yung pag compare ng installed application hash dun sa text file(database) na naglalaman po ng mga original hash ng isang application. and madedeclare nya po yun as malware pag hindi po sila equal po. Thank you po
public String getAppHash(String packageName) throws NoSuchAlgorithmException {
PackageInfo packageInfo = getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
byte[] signature = packageInfo.signatures[0].toByteArray();
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(signature);
byte[] digest = md.digest();
return Base64.encodeToString(digest, Base64.NO_WRAP);
}
public boolean compareHash(String hash) throws IOException {
InputStream is = getResources().openRawResource(R.raw.original_app_hashes);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
if (line.trim().equals(hash)) {
return true; // Nagmatch ang hash.
}
}
return false; // Hindi nagmatch ang hash.
}
public void declareAppAsMalware() {
// Ilalagay dito ang code para ideklara ang app bilang malware.
}
declareAppAsMalware()
function kung hindi magkakatugma ang installed application hash at orihinal na hash ng application. and pag nag equal madedeclare as safeMagandang araw! Para maipatupad ang paghahanap ng hash ng installed application at pagkumpara sa isang text file na naglalaman ng mga orihinal na hash ng isang application, maaari kang gumamit ng sumusunod na mga hakbang:
1. Kunin ang hash ng mga installed application sa device gamit ang sumusunod na code:
Java:public String getAppHash(String packageName) throws NoSuchAlgorithmException { PackageInfo packageInfo = getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES); byte[] signature = packageInfo.signatures[0].toByteArray(); MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(signature); byte[] digest = md.digest(); return Base64.encodeToString(digest, Base64.NO_WRAP); }
2. Gawin ang paghahanap ng hash ng orihinal na application sa text file na may mga nakalista na mga hash ng application.
Maaari kang gumamit ng FileReader at BufferedReader upang mabasa ang mga linya ng text file at hanapin ang hash ng orihinal na application tulad ng sumusunod na code:
Java:public boolean compareHash(String hash) throws IOException { InputStream is = getResources().openRawResource(R.raw.original_app_hashes); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; while ((line = br.readLine()) != null) { if (line.trim().equals(hash)) { return true; // Nagmatch ang hash. } } return false; // Hindi nagmatch ang hash. }
3. Matapos makakuha ng hash ng installed application at makumpara ito sa mga orihinal na hash, maaari kang magdeklara ng app bilang malware kung hindi sila pareho.
Maaaring gamitin ang sumusunod na code para sa module na nagdedeklara ng app bilang malware:
Java:public void declareAppAsMalware() { // Ilalagay dito ang code para ideklara ang app bilang malware. }
Kailangan mo lamang tawagan angdeclareAppAsMalware()
function kung hindi magkakatugma ang installed application hash at orihinal na hash ng application.
Sana ay nakatulong ito sa iyo!
Kung magkakatugma naman ang hash ng installed application at orihinal na hash ng application, hindi mo na kailangan ideklara itong malware dahil ito ay considered safe. Ngunit, maaari kang maglagay ng ibang mga hakbang upang masigurong ligtas at hindi ito malware.and pag nag equal madedeclare as safe
public void checkAppPermissions(String packageName) {
try {
PackageInfo packageInfo = getPackageManager().getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
String[] requestedPermissions = packageInfo.requestedPermissions;
if (requestedPermissions != null) {
for (String permission : requestedPermissions) {
Log.d("Permissions", permission);
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}