在幽兰上用gdb调试微信

调试环境:幽兰代码本,linux 5.10版本

1.在幽兰上启动微信:
幽兰代码本于2023年8月份打通了Waydroid环境,使微信的tablet版可以在其上运行。微信的图标和其他图标一样放置在桌面,点击即可运行。

可以看到,在登录之后,手机上会显示“2个设备已登录微信”。

2.在这里,我是用MobaXterm远程连接的幽兰进行操作,与直接在幽兰上操作效果无异。先用ps aux | grep tencent 列出与微信相关的进程,tencent就是微信在linux系统中所用的名称。用top可以列出进程相关的数据。可以看到,微信的消耗还是很高的。

3.用gdb 附加微信进程,输入其pid。

4.附加完进程之后,微信会进入停止状态,按enter键使其继续运行。运行完毕后,输入命令info thread可以看到,后台有179个线程。

5.输入handle命令指定调用不停止后再次执行。

6.输入c让其继续执行,由于上一步操作,可以使其在调用指定函数的时候不会停下来。

7.但是遇到了报错,运行停止。对报错的地方进行反汇编,看看是怎么回事。

8.可以看到明显的箭头指向,我们对指向的地方进行有关值的显示。w0为0,好像不太正常。

9.输入detach命令,使微信进程拆离。退出gdb,并用strace进行跟踪。

10.在下图可以看到捕获到的信息,图中的信息几乎都是源自于我的鼠标在微信界面的移动,即使移动一小段距离,其也会产生大量的信息,且即使鼠标不移动,其也会不间断的产生信息。

作者:沈根成  创建时间:2023-10-23 17:26
最后编辑:施国瑞  更新时间:2024-11-15 17:44