首页
社区
课程
招聘
[原创]微信逆向之 ---给微信添加控件--笔记
发表于: 2017-11-28 16:27 15513

[原创]微信逆向之 ---给微信添加控件--笔记

2017-11-28 16:27
15513

可以看到:

点赞 id:com.tencent.mm:id/cvj

评论id:com.tencent.mm:id/cvm

在trace文件中全文搜索show

0x74609b50com.tencent.mm.ui.base.MMPullDownViewonShowPress(Landroid/view/MotionEvent;)VSourceFile

0x7467b828com.tencent.mm.plugin.sns.ui.SnsCommentShowAbLayout<init>(Landroid/content/Context;)VSourceFile

0x7467b8d0com.tencent.mm.plugin.sns.ui.SnsCommentShowAbLayoutbuildDrawingCache(Z)VSourceFile




trace中查找onClick

0x746947e8com.tencent.mm.plugin.sns.ui.av$4onClick(Landroid/view/View;)VSourceFile


发现在av$4的OnClick

在com.tencent.mm.plugin.sns.ui.av中找到onClick和showCommentBtn





看看com.tencent.mm.plugin.sns.lucky.ui.a.e(this.qPw.fsU, cVar.qUe.uS(0));到底做了什么

第一次猜想

继续smali调试确认是否正确

samli单步调试发现不是嗲用那个而是调用 ((u) this.qPw.fsU).cB(view);

其中:设置点赞与评论的事件绑定是(两个参数都是View)

this.qHp = (LinearLayout) view2.findViewById(f.pIx);

this.qHp.setOnClickListener(this.qhj.qgD.qVi);====接口实现qhj就是传递进来的第一个参数

this.qHp.setOnTouchListener(this.qhj.qBi);

this.qHq = (LinearLayout) view2.findViewById(f.pIP);

this.qHq.setOnClickListener(this.qhj.qgD.qVj);

this.qHq.setOnTouchListener(this.qhj.qBi);

好了现在知道在哪里了,我对runnable中的run关键代码进行hook

/**

* 添加朋友圈点赞按钮

* @param lpparam

*/

public static void hook_sns_like(final XC_LoadPackage.LoadPackageParam lpparam) {

String WECHAT_UI_SNS_ITEM_LIKE_CLASSE ="com.tencent.mm.plugin.sns.ui.bh";

String WECHAT_UI_SNS_ITEM_LIKE_METHOD ="c";

Log.i(TAG,"点赞的Runnalbe外包类:"+ WECHAT_UI_SNS_ITEM_LIKE_CLASSE+"方法:"+WECHAT_UI_SNS_ITEM_LIKE_METHOD);


XposedHelpers.findAndHookMethod(WECHAT_UI_SNS_ITEM_LIKE_CLASSE, lpparam.classLoader,

WECHAT_UI_SNS_ITEM_LIKE_METHOD, View.class, View.class, new XC_MethodHook() {

@Override

protected void afterHookedMethod(MethodHookParam param) throws Throwable {

super.afterHookedMethod(param);

View view = (View) param.args[0];

final LinearLayout ll = (LinearLayout) param.args[1];

if (ll!=null){

TextView tv=new TextView(ll.getContext());

tv.setText("点赞 ");

tv.setTextColor(Color.rgb(255, 255, 255));

tv.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(ll.getContext(),"选择了我的功能",Toast.LENGTH_SHORT).show();

}

});

ll.addView(tv);



}


}


});


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (22)
雪    币: 144
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我就想问一下,楼主调试smali用的是何种工具
2017-11-28 18:08
0
雪    币: 144
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
很少用android  studio调试smaili,一般都是log的方法
2017-11-28 18:17
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
4
调试过程很详细,很好
2017-11-29 00:24
0
雪    币: 1553
活跃值: (492)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
2017-12-13 12:11
0
雪    币: 3190
活跃值: (1816)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
工程文件  放个外链?
2017-12-14 16:20
0
雪    币: 431
活跃值: (1755)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
7
MsScotch 工程文件 放个外链?
http://download.csdn.net/download/caizhigui/10031986
2017-12-14 17:12
0
雪    币: 431
活跃值: (1755)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
在csdn上存放的工程我设置了一些关键smali debug调试断点,主要涉及的是有微信自动化:比如自动发送图片、自动发送语音、自动发送连接、名片等等。网页登录、红包。。。
2017-12-14 17:18
0
雪    币: 3190
活跃值: (1816)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
younghare http://download.csdn.net/download/caizhigui/10031986
注册账号,绑定手机号。。。
期待云盘外链~
2017-12-15 13:25
0
雪    币: 431
活跃值: (1755)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
10
很遗憾的告诉各位,由于这篇文章发表出来后,微信6.6.0对次功能做了特殊处理,如果需要实现该功能,需要变通。等有时间我再分享
2017-12-26 16:03
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
11
younghare 很遗憾的告诉各位,由于这篇文章发表出来后,微信6.6.0对次功能做了特殊处理,如果需要实现该功能,需要变通。等有时间我再分享
咋个特殊处理啊?把关键搜索的字符串和DEBUG信息抹掉了吗?
再怎么特殊处理,总归是能找到弹框函数的。。
2017-12-30 09:57
0
雪    币: 431
活跃值: (1755)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
12
sudami 咋个特殊处理啊?把关键搜索的字符串和DEBUG信息抹掉了吗? 再怎么特殊处理,总归是能找到弹框函数的。。
微信的热更新技术
2017-12-31 17:16
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
13
younghare 微信的热更新技术[em_15]
这个没事,你可以参考“微信巫师”Github上的源码,有一套通用的查找算法,可以大部分时候避开微信版本号的迭代。
2018-1-4 07:38
0
雪    币: 207
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
你好啊,现在6.6.1版本的微信,用你的方法查找已经不适用了  ?现在应该怎么做?
2018-1-5 23:59
0
雪    币: 1553
活跃值: (492)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
16
2018-1-6 16:44
0
雪    币: 729
活跃值: (1306)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
17
我想问一下,轨迹录制是哪里?
2018-2-2 13:25
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
学习学习先。
2018-2-3 17:25
0
雪    币: 472
活跃值: (20)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
19
轨迹怎么录制?
2018-4-10 22:46
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
zylyy 很少用android studio调试smaili,一般都是log的方法
smalidea插件
2018-6-3 19:27
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
skyun 我想问一下,轨迹录制是哪里?
在ddms里面录制
2018-6-3 19:27
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
mark
2018-6-3 20:11
0
游客
登录 | 注册 方可回帖
返回
//