另外一種方案之一 就是模擬點(diǎn)擊
hook或者修改方式注入的點(diǎn)擊
首先要研究如何點(diǎn)擊晦嵌,由于理解點(diǎn)擊事件是如何產(chǎn)生的原理知牌,所以應(yīng)該就是手動調(diào)用onTouchEvent
模擬點(diǎn)擊長按
MotionEvent obtain;
obtain = MotionEvent.obtain(time, time, MotionEvent.ACTION_DOWN, 0, 50, 0);
btn.onTouchEvent(obtain);//點(diǎn)擊按下
模擬點(diǎn)擊
obtain = MotionEvent.obtain(time, time, MotionEvent.ACTION_DOWN, 0, 50, 0);
btn.onTouchEvent(obtain);//點(diǎn)擊按下
obtain = MotionEvent.obtain(time,time, MotionEvent.ACTION_UP, 0, 50, 0);
btn.onTouchEvent(obtain);
打開領(lǐng)取語音紅包界面
尋找突破口监氢,找到activity 使用我自己開發(fā)的hook工具分析
【當(dāng)前app包名】com.tencent.mobileqq
【所在進(jìn)程】com.tencent.mobileqq
[入口Application]com.tencent.common.app.QFixApplicationImpl
【nativeLibraryDir】/data/app-lib/com.tencent.mobileqq-2
【App文件路徑】/data/app/com.tencent.mobileqq-2.apk
【cacheDir】/data/user/0/com.tencent.mobileqq/cache
【數(shù)據(jù)目錄】/data/user/0/com.tencent.mobileqq
【uid】10047
【簽名字符串】a6b745bf24a2c277527716f6f36eb68d
【目標(biāo)/min/sdk】9
【進(jìn)程名】com.tencent.mobileqq
【進(jìn)程PID】1385
【ActivityName】QQ
ActivityClass:com.tencent.mobileqq.activity.PublicTransFragmentActivity,hashCode:1261235652,superClass:com.tencent.mobileqq.activity.PublicFragmentActivity
然后尋找actiivty的view,找到錄音view.
打開android studio ->Tool->layout Inspector
選擇QQ進(jìn)程
選擇
com.tencent.mobileqq.activity.PublicFragmentActivity
遍歷view樹節(jié)點(diǎn) 尋找匹配的view,手動點(diǎn)擊onTouch
上圖有2個(gè)特征點(diǎn)一個(gè)是根據(jù)view的contentDescription
進(jìn)進(jìn)行文字匹配渺氧,另外一個(gè)就是根據(jù)className是否等于RecordMicView
進(jìn)行匹配
ok現(xiàn)在開始新動作赢底。
模擬長按測試挫望。
尋找標(biāo)題名稱殴蓬。
特征 屬于同級匿级,而且文本包含"
另外是不可點(diǎn)擊的,而且是屬于從上往下排列的第一個(gè)文本控件 而且是不可以點(diǎn)擊的染厅,另外字體大小是最大的痘绎。 有了這些特征,很容易判斷是不是標(biāo)題控件了肖粮。
最后,自動點(diǎn)擊的方案已經(jīng)研究出來了尿赚,前提是必須打開紅包界面散庶,那么自動點(diǎn)擊紅包界面也是差不多的過程,
那么自動播放語音以及播放完畢后自動停止我都走了凌净,但是唯有自動點(diǎn)擊沒有做悲龟,因?yàn)闀簳r(shí)感覺按下等情遷工具箱軟件播放語音完畢后手動按差不了多少的。冰寻。所以就沒弄须教,就在我的hookui軟件測試了可行性。
本教程編寫與2018年4月, 6月份才決定分享的.