最近有很多人留言问能不能拿到通讯录,聊天记录等等。我们依次尝试了以下方案:总的来说,都实现了。
1.通过群控,将好友截图发送到服务器(python),利用python的图像识别库获取好友信息。
2.开发一个app,使用android自带的AccessibilityService,模拟用户的操作,然后获取屏幕上的内容。
3.被破解的本地数据库。
我们如何知道如何在本地数据库中存储用户和聊天的信息?
当我们打开手机的飞行模式时,仍然可以看到通讯录和聊天记录。那么就意味着你能看到的所有信息都必须保存在本地数据库中,但是他加密了本地数据库。既然地方存在,我们就有办法把它拿出来。
本地数据库的密码是什么?
具体请参考大神的文章。他通过反编译得到的加密规则特别厉害!
以上文章主要讲解了如何静态破解数据库。基于他的静态破解方法,我们将在代码中介绍如何动态破解。不想看的同学,我就直接介绍一下本地数据库的加密规则:
。获取手机的IMEI码
2.获取当前登录帐户的uin(存储在sp中)
3.拼接IMEI和uin
4.用md5加密拼接的字符串
5.截取加密字符串的前七位数字(字母必须小写)
七位数的字符串是数据库的密码。因为已经有上亿用户,而且本地数据库存在于用户手机上,所以可以肯定的是,数据库不会轻易被大规模修改。所以密码的加密规则是无法更改的,可以放心使用!
适用范围:获得root权限的手机。
如果你的手机没有root,那么以下代码对你的手机无效~
让我们正式进入主网标题
首先,粗略浏览下面的目录
1.连接手机,开启开发者模式。
2.打开Android设备监视器
3.进入文件浏览器的子页面,查看目录/data/data/com.tencent.mm。
如果你发现文件夹打不开,或者click /data目录下没有内容,可能是因为你没有权限。请在命令中执行以下命令:
关于目录结构在的介绍下,本地数据库都在MicroMsg文件夹下,SharedPerferences文件都在shared_prefs文件夹下。前面提到的获取数据库密码所需的uin在SharedPreferences中,对应于文件夹/data/data/com . Tencent . mm/shared _ preferences。
的本地数据库存储在/data/data/com . Tencent . mm/micro msg中的长字符串目录中。
注意:如果登录多个账号,会出现多个这样的文件夹,所以我们会在下面的代码中循环查找当前登录用户对应的数据库文件。
2.授予当前app管理员权限,修改目录的读写权限。
最好在app一启动就执行下面的代码,每次获取数据库内容都要重新执行一次,避免出现未经许可读取相关文件的异常。
公共静态最终字符串WX _根_路径= "/data/data/com . Tencent . mm/";
execRootCmd(" chmod 777-R " WX _根_路径);
/**
*执行linux指令
*
* @param paramString
*/
public void execRootCmd(String paramString){
尝试{
process local process = runtime . get runtime()。exec(" su ");
object local object = local process . get output stream();
data output stream localDataOutputStream = new data output stream((output stream)local object);
字符串=字符串。valueof(参数字符串);
localObject = str
localdataoutputstream . writebytes((String)local object);
localdataoutputstream . flush();
localdataoutputstream . writebytes(" exit ");
localdataoutputstream . flush();
local process . wait for();
local object = local process . exit value();
} catch(异常localException) {
local exception . printstacktrace();
在准备读取数据库之前,您需要执行一次这个命令。进程本地进程= runtime.getruntime()。exec(“su”)首先通过创建负载网络的命令,使当前app获得root权限,然后通过chmod命令,修改数据目录的读写权限。因为我们需要操作我们读取的数据库文件和sp文件,所以我们必须拥有文件的操作权限。
获取移动IMEI
获取IMEI的方法很简单。相信你们都知道。唯一需要注意的是添加权限。
获取的uin。
Uin存储在SharedPerferences中,所以我们必须在目录的shared_prefs文件夹中查找它存储的xml文件,然后解析它。
/**
*获得的uid
* uid存储在SharedPreferences中。
*存储位置data data com . Tencent . mm shared _ prefs auth _ info _ key _ prefs . XML
*/
私有void initCurrWxUin() {
mCurrWxUin = null
File file =新文件(WX _ SP _ UIN _路径);
尝试{
file inputstream in = new file inputstream(file);
SAXReader SAXReader = new SAXReader();
document document = saxreader . read(in);
element root = document . getrootelement();
目录
本文地址:http://www.chuangzai.com/post/61738.html