如何破解添加代碼混淆的GooglePlay游戲正版驗(yàn)證

在上一篇文章“手游apk破解及GooglePlay正版去驗(yàn)證經(jīng)驗(yàn)分享 ”中愧薛,遺留了一個(gè)問題:添加了代碼混淆的游戲如何處理排作?最近剛剛寫完這部分腳本厕氨,在此總結(jié)一下:
添加混淆的游戲咐熙,反編譯后代碼類名和方發(fā)名基本不可讀,負(fù)責(zé)正版驗(yàn)證部分的SDK會(huì)變成如下的樣子:

混淆后的類名

但代碼混淆并不能混淆字符串(這也是為什么要用加殼工具询刹、字符串編碼了)谜嫉,于是抱著希望耐著性子一個(gè)個(gè)點(diǎn)開終于找到唯一一個(gè)帶有字符串(也是唯一能看懂)的方法:

居然是對(duì)驗(yàn)證成功與否的常量定義!可謂一線生機(jī)凹联。由代碼可以看出這個(gè)類p中定義了3個(gè)常量a, b, c分別代表LICENSED, NOT_LICENSEDRETRY沐兰。接下來的工作似乎變得簡單了,只要找到引用了LICENSED的地方蔽挠,那里應(yīng)該有一些條件來判斷驗(yàn)證結(jié)果為LICENSED還是NOT_LICENSED住闯,修改條件邏輯,讓其全部進(jìn)入LICENSED的條件塊中即可澳淑。
然而搜索一遍后發(fā)現(xiàn)2個(gè)地方引用了LICENSED

  1. 如下圖比原,類似之前的推理邏輯,此函數(shù)判斷變量v0是否與Lcom/android/vending/licensing/p;->a(即LICENSED)相同杠巡,從而返回true或false量窘,只要強(qiáng)行修改返回值就行,很方便的辦法:在return v0之前插入將v0設(shè)為true的語句const/4 v0, 0x1即可
  2. 如下圖所示氢拥,類Lcom/android/vending/licensing/n的函數(shù)a()僅僅返回了LICENSED這個(gè)引用:

    還好這也只是讓搜索變得稍復(fù)雜點(diǎn)蚌铜,只需再找到對(duì)這個(gè)函數(shù)的引用,將相應(yīng)的條件塊進(jìn)行修改即可嫩海。注意冬殃,搜索函數(shù)引用時(shí)記得查看是否為實(shí)現(xiàn)的接口函數(shù)。例如這里的函數(shù)a()就是對(duì)接口Lcom/android/vending/licensing/a的實(shí)現(xiàn)出革。因此需要同時(shí)搜索兩個(gè)函數(shù)引用:
Lcom/android/vending/licensing/n;->a()      //事實(shí)證明并不能搜到這條語句的引用

Lcom/android/vending/licensing/a;->a()

搜索結(jié)果只有一條造壮,在某個(gè)類中幾百行的函數(shù)中引用了Lcom/android/vending/licensing/a;->a()


代碼中在cond_9的條件塊中判斷了p2是否為0,然后跳入不同條件塊骂束,只需將是否為0的判斷注釋掉:

#if-nez p2, :cond_a

再在函數(shù)開始時(shí)便直接跳入cond_9(如下圖)耳璧,于是這個(gè)函數(shù)必然會(huì)跳入驗(yàn)證結(jié)果為LICENSED的語句。


注意:這里的goto語句需要寫在變量聲明之后展箱,否則后面的代碼用到未經(jīng)聲明的變量會(huì)報(bào)錯(cuò)Verify Error旨枯。

最后,打包混驰、重簽名攀隔、安裝、運(yùn)行栖榨,GP上付費(fèi)購買的游戲也可以在其他手機(jī)上完美運(yùn)行啦(包括無Google Play框架手機(jī))昆汹! : )
此外,以上邏輯可以很方便的寫成腳本婴栽,全部是文本查找與替換满粗,無非是遍歷次數(shù)略多,不過作為工具腳本愚争,也不必花時(shí)間去優(yōu)化其運(yùn)行效率了映皆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挤聘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子捅彻,更是在濱河造成了極大的恐慌组去,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,496評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件步淹,死亡現(xiàn)場離奇詭異从隆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)贤旷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,187評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門广料,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人幼驶,你說我怎么就攤上這事艾杏。” “怎么了盅藻?”我有些...
    開封第一講書人閱讀 157,091評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵购桑,是天一觀的道長。 經(jīng)常有香客問我氏淑,道長勃蜘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,458評(píng)論 1 283
  • 正文 為了忘掉前任假残,我火速辦了婚禮缭贡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辉懒。我一直安慰自己阳惹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,542評(píng)論 6 385
  • 文/花漫 我一把揭開白布眶俩。 她就那樣靜靜地躺著莹汤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颠印。 梳的紋絲不亂的頭發(fā)上纲岭,一...
    開封第一講書人閱讀 49,802評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音线罕,去河邊找鬼止潮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛钞楼,可吹牛的內(nèi)容都是我干的沽翔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,945評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼仅偎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起雳殊,我...
    開封第一講書人閱讀 37,709評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤橘沥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后夯秃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體座咆,經(jīng)...
    沈念sama閱讀 44,158評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,502評(píng)論 2 327
  • 正文 我和宋清朗相戀三年仓洼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了介陶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,637評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡色建,死狀恐怖哺呜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情箕戳,我是刑警寧澤某残,帶...
    沈念sama閱讀 34,300評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站陵吸,受9級(jí)特大地震影響玻墅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壮虫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,911評(píng)論 3 313
  • 文/蒙蒙 一澳厢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧囚似,春花似錦剩拢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,744評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至搬素,卻和暖如春呵晨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背熬尺。 一陣腳步聲響...
    開封第一講書人閱讀 31,982評(píng)論 1 266
  • 我被黑心中介騙來泰國打工摸屠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粱哼。 一個(gè)月前我還...
    沈念sama閱讀 46,344評(píng)論 2 360
  • 正文 我出身青樓季二,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胯舷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,500評(píng)論 2 348

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