錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項目 服務(wù)報價 維修流程 IT外包服務(wù) 服務(wù)器維護(hù) 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù)技術(shù)文章
[Android 原創(chuàng)] Android中防自動搶紅包外掛原理解析

作者: 佚名  日期:2017-03-26 22:53:12   來源: 本站整理

一、前言春節(jié)過年發(fā)個紅包本來就是為了討個喜慶,朋友親戚之間的關(guān)系交流,但是現(xiàn)在隨著技術(shù)變革,搶紅包插件越來越多,導(dǎo)致現(xiàn)在不太愿意發(fā)紅包了,特別是在一個多人群里,潛水的非常多,但是丟個紅包瞬間就沒了,感覺真的很不爽呀,然后造成的現(xiàn)象就是你用插件,我也用,結(jié)果搶紅包就變得沒有意思了。在這里我還是覺得盡量不要用這些所謂的搶紅包插件。多讀些書多好呀!
二、自動搶紅包插件分析本文就來應(yīng)對那些自動搶紅包插件功能的防護(hù)功能,我們知道現(xiàn)在自動搶紅包主要有著三種方式:第一種:利用輔助功能和通知欄消息攔截來做到第一時間紅包來了提醒用戶第二種:利用Xposed框架進(jìn)行hook搶紅包功能第三種:直接修改具備搶紅包功能app的代碼,二次打包安裝但是這三種方式其實目的只有一個:在收到紅包之后能夠立即提醒用戶,核心點就一個字"快",那么防止這些插件的出發(fā)點也就是如何能夠得到搶紅包的時間,通過這個時間來判斷一個人到底有沒有用插件。因為我們搶過紅包的都知道,正常情況下?lián)屢粋紅包需要經(jīng)歷:接受紅包消息+手動點擊紅包+紅包打開動畫,這三個場景。安裝平均網(wǎng)速和人的反應(yīng)速度,搶一個紅包消耗的時間大約在4s-5s左右。當(dāng)然可能會更長,如果更長的時間就不在我們這次討論范圍內(nèi)了,而這個時間也是我們自己估摸出來的,不是非常準(zhǔn)確的。所以我們現(xiàn)在的思路是,如何能夠獲取一個紅包被搶了之后,每個人搶包消耗的時間。
三、尋找Hook入口先來看看一個紅包被搶完之后的詳情頁面信息:
從這個詳情頁面可以看到,有一個值就是時間字段,而這個頁面應(yīng)該是個ListView控件,所以這里就是我們的突破口,這里依然使用命令查看當(dāng)前頁面名稱:adb shell dumpsys activity top
然后用Jadx打開WX應(yīng)用,這里我依然用的是6.3.9版本:
這里就阻礙住了,為何找不到這個類呢?在之前的一篇文章中已經(jīng)踩過這個坑了,就是WX應(yīng)用進(jìn)行了拆包技術(shù),就是有多個dex文件,不了解的可以看這篇文章:如何獲取WX應(yīng)用的聊天記錄和通訊錄信息;他把從dex放在assets目錄下:
所以我們可以直接解壓這個jar,得到對應(yīng)的dex文件,然后用jadx打開即可,繼續(xù)搜索類:
看到了吧,這時候就找到了,點擊進(jìn)入即可:
找到了ListView控件,要想看具體數(shù)據(jù)肯定要找到他的Adapter值:
這里的代碼就非常簡單了,大眾化的Adapter代碼,為了能夠看到數(shù)據(jù),直接找到數(shù)據(jù)列表信息:
我們只要hook這個ix方法即可,然后得到他的返回值,在使用反射打印所有字段值:

四、打印紅包詳情信息上面就分析完了紅包詳情頁面數(shù)據(jù)信息,下面可以直接寫Xposed模塊,來hook這個方法即可,不過這里有一個坑需要注意的:Xposed默認(rèn)是加載classes.dex主dex中的類。對于從dex中的類,按照以前方式加載的話會提示找不到類信息的,所以這里需要做一個處理,就是先hook系統(tǒng)的Application類的attach方法,然后得到對應(yīng)的Context的類加載器,然后用這個類加載器去加載指定的類,如果找不到這個類就直接返回,因為無法知道想要加載類是在哪個dex中,而且你也無法知道當(dāng)前hook的是哪個dex文件。所以只能一次一次進(jìn)行嘗試,一旦加載成功就開始后續(xù)的操作了,加載代碼非常簡單,如下所示:
這里加載com.tencent.mm.plugin.luckymoney.ui.h這個類成功之后,咋們就來hook他的ix方法:
模塊編寫完成之后,安裝重啟設(shè)備生效,然后在打開一個紅包的詳情頁面,打印值如下:
我們看到這里的eNC字段值應(yīng)該是一個時間戳,是10位的,注意后面如果要計算時間差得注意13位的時間戳和10位的時間戳問題。而eNc字段代表的是一個id值。暫且認(rèn)為是當(dāng)前紅包的唯一id值。
五、獲取紅包id值和時間戳那么有了這些信息之后,我們應(yīng)該還需要知道一個信息,那就是接受紅包的時間戳和id值,這樣我們才能計算每個人搶包的時間值。這個值獲取也比較簡單了,這個可以直接攔截消息,過濾是紅包信息之后,解析xml信息得到對應(yīng)的值,關(guān)于如何攔截消息在之前的一篇關(guān)于:如何自動打開公眾號文章和鏈接文章 中已經(jīng)詳細(xì)介紹了,這里不再多說,直接上代碼:
我們可以看到當(dāng)發(fā)送一個紅包之后的消息xml格式如下:
我們看到這個paymsgid值和上面的eNc字段值非常類似,不過不是一致的,但是可以作為唯一id值來處理,這里我們用這個id值的倒數(shù)13位開始截斷作為Map存儲結(jié)構(gòu)的key值。這樣就把當(dāng)前紅包的id值和時間戳保存下來了,然后在查看紅包詳情信息的時候在計算時間差信息即可。
這里為了更好的在界面上看到每個人搶包時間,我們需要在修改列表信息,這時候我們可能需要去hook信息列表的getView方法了,我們知道每次展示item的時候都會調(diào)用getView方法的,看看getView方法的實現(xiàn)邏輯:
這里的代碼也是非常大眾化的,沒難度,我們找到界面中展示時間的TextView控件,將其內(nèi)容改成搶包時間差信息,這里找的方法也比較簡單,直接計算id值轉(zhuǎn)化成16進(jìn)制,然后去public.xml文件中找到對應(yīng)的id名稱,查看布局文件即可。首先我們找到item的布局文件,將上面的2131362602十進(jìn)制轉(zhuǎn)化成16進(jìn)制,然后去public.xml中查看:
找到布局文件是v6.xml,打開這個文件:
看到這里的布局層次是外層LinearLayout,然后內(nèi)層第二個子View是LinearLayout,然后內(nèi)部多個子TextView展示信息的,下面繼續(xù)找到展示時間的TextView,這個也比較簡單,因為從上面打印字段信息可以知道eNC這個值就是時間戳信息,可以查看代碼:eRq就是展示時間戳信息的
把十進(jìn)制:2131167693轉(zhuǎn)化成16進(jìn)制,查看public.xml內(nèi)容:
然后在上面的布局文件中找到b45這個id控件:
看到這個是位于子LinearLayout的第4個子TextView控件,這里一定要注意子控件的順序和索引值,后面會根據(jù)這個索引值來找到對應(yīng)的TextView控件,下面直接來看代碼實現(xiàn)吧:
代碼實現(xiàn)比較簡單了,主要分為三步:第一步:hook住getView方法得到列表的item索引值,利用反射調(diào)用之前的ix方法得到對應(yīng)item的數(shù)據(jù)信息,包括時間戳和id值。第二步:利用紅包的id值去全局的Map結(jié)構(gòu)中檢索到紅包發(fā)送的時間戳值,計算搶包時間差。第三步:通過方法的返回值View,來檢索原來展示時間信息的TextView,這里一定要注意getChildAt這個方法的調(diào)用必須依賴于子控件的索引值。
模塊編寫完成之后,咋們就安裝重啟設(shè)備生效,然后打開一個紅包詳情頁面,看看效果圖:
看到了,在這個群里果然有很多掛逼,盡然在2s之內(nèi)就可以搶到紅包,不是掛逼是啥!
六、總結(jié)技巧到這里我們就講解完了防止自動搶紅包插件原理,下面來總結(jié)一下本次操作的技巧知識點:1、對于多dex應(yīng)用進(jìn)行hook的時候,會出現(xiàn)找不到類的錯誤,可以先hook住系統(tǒng)的Application的attach方法,得到Context之后,利用其ClassLoader進(jìn)行加載類即可。2、在進(jìn)行hook的時候想修改界面數(shù)據(jù)的時候,大致思路是先找到指定的展示控件,一般都是通過id值去public.xml中查找布局文件即可。當(dāng)然也有些布局可能是代碼編寫的。那樣更容易查找了。然后在利用布局的層級關(guān)系找到指定的控件即可。
嚴(yán)重聲明:本文的目的只有一個,通過一個案例來分析現(xiàn)在應(yīng)用逆向分析技巧,如果有人利用本文內(nèi)容進(jìn)行任何商業(yè)目的和非法牟利,帶來的任何法律責(zé)任將由操作者本人承擔(dān),和本文作者沒有任何關(guān)系,所以還是由衷的希望大家秉著技術(shù)學(xué)習(xí)的目的閱讀此文,非常感謝!
七、總結(jié)本文主要通過WX應(yīng)用防止搶紅包插件的功能作為案例,來介紹了利用Xposed進(jìn)行hook的時候遇到的一些問題,以及解決方案,在說到搶紅包本文的案例解決方法很簡單,就是通過搶包時間來判斷,但是這個不是百分百的準(zhǔn)確,因為有很多不確定因素在里面,比如網(wǎng)速等,都可能決定一個紅包被搶的時間。但是在一定搶包時間內(nèi)我們可以斷定是否使用了自動搶包功能插件,如果希望做的更智能,最好是采樣多個紅包被搶信息來進(jìn)行簡單的數(shù)據(jù)分析來判定某個人是否真的的確用了自動搶包插件。這個留給感興趣的讀者去實踐了,最后寫完文章還是很辛苦的,希望大家多多點贊分享,要是有打賞那就最好啦啦!


熱門文章
  • 機(jī)械革命S1 PRO-02 開機(jī)不顯示 黑...
  • 聯(lián)想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機(jī)SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數(shù)和判...
  • IIS 8 開啟 GZIP壓縮來減少網(wǎng)絡(luò)請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機(jī)始終停留在開機(jī)界面...
  • 常見打印機(jī)清零步驟
  • 安裝驅(qū)動時提示不包含數(shù)字簽名的解...
  • 共享打印機(jī)需要密碼的解決方法
  • 圖解Windows 7系統(tǒng)快速共享打印機(jī)的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護(hù),上門維修電腦,黑屏藍(lán)屏死機(jī)故障排除,無線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 亚洲v国产v天堂a无码久久| 无码射肉在线播放视频| 国产AV无码专区亚洲A∨毛片| 无码国产色欲XXXX视频| 人妻无码第一区二区三区 | 中文字幕久久久人妻无码| 亚洲另类无码专区首页| 亚洲日韩精品一区二区三区无码| 精品人妻无码区在线视频| 一本一道中文字幕无码东京热| 人妻少妇伦在线无码专区视频| 亚洲最大av无码网址| 亚洲AV无码一区二区乱子仑| 亚洲国产精品无码久久SM| 免费无码国产在线观国内自拍中文字幕 | 日韩人妻无码精品无码中文字幕| 久久久久亚洲AV成人无码网站| 亚洲精品无码专区久久同性男| 色欲aⅴ亚洲情无码AV蜜桃| 久久亚洲精品AB无码播放| yy111111少妇无码影院| 永久免费无码网站在线观看| 亚洲综合一区无码精品| 欧洲无码一区二区三区在线观看| 东京热人妻无码一区二区av| 无码专区国产精品视频| 成人麻豆日韩在无码视频| 精品无码无人网站免费视频| 无码国内精品久久人妻| 亚洲va中文字幕无码久久| 亚洲人成网亚洲欧洲无码久久| 免费无码又爽又黄又刺激网站| 国产在线无码视频一区| 人妻无码精品久久亚瑟影视| 无码国产成人午夜电影在线观看| 狠狠久久精品中文字幕无码| 精品久久久无码中文字幕天天| 无码视频在线播放一二三区| 无码人妻久久一区二区三区蜜桃| 国产色无码精品视频国产| 亚洲区日韩区无码区|