20元現金領取地址:http://jdb.jiudingcapital.com/phone.html
內部邀請碼:C8E245J (不寫邀請碼,沒有現金送)php
國內私募機構九鼎控股打造,九鼎投資是在全國股份轉讓系統掛牌的公衆公司,股票代碼爲430719,爲「中國PE第一股」,市值超1000億元。html
原文地址:http://articles.forensicfocus.com/2014/10/01/decrypt-wechat-enmicromsgdb-database/python
WeChat is a smartphone application where users can chat with their friends, share pictures, videos and audio chats. Users can also make free video calls and voice calls with their friends as long as they have Internet connection.ios
Recently, we received a request from the law enforcement agency to extract WeChat chat messages from an Android mobile phone.git
Although this mobile phone model is supported by XRY (a mobile phone forensics tool), but it could not extract the WeChat chat messages. Only Whatsapp, and other text messages were successfully extracted.github
We have also conducted keyword search using EnCase, but to no avail. Although we can see the chat messages directly from the mobile phone display, EnCase still cannot find the keyword that we searched for.sql
Figure 1: The encrypted data in EnMicroMsg.dbapi
However, during the analysis in EnCase, we found a .DB file named, EnMicroMsg.db in the WeChat application folder. This file size is about 3.7MB.app
This curiosity leads us to conduct a research on the Internet and we found that the file is an encrypted SQLite database file for WeChat chat messages.ide
EnMicroMsg.db is an encrypted SQLite database file that contains the WeChat chat messages. This file is encrypted using SQLCipher, an open source extension for SQLite database that provides transparent 256-bit AES encryption of database files.
Figure 2: Parameters to decrypt EnMicroMsg.db file
Below are the parameters needed to encrypt and decrypt the data in the EnMicroMsg.db file.
The simple explanations for these parameters are described below:
Kindly go to SQLCipher API page for a better understanding about these parameters and their usage in SQLCipher.
KEY is the most important parameter to decrypt the EnMicroMsg.db file. This KEY is generated from the MD5 hash, combination of IMEI and UIN (a unique identifier of the WeChat user). However, only the first 7-characters of the MD5 hash will be used as the KEY to decrypt it.
Figure 3: The process to generate the KEY
IMEI is the 15-digits unique number that you can usually get at the back of the mobile phone. Or you can enter *#06# to get the mobile phone IMEI number.
UIN is the unique identifier that you can get from the system_config_prefs.xml file in the WeChat application folder.
Figure 4: Example to generate the KEY
In short, the KEY generation can be summarized as follows:
KEY = MD5( IMEI + UIN )[ 0:7 ]
For an example, the IMEI number for the mobile phone is, 357725678854269 and the UIN number which you get fromsystem_config_prefs.xml file is, -1881034049.
So the MD5 hash value for these IMEI and UIN is, 4bc36a03296a8b4fc63e5bb8e74db2a2
Therefore the KEY to decrypt EnMicroMsg.db is, 4bc36a0.
To make it easier for you to decrypt this file, we have wrote a Python script, fmd_wechatdecipher.py, which you can use it in your lab.
This script runs on Python and you need to install an additional package, pysqlcipher. Pysqlcipher will allows you to use SQLCipher function in Python.
Figure 5: Input and Output for fmd_wechatdecipher.py script
Before you can use this script, there are several things that you need to know about fmd_wechatdecipher.py.
This script requires two input files and one input from the user.
The Input Files are:
The Input that you need to enter:
And the Output Files after you executed the script:
In order to use this script, you must put all the Input Files in the same folder with the Python script.
When the script prompts you to enter the IMEI number, just enter the correct IMEI number and it will generate the KEY and decryptEnMicroMsg.db file automatically.
Figure 6: The decrypted data stored in EnMicroMsg-decrypted.db
Once the process is done, you will see two files are generated, EnMicroMsg-decrypted.db and EnMicroMsg-decrypted.log, in the same folder.
All the encrypted WeChat chat messages have been decrypted and are stored in the EnMicroMsg-decrypted.db file. You can extract the chat messages by using your favourite SQLite Browser to analyze this file.