-
06.02.2013, 15:02 #1
[KnuddelsApp] Informationspool
Hey,
hier bitte ausschließlich Informationen zu der App posten, sprich zum Aufbau/Obfuscation etc.pp.
Obfuscation
Die App wurde scheinbar mit einem ähnlichen Tool (oder dem selben) obfuscated, wie das eigentliche Chatapplet aus. Die Leserlichkeit ist dadurch leider nicht gegeben. Interessant wären BETA-Test-Apps, da diese vielleicht noch keine Obfuscation hatten.
String-Encryption
Wie das originale Applet auch, wurden Strings verschlüsselt, um die Leserlichkeit zu erschweren. Hierbei wurde allerdings nicht auf eine seperate Encryption-Datei (wie beispielsweise die za.class) zurückgegriffen, sondern auf eine erweiterte XOR-Verschlüsselung.
Auch wenn die APP scheinbar zwei unterschiedliche Methoden aufruft (n.concat und h.copyValueOf), sind diese von der Verschlüsselung her gleich:
PHP-Code:public static String decrypt(String paramString, int paramInt) {
int i = 0;
try {
char[] arrayOfChar = paramString.toCharArray();
int j = arrayOfChar.length;
while (i != j) {
int k = arrayOfChar[i] ^ paramInt & 0x5F;
paramInt++;
int m = i + 1;
arrayOfChar[i] = ((char) k);
i = m;
}
String str = String.valueOf(arrayOfChar, 0, j).intern();
return str;
} catch (Exception x) {
return null;
}
}
Einstiegsklasse
Die b Klasse ist die Einstiegsklasse. Dies lässt sich daran erkennen, dass diese von Application erbt
KnuddelsCache
Klasse (ni), die Bildinformationen etc. speichert und cached!
SQLite-Helper
Die v9-Klasse ist der SQLiteOpenHelper (extends SQLiteOpenHelper)
Notifikations-Manager
Die Klasse "ah" regelt alles bzgl. der Notifikationen:
PHP-Code:public static final String c = "pushConfig";
public static final String k = "NotificationState";
Die j Klasse ist das Loginpanel, erkennbar an folgender Zeile:
PHP-Code:super.d(paramBundle, 2130903044, 2131230737, "knuddels_Android_login_ma-top-5");
Eine der wohl interessantesten Klassen ist die sogenannte "KnuddelsConnection" (so wird sie von Knuddels genannt), die sich derzeit unter dem Namen x2 versteckt.
private final void d() => Initialisierer (u.a. Socket etc.)
private final boolean e() => isConnected()-Methode. Gibt an, ob die APP zum Knuddelsserver verbunden ist.
private final void i(final ig paramig, final boolean paramBoolean) => (Login?)
private final void y(byte[] paramArrayOfByte) => Sendet ein Byte-Array an den Knuddelsserver
private final void z() => Schließt die Verbindung/Reset
Knuddelscode-Parser
yv ist für den Knuddelscode verantwortlich ("#","°>",...)
Datenbank-Handler
a8 ist für die Datenbank verantwortlich:
PHP-Code:@DatabaseTable(tableName="thread")
@DatabaseField(columnName="message")
Zusätzliche Infos
Die App scheint eine Cryptographie-Klasse/Methode zu verwenden, worauf das
PHP-Code:this.b.log(Level.INFO, "Init Crypto");
u(this.v, localpq, new byte[] { 6 });
this.b.log(Level.INFO, "CheckProtocol");
Vermutungen
BigInteger localBigInteger = ur.b(System.currentTimeMillis() ^ new Random().nextLong());
wird an den Server gesendet. Hat dieses etwas mit der Encryption zu tun?
Der BigInteger scheint das "normale" ByteArray zu sein - sprich in diesem scheinen die Daten gespeichert zu werden, die später gesendet werden sollen.Geändert von Mentos (06.02.2013 um 17:03 Uhr)
„Es sind nicht unsere Fähigkeiten, die zeigen, wer wir wirklich sind, es sind unsere Entscheidungen.“
- Albus Dumbledore, Harry Potter 2
/guestchat registerGuest
Ähnliche Themen
-
!! KnuddelsApp Speichert Passwörter unverschlüelt !!
Von Chrissy im Forum Knuddels AllgemeinAntworten: 5Letzter Beitrag: 30.08.2013, 15:23
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.