反編譯apk實(shí)現(xiàn)炫酷的進(jìn)度條動畫

在上一篇文章《Mac下反編譯apk》里我們分三步就成功反編譯出apk的源碼后雷,但是如果你是第一次看到期待已久的源碼的話(如果對方做了深度混淆)吠各,你肯定是一臉懵逼贾漏,a、b盒齿、c困食、d硕盹、e叨咖、-7816709... ...這tm都是些啥。老鐵垛贤,別慌聘惦,邏輯不是還在的嗎,看看這些不就是一些函數(shù)名黔漂、參數(shù)啥的嗎禀酱,咱們來仔細(xì)分析一下剂跟。

話說沒圖沒真相,下面是app中的圖(中間的AS是為了遮擋住個人信息鳍置,自動忽略):

北京公積金loading

反編譯運(yùn)行后的效果圖:

反編譯運(yùn)行后的效果

可以看到,兩者是一摸一樣的坊夫,進(jìn)度條部分环凿。我這不是邀功,而是這個確實(shí)能夠?qū)崿F(xiàn)你們產(chǎn)品或者UI要求的我就要和某某某app一毛一樣的效果羽杰,就是這么吊考赛。

看完效果我們就來分析怎么才能把已經(jīng)混淆的代碼“修補(bǔ)”成可以運(yùn)行的源碼莉测。

第一步:順藤摸瓜查找到相關(guān)資源和類

注意看這個個效果我們可以分為三部分:進(jìn)度條部分、房子忍抽、滾動的金幣鸠项、跑動的小人领铐,最簡單的實(shí)現(xiàn)方法肯定是ui給單獨(dú)的圖片組合起來要销,然后不停的繪制實(shí)現(xiàn)動畫效果浅辙。那我們的線索就是圖片資源阎姥。

打開反編譯后的文件夾我們在res/drawable-xhdpi-v4下面找到如下的圖片

圖片資源

獲取到圖片的name了那不就好辦多了嗎泽腮?是的當(dāng)時我就是這么想的衣赶,然后搗鼓了半天還沒找到相關(guān)代碼......

這里有個需要注意的地方:其實(shí)我們的代碼在編譯后資源和控件的id是在R文件中有一一對應(yīng)的關(guān)系的是十六進(jìn)制的編碼府瞄,現(xiàn)在的關(guān)鍵點(diǎn)是找到R文件就可以找到資源name對應(yīng)的十六進(jìn)制,轉(zhuǎn)成對應(yīng)的十進(jìn)制鲸郊,然后查找十進(jìn)制在代碼中的位置货邓。

values文件下的public.xml就是我們要找的R文件


相關(guān)圖片在代碼中對應(yīng)的id

就拿gjj_loading_ball這個圖片舉例换况,7f0201cd對應(yīng)的十進(jìn)制是2130837965戈二,jd-gui的find無法搜索到在代碼中的使用情況,這里我把jd-gui中的代碼都導(dǎo)出放在AndroidStudio中方便查找和修改腾供。

find查找


具體代碼中的位置

你可以同樣方法試一下后面的這些是不是都是要用到的資源的id。

新建自己的工程绒北,把你一步步查找到的資源和代碼copy到新工程中闷游。

大致瀏覽一下這個類,我們可以看到它是繼承Drawable并且實(shí)現(xiàn)Animatable接口不停的繪制實(shí)現(xiàn)的進(jìn)度動畫休吠,通過以上的步驟我們找到了動畫的具體實(shí)現(xiàn)類瘤礁,但是各種報(bào)錯梅尤,依賴找不到等巷燥,接下來我們需要去“修補(bǔ)”這個類。

依賴找不到錯誤

首先我們發(fā)現(xiàn)兩個依賴找不到陨享,support.v4包下面的抛姑,a拍屑、y這種顯然是被混淆了僵驰,找到反編譯的v4包,widget包下的y和content包下的a

y
a

這是混淆之后的依賴,怎么查找原本的呢顽腾?我們有了這個類的結(jié)構(gòu)和具體的代碼,我們可以到我們項(xiàng)目中的v4包中查找(這中間還是比較費(fèi)力的)久信,經(jīng)過仔細(xì)摸排比對我們找了原本的依賴類裙士。

ContextCompat
ScrollerCompat

這其中有個小技巧比如

a在代碼中的使用

后面的是查找drawable資源腿椎,前面的參數(shù)是context啃炸,平常我們用的比較多的查找資源的方法是ContextCompat...這樣靠猜卓舵,如果你有更好的方法請告知我边器。

剩余的一些就是函數(shù)名的比對和資源的查找比對,這還真是個需要耐心的活恒界。

好了砚嘴,最主要的類被我們修復(fù)完成际长,最好把它重命名一下,不然后面看著還是有點(diǎn)懵虾宇,下面就是找這個類的使用了如绸。我們發(fā)現(xiàn)彈窗中還有一個白色的關(guān)閉按鈕嘱朽,這個肯定布局中imageview引用的,這樣我們可以查找到相關(guān)的布局怔接,再根據(jù)布局資源查找到布局在代碼使用的位置搪泳。這樣使用這個自定義Drawable的類就找到了,是/caiyi/ui/dialog/a.java這個類扼脐,其實(shí)找了半天這個dialog和自定義drawable是在同一目錄下...

這里面的使用情況請讀者自行琢磨岸军,這里我并沒有對源碼進(jìn)行分析,有空的話我會再寫一篇分析文章如何實(shí)現(xiàn)這種效果。一個簡單的demo艰赞,代碼傳送門

總結(jié)一下:在java層來說佣谐,其實(shí)簡單的反編譯并沒有那么難,主要是麻煩台谍。.so的反編譯有看過這方面的資料,但是還沒有實(shí)踐過吁断,這個后面有時間的話我會抽空實(shí)踐一下的。

其實(shí)很多東西比如ui效果什么的首先建議自己動手寫寫坞生,沒有靈感想走捷徑的話可以試試反編譯借鑒一下仔役。

能力有限,如果哪里有不對的地方是己,請留言告訴我又兵。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市卒废,隨后出現(xiàn)的幾起案子沛厨,更是在濱河造成了極大的恐慌,老刑警劉巖摔认,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逆皮,死亡現(xiàn)場離奇詭異,居然都是意外死亡参袱,警方通過查閱死者的電腦和手機(jī)电谣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抹蚀,“玉大人剿牺,你說我怎么就攤上這事』啡溃” “怎么了晒来?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長郑现。 經(jīng)常有香客問我湃崩,道長,這世上最難降的妖魔是什么懂酱? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任竹习,我火速辦了婚禮,結(jié)果婚禮上列牺,老公的妹妹穿的比我還像新娘整陌。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布泌辫。 她就那樣靜靜地躺著随夸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪震放。 梳的紋絲不亂的頭發(fā)上宾毒,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機(jī)與錄音殿遂,去河邊找鬼诈铛。 笑死,一個胖子當(dāng)著我的面吹牛墨礁,可吹牛的內(nèi)容都是我干的幢竹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼恩静,長吁一口氣:“原來是場噩夢啊……” “哼焕毫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起驶乾,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤邑飒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后级乐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疙咸,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年风科,在試婚紗的時候發(fā)現(xiàn)自己被綠了罕扎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡丐重,死狀恐怖腔召,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扮惦,我是刑警寧澤臀蛛,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站崖蜜,受9級特大地震影響浊仆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜豫领,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一抡柿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧等恐,春花似錦洲劣、人聲如沸备蚓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郊尝。三九已至,卻和暖如春战惊,著一層夾襖步出監(jiān)牢的瞬間流昏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工吞获, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留况凉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓各拷,卻偏偏與公主長得像茎刚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子撤逢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容