然后是下面的C寄存器的含义对照表。其中函数参数也可以不用寄存器表示,可以直接$arg1/$arg2/$arg3
来表示 。
开始用LLDB动态调试,首先Hook微信进程
点击微信的备份文件,恢复聊天记录至手机或者管理备份文件来触发断点。
获取到备份的数据库位置,直接在finder中打开,发现一共有三个文件
为什么是第三个参数呢?
OC的对象方法调用,实际调用的是底层的objc_msgSend($arg1,$arg2,...)
,其中$arg1
为调用者本身,$arg2为方法名,后面的参数表示传递的实际参数,因此是从$arg3开始的,可以打印整个寄存器和$arg1
,$arg2
出来看看
因此实际的函数参数会从第三个$arg3
开始。
用打开这个db文件,发现是SQLCipher加密,要输入密码。
打开数据库。 分析一下表,发现文本内容存在BAK_0_TEXT
,媒体内容存在BAK_0_MEDIA
,以偏移量记录某条消息,简单查看一下这2个文件,都是写二进制数据,看来还用了某种加密方式。
如何防止他人随时翻看手机微信的信息,避免生活中一些不必要的麻烦?快来试试 蜘蛛密友app ,这是目前市面上最稳定、功能最全的一款加密微信软件,也是是番茄密友的升级版本,完美适配微信//viewspace-2738768/,如需转载,请注明出处,否则将追究法律责任。