שיתוף | הנדסה לאחור של אפליקצייה זדונית
-
@מישהו12 לא משנה איך הוא יצפין ויערפל את הקוד שלו (והוא לא)
בסוף הוא יצטרך לקרוא לapi של אנדרואיד כדי לקרוא את הsms וכו'חיפוש מהיר בjadx ואתה שם.
לגבי הדומיין זה חברה שאתה שם את פרטיה בשביל לשמור על אנונימיות זה לא משנה בהרבה,
זה שם פיקטיבי בוודאות די גבוהה, אם אתה רוצה לעצור את ההתקפה הפתרון היחיד
זה להתלונן לחברה (namecheap) שיחסמו את הדומיין.בתכלס אפשר גם לתקוף את האתר אבל זה פחות סביר

@cfopuser כתב בשיתוף | הנדסה לאחור של אפליקצייה זדונית:
חיפוש מהיר בjdax ואתה שם.
חשבתי על הדרך הזו ולא הספקתי לממש אותה, אבל הייתי פסימי, בגלל הקוד באקטיבטי שטוען את הumgdn - שתסתכל עליו, חלק מהקריאות שם לAPI של אנדרואיד מוצפנות ופוענחות רק בזמן ריצה.
למשל כאן:
@Override // java.lang.reflect.InvocationHandler public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method != null && "getPackageInfo".equals(method.getName())) { String str = (String) args[0]; if ((((Number) args[1]).intValue() & 64) != 0 && appPkgName.equals(str)) { PackageInfo packageInfo = (PackageInfo) method.invoke(this.base, args); packageInfo.signatures = new Signature[signatures.length]; System.arraycopy(signatures, 0, packageInfo.signatures, 0, signatures.length); return packageInfo; } } if (method == null || !"getApplicationInfo".equals(method.getName()) || !appPkgName.equals((String) args[0])) { return new String(new byte[]{103, 101, 116, 73, 110, 115, 116, 97, 108, 108, 101, 114, 80, 97, 99, 107, 97, 103, 101, 78, 97, 109, 101}).equals(method.getName()) ? "com.android.vending" : method.invoke(this.base, args); } ApplicationInfo applicationInfo = (ApplicationInfo) method.invoke(this.base, args); File file = this.fileStreamPath; if (file != null) { applicationInfo.sourceDir = file.getPath(); applicationInfo.publicSourceDir = this.fileStreamPath.getPath(); } return applicationInfo; }אז השורה הזו:
new String(new byte[]{103,101,116,73,110,115,116,97,108,108,101,114,80,97,99,107,97,103,101,78,97,109,101})היא בסה"כ
getInstallerPackageName -
@cfopuser כתב בשיתוף | הנדסה לאחור של אפליקצייה זדונית:
חיפוש מהיר בjdax ואתה שם.
חשבתי על הדרך הזו ולא הספקתי לממש אותה, אבל הייתי פסימי, בגלל הקוד באקטיבטי שטוען את הumgdn - שתסתכל עליו, חלק מהקריאות שם לAPI של אנדרואיד מוצפנות ופוענחות רק בזמן ריצה.
למשל כאן:
@Override // java.lang.reflect.InvocationHandler public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method != null && "getPackageInfo".equals(method.getName())) { String str = (String) args[0]; if ((((Number) args[1]).intValue() & 64) != 0 && appPkgName.equals(str)) { PackageInfo packageInfo = (PackageInfo) method.invoke(this.base, args); packageInfo.signatures = new Signature[signatures.length]; System.arraycopy(signatures, 0, packageInfo.signatures, 0, signatures.length); return packageInfo; } } if (method == null || !"getApplicationInfo".equals(method.getName()) || !appPkgName.equals((String) args[0])) { return new String(new byte[]{103, 101, 116, 73, 110, 115, 116, 97, 108, 108, 101, 114, 80, 97, 99, 107, 97, 103, 101, 78, 97, 109, 101}).equals(method.getName()) ? "com.android.vending" : method.invoke(this.base, args); } ApplicationInfo applicationInfo = (ApplicationInfo) method.invoke(this.base, args); File file = this.fileStreamPath; if (file != null) { applicationInfo.sourceDir = file.getPath(); applicationInfo.publicSourceDir = this.fileStreamPath.getPath(); } return applicationInfo; }אז השורה הזו:
new String(new byte[]{103,101,116,73,110,115,116,97,108,108,101,114,80,97,99,107,97,103,101,78,97,109,101})היא בסה"כ
getInstallerPackageName@מישהו12 או שהמפתח התעצל או שהו מנסה לשמור על איזון בין יותר מידי להצפין ובין לגלות יותר מידי
(מבחינת אנטי וירוסים עיין ערך virustotal לא מזהה את הקובץ)אחרת אני לא מבין למה חלק מהפונקציות מוצפנות וחלק לא
בתכלס אין פה איזה פרצה זה פשוט מתקפת פישינג פשוטה.
-
.
