דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. אנדרואיד - כללי
  3. עזרה הדדית - אנדרואיד
  4. שיתוף | הנדסה לאחור של אפליקצייה זדונית

שיתוף | הנדסה לאחור של אפליקצייה זדונית

מתוזמן נעוץ נעול הועבר עזרה הדדית - אנדרואיד
25 פוסטים 10 כותבים 511 צפיות 18 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א אפרים ד

    @cfopuser מה קשור so ל jadex?

    cfopuserC מנותק
    cfopuserC מנותק
    cfopuser
    כתב נערך לאחרונה על ידי
    #21

    @אפרים-ד בדיוק שזה לא קשור זה bytecode זה בינארי,
    יש אימוג'י ליד המשפט🙂.

    מתכנת חובבמ תגובה 1 תגובה אחרונה
    1
    • cfopuserC cfopuser

      @מישהו12 לא משנה איך הוא יצפין ויערפל את הקוד שלו (והוא לא)
      בסוף הוא יצטרך לקרוא לapi של אנדרואיד כדי לקרוא את הsms וכו'

      חיפוש מהיר בjadx ואתה שם.

      לגבי הדומיין זה חברה שאתה שם את פרטיה בשביל לשמור על אנונימיות זה לא משנה בהרבה,
      זה שם פיקטיבי בוודאות די גבוהה, אם אתה רוצה לעצור את ההתקפה הפתרון היחיד
      זה להתלונן לחברה (namecheap) שיחסמו את הדומיין.

      בתכלס אפשר גם לתקוף את האתר אבל זה פחות סביר😉

      מישהו12מ מנותק
      מישהו12מ מנותק
      מישהו12
      מדריכים
      כתב נערך לאחרונה על ידי
      #22

      @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
      

      הבלוג שלי
      https://aiv-dev.com/he-IL/

      cfopuserC תגובה 1 תגובה אחרונה
      0
      • cfopuserC cfopuser

        @אפרים-ד בדיוק שזה לא קשור זה bytecode זה בינארי,
        יש אימוג'י ליד המשפט🙂.

        מתכנת חובבמ מנותק
        מתכנת חובבמ מנותק
        מתכנת חובב
        מדריכים
        כתב נערך לאחרונה על ידי
        #23

        @cfopuser
        bytecode זה לא בדיוק בינארי רגיל וגם בו אפשר לחפש מחרוזות אם כי במקרה שהוא בונה אותם בזמן ריצה אז צריך ניתוח דינאמי ולא יודע איך זה מתבצע באנדרואיד
        בכל אופן היום קצר והמלאכה מרובה
        נראה אם ישאר לי מה לתרום מחר...

        צריך עזרה בשחזור מידע? ייעוץ? egozkokus1@gmail.com

        תגובה 1 תגובה אחרונה
        0
        • מישהו12מ מישהו12

          @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
          
          cfopuserC מנותק
          cfopuserC מנותק
          cfopuser
          כתב נערך לאחרונה על ידי
          #24

          @מישהו12 או שהמפתח התעצל או שהו מנסה לשמור על איזון בין יותר מידי להצפין ובין לגלות יותר מידי
          (מבחינת אנטי וירוסים עיין ערך virustotal לא מזהה את הקובץ)

          אחרת אני לא מבין למה חלק מהפונקציות מוצפנות וחלק לא

          בתכלס אין פה איזה פרצה זה פשוט מתקפת פישינג פשוטה.

          תגובה 1 תגובה אחרונה
          0
          • מישהו12מ מנותק
            מישהו12מ מנותק
            מישהו12
            מדריכים
            כתב נערך לאחרונה על ידי מישהו12
            #25

            הAPK הראשי חתום על ידי מפתח כביכול של אנדרואיד:
            cbb26599-7189-49d5-8099-582011b7e858-image.png
            כלומר, לא נותן לנו שום מידע.

            אבל בumgdn נראה שהוא היה פחות זהיר... יש פה כבר מידע אישי על אדם לכאורה.
            69622bbd-9f92-4cd0-8bc1-4d503059e97b-image.png

            מעניין.

            אם כי כמובן יכול להיות שאלו פרטים מפוברקים, ושדה הstate והcountry כאן סותרים.

            הבלוג שלי
            https://aiv-dev.com/he-IL/

            תגובה 1 תגובה אחרונה
            0

            • התחברות

            • אין לך חשבון עדיין? הרשמה

            • התחברו או הירשמו כדי לחפש.
            • פוסט ראשון
              פוסט אחרון
            0
            • חוקי הפורום
            • פופולרי
            • לא נפתר
            • משתמשים
            • חיפוש גוגל בפורום
            • צור קשר