最近接了个微信逆向相关的项目,需要调试微信,在这里记录一下过程以便参考。 我们之前调试过QQ,详细请看文章: 用Android Studio动态调试手机QQ
现在我用同样的方法调试微信,发现已经不行了。经过一番摸索之后确定了原因:
smalidea不支持Android Studio4.1及以上的版本(无法单步调试甚至无法安装)。 我的解决方案是改用IntelliJ IDEA代替Android Studio。 在官网下载了IntelliJ IDEA Community 2020.3.1,安装好smalidea0.0.5插件。另外需要按照以下方式设置,因为他自带Smali support插件会导致smalidea失效。 File -> setting-> Editor -> file Types 里面找smali ,会发现有两个,改成下图这样(去掉自带的*.smali,给smaliidea的加上*.smali)就可以了
设置完之后按照以前的方法就可以愉快地调试了:
BuildProp Enhancer插件里设置ro.debuggable为1
模拟器里启动微信 android-sdk\tools 启动monitor.bat
选中微信进程,后面的端口8700填入IntelliJ IDEA的远程调试设置端口
随后Run-Debug wechat运行即可: 另外分享一些我到的类和方法:
-- 朋友圈核心操作类MicroMsg.SnsCore(7.0.17) com.tencent.mm.plugin.sns.model.ag
取朋友圈存储操作对象(MicroMsg.SnsInfoStorage) public static q dOx() { AppMethodBeat.i(95820); g.ahJ().agN(); if (dOe().yBl == null) { dOe().yBl = new q(dOe().gmy); com.tencent.mm.plugin.sns.b.o.ytZ = dOe().yBl; } q qVar = dOe().yBl; AppMethodBeat.o(95820); return qVar; } 取下载管理器对象(MicroMsg.DownloadManager) public static b dOs() { AppMethodBeat.i(95815); g.ahJ().agN(); if (dOe().yBw == null) { dOe().yBw = new b(); } b bVar = dOe().yBw; AppMethodBeat.o(95815); return bVar; } -- 朋友圈工具类MicroMsg.SnsUtil(7.0.17) com.tencent.mm.plugin.sns.data.q -- 朋友圈相册处理类MicroMsg.SnsGalleryAdapter com.tencent.mm.plugin.sns.ui.SnsInfoFlip -- 图片加载类MicroMsg.LazyerImageLoader2 (7.0.17) com.tencent.mm.plugin.sns.model.f --
原文地址: - https://mp.weixin.qq.com/s/RsESkLPrbUxKHPWvuxHeAw
复制代码
|