Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment décrypter un fichier crypt12

fichier de base de données de whatsapp!!!!!!

9 mars 2017 à 16:18:02

Salut tous le monde,

Je besoin le whatsapp databases,  mais comme vous connaissez bien que  la base de données de whatsapp enregistré automatiquement dans le téléphone est crypté, j'ai cherché beaucoup dans l'internet comment le décrypté mais rien trouvé clair.

j'ai trouve le programme ci-dessous, il n'est pas exécutable car le fichier key qui contient le  keyfile n'existe pas dans le téléphone

si quelqu'un a des idées SVP aide moi !!!

I need a help :(

package com.parse.starter;

import android.util.Log;

import org.spongycastle.jce.provider.BouncyCastleProvider;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.Provider;
import java.security.Security;
import java.util.zip.Inflater;
import java.util.zip.InflaterInputStream;

import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

/**
 * Created by Mansouri_hana on 07/03/2017.
 */
public class decrypt {
    public  void  dec(String input,String output) {
        //String crypt12File    = "msgstore.db.crypt12";      // input file
        String crypt12FileEnc = "storage/emulated/0/WhatsApp/Databases/msgstore.db.crypt12.enc";  // encrypted file with header and footer stripped
        String decryptedZlibFile = "storage/emulated/0/WhatsApp/Databases/msgstore.db.zlib";      // zlib output file
       // String decryptedDbFile = "msgstore.db";             // sqlite3 db output file
        String keyFile = "storage/emulated/0/WhatsApp/Databases/key";

        byte[] keyData = new byte[158];

        byte[] aesK = new byte[32];
        byte[] aesIV = new byte[16];
        byte[] crypt12Header = new byte[67];
        byte[] buffer = new byte[8192];
        int read;

        BufferedInputStream is;
        FileOutputStream raf;
        FileOutputStream os;
        CipherInputStream isCipher;
        Cipher cipher;

        try {
            Security.insertProviderAt((Provider) new BouncyCastleProvider(), 1);

           // Log.e("e","%n");
           // Log.e("e", "whatsapp crypt12 decryption tool - http://www.digitalinternals.com/security/decrypt-whatsapp-crypt12-database-messages/559/%n%n");

            // get K
           is = new BufferedInputStream(new FileInputStream(keyFile));
            is.read(keyData);
            System.arraycopy(keyData, 126, aesK, 0, 32);
            is.close();/**/

            // get IV
            is = new BufferedInputStream(new FileInputStream(input));
            is.read(crypt12Header);
            System.arraycopy(crypt12Header, 51, aesIV, 0, 16);
            is.close();

            //System.out.println("K:" +Arrays.toString(aesK));
            //System.out.println("IV:"+Arrays.toString(aesIV));
            Log.e("e", "K:" + ListToHex(aesK));
            Log.e("e", "IV:" + ListToHex(aesIV));

            // create enc file by stripping header and footer
            Log.e("e", "creating encrypted file with header/footer stripped: %s%n");
            is = new BufferedInputStream(new FileInputStream(input));  // read msgstore.db.crypt12
            is.skip(67);    // 67 byte header
            int available = is.available();
            raf = new FileOutputStream(new File(crypt12FileEnc));

            while((read=is.read(buffer))!=-1) {
                raf.write(buffer, 0, read);
            }
            //raf.setLength(available - 20);  // 20 byte footer
            raf.close();
            // create zlib output file
            Log.e("e", "creating zlib output file: %s%n");
            is = new BufferedInputStream(new FileInputStream(crypt12FileEnc));
            cipher = Cipher.getInstance("AES/CFB8/NoPadding", "SC");
            cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(aesK, "AES"), new IvParameterSpec(aesIV));
            isCipher = new CipherInputStream(is, cipher);
            os = new FileOutputStream(decryptedZlibFile);
            while((read=isCipher.read(buffer))!=-1) {
                Log.e("e", "Looopppp!!!");
                os.write(buffer, 0, read);

            }
            Log.e("e", "fiiiinnnn!!!");
            os.close();
            //is.close();
            isCipher.close();


            // create sqlite3 db output file
            Log.e("e", "creating sqlite3 output file: %s%n");
            is = new BufferedInputStream(new FileInputStream(crypt12FileEnc));
            cipher = Cipher.getInstance("AES/CFB8/NoPadding", "SC");
            Log.e("e", "11111");
            cipher.init(2, new SecretKeySpec(aesK, "AES"), new IvParameterSpec(aesIV));
            isCipher = new CipherInputStream(is, cipher);
            Log.e("e", "22");
            InflaterInputStream isInflater = new InflaterInputStream(isCipher, new Inflater(true),200);
            Log.e("e", "333");
            os = new FileOutputStream(output);
            Log.e("e", "444");
            while((read=isInflater.read(buffer))!=-1) {

                os.write(buffer, 0, read);

            }
            Log.e("e", "hiiii33333");
            os.close();
            is.close();
        }
        catch (Exception e) {
            Log.e("err", "exception:" + e.getMessage());
            e.printStackTrace();
        }

        Log.e("e", "%n");
    }


    // from iglogger - https://github.com/intrepidusgroup/IGLogger/blob/master/iglogger.java
    // to dump K and IV to screen as hex strings
    public static String ListToHex(byte[] data){
        String string = "";
        for (int i=0;i<data.length;i++) {
            byte b = data[i];
            StringBuffer s = new StringBuffer(Integer.toHexString((b >= 0) ? b : 256 + b));
            if(s.length() == 1) s.insert(0,'0');
            string = string + s;
        }
        return string;
    }
}

  • Partager sur Facebook
  • Partager sur Twitter
9 mars 2017 à 20:15:10

Meme moi ça m'interes person pour lui repondre??????

  • Partager sur Facebook
  • Partager sur Twitter
10 mars 2017 à 11:16:57

J'ai cherché sur internet, je dois faire access root dans mon téléphone pour trouver le fichier key qui existe dans l'emplacement suivante data/data/wom.whatsapp/files/key mais cet emplacement on peut l'accéder que entant que root.

Donc la question qui se pose comment rooter le system android de mon téléphone???

-
Edité par HanaHino 10 mars 2017 à 11:21:46

  • Partager sur Facebook
  • Partager sur Twitter
10 mars 2017 à 12:47:07

Esque tu veux que la meme application te permet de router ?si ça je ne sais pas mai ,mais il ya une sympa application qui root ,tu peux telecharger et rooter ton mobile avant d'utuliser ton mobile c'eeeeees"KINGROOT"il te suffit de le telecharger et de suivre l'installation!!mais je trouve que sa serait plus puissans si ton application lui meme pouras rooter le telephone,et je vaudrai savoir si c'est possible de lire tous les message whatapp et les stocker quelque par et pouvoir meme ecrire grace a une application?

  • Partager sur Facebook
  • Partager sur Twitter
15 mars 2017 à 11:31:07

Bonjour,

Est-ce-que on peut décrypter la base de données de whatsapp sans l'accès root, car je trouve des problèmes pour faire l'accès root 

donc je veux décrypter la base de données de whatsapp sans Keyfile,

est-ce-que ce possible?????? 

  • Partager sur Facebook
  • Partager sur Twitter
15 mars 2017 à 16:06:19

Non, ce n'est pas possible sans la clé (qui ne peut être obtenue par programmation qu'en étant root). C'est volontairement difficile à déchiffrer pour protéger les conversations de l'utilisateur.
  • Partager sur Facebook
  • Partager sur Twitter
16 mars 2017 à 14:43:05

Bahh ok,

J'ai une autre question, si possible repend moi SVP, puis que on peut pas les lire sans clé danc je veux lire ( afficher) les messages de whatsapp d'un certain compte dans une application web puis je l’enregistrent dans parse server?

et merci d'avance 

:)

  • Partager sur Facebook
  • Partager sur Twitter
16 juin 2017 à 16:31:33

Hello, ayant restaurer mon ancien téléphone que j'avais laissé a ma femme, un divorce en cours, j'ai restauré les conversations et autres fichiers log.
Mon avocate me demande de voir de mon coté pour decrypter ces fichiers afin qu'ils soient recevable devant le juge durant le divorce pour faute.
Merci de votre aide.
  • Partager sur Facebook
  • Partager sur Twitter
23 janvier 2020 à 2:53:44

Comment décrypter un fichier crypt12 sans avoir trouver le key ds le telephone ? merci

y a t il  une application complete qui fait tout ?

  • Partager sur Facebook
  • Partager sur Twitter
23 janvier 2020 à 13:53:20

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter