一、插件开发背景
昨天无意中在刷抖音的时候看到有个视频可以修改转账信息,我就觉得好奇所以就自己实现了一下,关于微信消息修改其实是个假象就是修改本地自己看到的消息,而不是真正意义上的把聊天信息修改了,但是这个修改的好处在于好玩,比如你在和你喜欢的人聊天突然发错消息了,但是如果这时候撤回她也是可以看到的,那么怎么办呢?就本地修改一下消息,然后截图给她告诉她微信出bug了,消息不同步你看我这发的消息是这样的,当然还有转账的时候,可以搞怪一下,比如给媳妇转账了¥0.01块钱,但是本地修改成¥20191314块,然后截图给她告诉她真的转了这么多钱表明真心,告诉她是腾讯微信出bug了。所以这么玩的确好但是很容易变成单身狗!
二、逆向分析
关于修改本地自己的消息信息其实也不难,首先用UI分析工具直接找到控件名字:
然后去public.xml中找到值:
找到之后,按照之前说过的字符串搜索方式进行查找方式:find . |xargs grep -ri "查找内容"
找到正确的id名字之后继续find搜索:
找到这个类,然后用Jadx直接打开dex即可:
看到这个控件的定义了,然后直接搜索这个类的调用的地方,还是find搜索:
看到这里用到了控件的类,继续用Jadx打开dex即可:
这里进行获取值然后进行赋值操作,到这里我们可能没法往下跟踪了,这时候就需要打印堆栈信息进行跟踪了:
可以先去smali中找到定义类型,然后直接hook即可:
然后通过打印堆栈信息找到方法点: