在nexus 5(android 4.4)+wechat 5.4,和nexus 5(android 5.0)+wechat 6.0上測試可用。
若沒有root,則/data/data/com.tencent.mm
下多數目錄都不可讀,可以使用下面的方法:
imei:在撥號盤輸入*#06#
獲取imei,或者開啟「usb除錯」後使用adb shell dumpsys iphonesubinfo
得到15個十進位制數字組成的imei
。網上查到有些機型可能使用不同於imei的其他字段用於生成金鑰。
把上面兩步得到的imei
和uin
拼接起來計算md5。執行echo -n "$imei$uin" | md5sum | cut -c -7
獲取sqlcipher使用的加密金鑰,下面用abcdefg
指代。
執行sqlcipher enmicromsg.db
,輸入:
1
2
3
4
5
pragma key='abcdefg';
pragma cipher_use_hmac = off;
attach database "decrypted_database.db" as decrypted_database key "";
select sqlcipher_export("decrypted_database");
detach database decrypted_database;
解密得到可用sqlite3開啟的decrypted_database.db
。
注意,sqlcipher不同版本使用的加密方式不同,我嘗試使用3.8.4.3版本開啟資料庫檔案,得到如下錯誤資訊:
1
2
3
sqlite> pragma
key='abcdefg';
sqlite> .schema
error: file is encrypted or is not a database
1
2
3
4
5
6
7
# /tmp/sqlcipher_2.1.1-2_amd64.deb
# /tmp/libsqlcipher0_2.1.1-2_amd64.deb
cd /tmp
# get /tmp/usr/bin/sqlcipher
ar x sqlcipher_2.
1.1-2_amd64.deb && tar xf data.tar.gz --no-overwrite-dir
# get /tmp/usr/lib/x86_64-linux-gnu/libsqlcipher.so.0.8.6
ar x libsqlcipher0_2.
1.1-2_amd64.deb && tar xf data.tar.gz --no-overwrite-dir
解壓後執行:
1
cd /tmp/usr && ld_library_path=lib/x86_64-linux-gnu bin/sqlcipher /tmp/enmicromsg.db
message
表儲存訊息。目前了解到從fmessage_conversation
、rcontact
和chatroom
表中可以得到一些聯絡人和聊天室的資訊。
暫時使用乙個比較粗糙的ruby指令碼匯出資訊,需要先gem install sqlite3
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require 'sqlite3'
begin
talker2name = {}
username2name = {}
db =
sqlite3::database.open '/tmp/decrypted_database.db'
db.results_as_hash =
true
db.execute(
'select talker,displayname from fmessage_conversation').each
db.execute(
'select username,nickname from rcontact').each
db.execute(
'select createtime,talker,content from message').each : " }
end#next if content =~ /^~semi_xml~|
next if content =~ /^~semi_xml~/
name = talker2name.fetch talker, talker
puts
"#\t#\t#"
}rescue sqlite3::exception => e
puts e
ensure
db.close
if db
end
android微信支付
1,開啟 3,示例 發布使用的簽名正確的話取消和成功都能正確通知.2,測試時使用weixindemo中的debug keystore 3,需要注意應用要通過審核,並且幾個key值正確 商家向財付通申請的商家id 第一步,獲取accesstoken,accesstoken值第二步要用 private ...
android微信支付
builder.settitle 提示 builder.show 現在說一下支付結果返回 1的問題,這個問題真是糾結了好久啊,如果你是按照上面的步驟來的話還出現 1的話,原因只有兩個 1.可能是後台返回給你的引數不正確導致支付失敗,後台調起預支付介面的時候要注意中文亂碼問題,二是注意總金額是int型...
android微信支付
post請求的使用場景 信開發平台建立時需要 簽名,包名,圖示 其中需要2個圖示 數字摘要 是指通過演算法將長資料變為短資料,通常用來標識資料的唯一性,是否被修改,常用的 md5由於具有不可逆性,也被用來作為密碼加密,並且通常情況下為了讓加密過程變的不可 我們會進行加鹽操作,如下 sha1也不可逆,...