pc微信逆向之数据库Msg表MsgSvrID字段获取教程
1.在pc微信数据库Msg表里面,MsgSvrID字段类型是int型,但其实在sqlite3里面,int类型实际上是一个64位整数,其范围是从-9223372036854775808到9223372036854775807。这个范围与标准SQL的INT类型(通常在32位系统中是-2147483648到2147483647)是不同的,可以看下具体的数据截图
2.了解了这个知识后,我们就可以知道MsgSvrID其实是64位的,那在反汇编里面,它是要占8个字节的,如果是64位的微信,这个值比较容易在内存里面找到,但是在微信3.9.2.23之前的版本,微信都是做的32位的程序,因为32位的程序,最大值只能是4字节,如果超过4字节表示的最大值,就需要更多字节进行存储。所以MsgSvrID的值在内存里面,是用8字节表示的,并且是放在连续的内存地址里面。具体可以看下面截图,画红线的2个地址里面
3.根据内存里面的值,反查出对应的int值,不过请注意高位的值要放前面
4.根据MsgSvrID准确查找了记录