郵箱大師 apk 引發(fā)的血案

0x00 起因

這是一個很狗血的故事臣嚣,我們一些同學(xué)在做反編譯apk的作業(yè)腐碱,然后呢突然有同學(xué)反饋就是說某郵箱大師的apk不能夠反編譯年缎,出現(xiàn)各種error忍弛。當(dāng)然起初我認(rèn)為是操作問題或者工具的問題,但是后來經(jīng)過我自己的實(shí)踐,發(fā)現(xiàn)的確也有這樣的問題渗勘。然后就開始了狗血之旅沐绒。error message如下:

com.googlecode.dex2jar.DexException: while accept method:[La/_;.a()V]
    at com.googlecode.dex2jar.reader.DexFileReader.acceptMethod(DexFileReader.java:694)
    at com.googlecode.dex2jar.reader.DexFileReader.acceptClass(DexFileReader.java:441)
    at com.googlecode.dex2jar.reader.DexFileReader.accept(DexFileReader.java:323)
    at com.googlecode.dex2jar.v3.Dex2jar.doTranslate(Dex2jar.java:85)
    at com.googlecode.dex2jar.v3.Dex2jar.to(Dex2jar.java:261)
    at com.googlecode.dex2jar.v3.Dex2jar.to(Dex2jar.java:252)
    at com.googlecode.dex2jar.v3.Main.doData(Main.java:43)
    at com.googlecode.dex2jar.v3.Main.doData(Main.java:35)
    at com.googlecode.dex2jar.v3.Main.doFile(Main.java:63)
    at com.googlecode.dex2jar.v3.Main.main(Main.java:86)
Caused by: com.googlecode.dex2jar.DexException: while accept code in method:[Landroid/_;.a()V]
    at com.googlecode.dex2jar.reader.DexFileReader.acceptMethod(DexFileReader.java:684)
    ... 9 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 4
    at com.googlecode.dex2jar.v3.V3CodeAdapter.visitUnopStmt(V3CodeAdapter.java:631)
    at com.googlecode.dex2jar.reader.DexOpcodeAdapter.x2x(DexOpcodeAdapter.java:529)
    at com.googlecode.dex2jar.reader.DexCodeReader.acceptInsn(DexCodeReader.java:425)
    at com.googlecode.dex2jar.reader.DexCodeReader.accept(DexCodeReader.java:337)
    at com.googlecode.dex2jar.reader.DexFileReader.acceptMethod(DexFileReader.java:682)
    ... 9 more
Done.

0x01 調(diào)查

既然有了這樣一個錯誤,那么自然就開始了Google之旅旺坠。通過各種Google之后首先先排除了是dex2jar這個工具的問題乔遮。當(dāng)然這個其中也嘗試了其他的各種工具想來替代的使用。比如:

但是可惜的是要么就是只有試用版坯辩,要么就是達(dá)不到我要的效果,我放棄了投機(jī)取巧的方式崩侠,還是安安靜靜地做個美男子去看問題吧漆魔。(浪費(fèi)大把時間。却音。有送。。)

既然不換工具僧家,那還是回到了dex文件本身,我大概也了解下結(jié)構(gòu)裸删。

以及反編譯之后的結(jié)構(gòu)

那么還是先做了反編譯:
java -jar baksmali-2.1.1.jar -o /test/ classes.dex
得到了:

根據(jù)我們的錯誤日志八拱,我們定位到問題就在[La/_;.a()V]這個地方。那么我找到了這個文件涯塔,字節(jié)碼如下:

.class public La/_;
.super Ljava/lang/Object;
.source "a.java"


# virtual methods
.method public a()V
    .registers 2

    .prologue
    .line 5
    double-to-int p3, v0

    move-wide/16 p54870, v0

    .line 6
    .local v0, "i":I
    nop

    .line 7
    return-void
.end method

網(wǎng)絡(luò)上說看雪上有一種常見的防護(hù)機(jī)制就是在smali中去寫廢代碼肌稻,但是從這個文件中我也沒有看到廢代碼。其實(shí)到了這里線索就斷了匕荸,就不知道應(yīng)該走了爹谭。

0x02 突破

在走投無路的時候突然就想到了是不是有可能保護(hù)的機(jī)制是一樣的,只不過不一定是廢代碼榛搔。那么接下來就是要做的是修改smali文件诺凡,將smali轉(zhuǎn)換成dex。使用了

java -jar smali-2.1.1.jar /Users/monkey/Documents/test -o classes.dex

但是無論我修改什么代碼貌似都會出現(xiàn)最初出現(xiàn)的那個錯誤日志践惑,緊接著我使用了老方法腹泌,就是傳說中的對比。我去下載了其他幾種apk尔觉,把字節(jié)碼的結(jié)構(gòu)和郵箱大師的結(jié)構(gòu)做了對比凉袱,發(fā)現(xiàn)其實(shí)其他apk并沒有出現(xiàn).smali這個文件,故而我就懷疑是不是這個文件本身就是阻礙反編譯的罪魁禍?zhǔn)住K晕覄h除了每個文件中的.smali文件专甩,大概有10多個钟鸵。接著打出dex,然后再用dex2jar對這個新的classes.dex反編譯涤躲,至少不報錯了棺耍。

0x03 結(jié)果

最后方法都試一樣的,使用JD-GUI打開jar文件篓叶,可以看到代碼了烈掠。這一路狗血的一塌糊涂。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缸托,一起剝皮案震驚了整個濱河市左敌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌俐镐,老刑警劉巖矫限,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異佩抹,居然都是意外死亡叼风,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門棍苹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來无宿,“玉大人,你說我怎么就攤上這事枢里∧跫Γ” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵栏豺,是天一觀的道長彬碱。 經(jīng)常有香客問我,道長奥洼,這世上最難降的妖魔是什么巷疼? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮灵奖,結(jié)果婚禮上嚼沿,老公的妹妹穿的比我還像新娘。我一直安慰自己瓷患,他們只是感情好伏尼,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著尉尾,像睡著了一般爆阶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天辨图,我揣著相機(jī)與錄音班套,去河邊找鬼。 笑死故河,一個胖子當(dāng)著我的面吹牛吱韭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鱼的,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼理盆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凑阶?” 一聲冷哼從身側(cè)響起猿规,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宙橱,沒想到半個月后姨俩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡师郑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年环葵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宝冕。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡张遭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出地梨,到底是詐尸還是另有隱情帝璧,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布湿刽,位于F島的核電站,受9級特大地震影響褐耳,放射性物質(zhì)發(fā)生泄漏诈闺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一铃芦、第九天 我趴在偏房一處隱蔽的房頂上張望雅镊。 院中可真熱鬧,春花似錦刃滓、人聲如沸仁烹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卓缰。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間征唬,已是汗流浹背捌显。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留总寒,地道東北人扶歪。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像摄闸,于是被迫代替她去往敵國和親善镰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

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