PC逆向:使⽤HOOK获取好友列表和列表乒乓球混双几局几胜制
⽂章⽬录
lg手机恢复出厂设置获取好友列表⽬前有三种⽅法,第⼀种就是⼆叉树遍历,通过⼀层⼀层的往下读取来拿到所有的好友列表。第⼆种是通过在内存⾥⾯好友的地址列表。第三种就是通过查数据库来获取列表
获取好友列表的切⼊点
要想获取的好友列表,就必须到读取好友列表的地⽅。突破⼝在于在点击个⼈名⽚时,会获取当前联系⼈的详细信息,然后显⽰在右侧。
那么我们可以⼤胆猜测 在登陆的时候,需要先调⽤这个call,循环拿到所有好友的详细信息,然后再显⽰到右侧
千什么百什么的成语
第⼀步:我们⾸先要到获取好友详细信息的函数。这个函数在读取好友列表时必然会被调⽤,第⼆步,再通过这个函数到获取好友列表的地⽅。
聪颖快捷打一国家
另外还有⼀种⽅法就是通过好友的数量,先搜索当前好友的数量,然后删除⼀个,再次搜索。直到到保存好友数量的地址。
柯震东个人资料定位查询好友信息的函数
那么如何到查询好友信息的函数呢?突破⼝在于当前窗⼝的号,只要到号的地址,然后对号下内存写⼊断点,栈回溯分析就能到我们需要的函数。
定位号的地址
⾸先搜索当前的号,勾选Unicode
接着切换联系⼈,再次扫描
最终会剩下五个结果,我们需要逐个排查每⼀个结果⼀次错误的尝试
随便⼀个地址,下内存写⼊断点。然后切换当前联系⼈窗⼝,断点断下。删除内存断点。我们需要到⼀个地址,地址⾥⾯包含联系⼈的所有信息
在堆栈的地址中我们发现了⼀个返回地址,返回地址下⾯有的个⼈数据。那么这个有可能就是我们需要的call 切换当前窗⼝联系⼈,等待断点断下
此时,堆栈和eax寄存器中保存了当前联系⼈的所有数据
继续往下拉会发现eax中保存有签名和国家等信息。也就是说这个call⾥⾯保存了当前聊天窗⼝的好友的所有信息。
接着我们删除好友,让好友列表刷新,看看这个地⽅会不会断下来。如果会断下来,那么这个地⽅就有可能保存了所有好友的信息。
删除之后,断点并未断下,那么这个call就不是我们想要的
再次查⽬标函数
起个好名字继续另外⼀个地址,下内存写⼊断点
此时再次搜索返回地址,你会发现在压⼊返回地址前的⼀个参数中有⼀个完整的好友信息