如何做一个微信的自动抢红包插件?
逆向分析
第一步:要分析红包的页面信息(apk界面元素分析),有3种方式
- adb命令:adb shell dumpsys activity activities
- 辅助工具:Activity栈,通过全局悬浮窗查看当前UI。
- SDK工具:AndroidStudio → SDK的安装目录文件夹 → tools → monitor,双击打开monitor,简单分析界面的布局结构。
第二步:自动抢红包插件的流程
- 接收到有红包的消息 → 打开红包页面 → 点击“开”的按钮
- 怎样打开红包页面?下载一个微信6.7.3版本apk。
- 下载Android逆向工具 jadx
- 通过adb命令,获知红包页面为LuckyMoneyReceiveUI(不同apk版本,名字也许不同)。
- 打开jadx工具,bin → jadx-gui,将apk拖到里面分析。
- 在jadx-gui中搜索文件LuckyMoneyReceiveUI,勾选“代码”。
- 代码太多,怎么找到想要的信息?回归页面分析,聊天页面 → 红包页面
- 在jadx-gui搜索下的代码中发现
可能有关系,点进去看看,也许幸运来临了呢?
上面所需代码最后一行,应该是跳转代码,分析这段跳转代码:
- 参数1:context,参数2:字符串 luckymoney,参数3:.ui.LuckyMoneyReceiveUI,参数4:Intent
- Intent分析:key_way: 0 or 1,key_native_url: 未知,key_username: 未知
第三步:尝试逆向该apk的数据库,看看是否存了key_native_url、key_username这些字段。
- 在jadx-gui中搜索文件SQLiteDatabase,点进去。
- 想一个场景:当别人发送一个红包或者消息,微信是否将数据存储到了数据库?
- 怎么验证这个场景?逆向数据库的存储操作(insert操作)。
- 实际就是逆向insertWithOnConflict方法,通过Xpose
本文地址:https://blog.csdn.net/qq_32036981/article/details/110522486