• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            xiaoguozi's Blog
            Pay it forword - 我并不覺(jué)的自豪,我所嘗試的事情都失敗了······習(xí)慣原本生活的人不容易改變,就算現(xiàn)狀很糟,他們也很難改變,在過(guò)程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛(ài)傳出去,很困難,也無(wú)法預(yù)料,人們需要更細(xì)心的觀察別人,要隨時(shí)注意才能保護(hù)別人,因?yàn)樗麄兾幢刂雷约阂裁础ぁぁぁぁ?/span>
            android軟件破解的工具:
            smali.jar——google官方提供,主要作用是把smali文件打包成class.dex文件
            baksmali.jar——google官方提供,主要作用是把*.odex文件反編譯為smali文件
            apktool.jar——第三方提供?用于解析*.apk文件,生成smali文件和解析資源文件
            signapk.jar——apk簽名工具
            ddms——ADT中的一個(gè)調(diào)試工具


            破解工具的使用方法:
            http://sin90lzc.iteye.com/blog/1198173


            除了這些破解工具之外,還需要對(duì)smali語(yǔ)法有一定的了解。下面的網(wǎng)址對(duì)smali的語(yǔ)法有詳細(xì)的說(shuō)明:
            http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html


            最后,最好對(duì)Android的應(yīng)用開(kāi)發(fā)有一定的了解,至少對(duì)Android的四大組件有深刻的認(rèn)識(shí):Activity,Service,ContentProvider,BroadcastReceiver


            Android應(yīng)用程序在某些機(jī)器上不能運(yùn)行、崩潰的原因不外乎以下幾點(diǎn):
            原因一:該應(yīng)用程序需要依賴(lài)于生產(chǎn)廠商的框架(像三星,它對(duì)android的framework做過(guò)大量的修改)
            錯(cuò)誤提示:找不到field,找不到對(duì)應(yīng)的方法,找不到相應(yīng)的類(lèi)
            解決途徑:
            1.在smali中嘗試屏蔽掉相應(yīng)的field,method,或類(lèi)的調(diào)用,然后進(jìn)行大量測(cè)試,確保不影響正常使用
            2.反編譯framework,找到缺少的field,method,類(lèi)的相應(yīng)smali文件,根據(jù)smali文件編寫(xiě)java源碼。(當(dāng)smali文件比較小的時(shí)候,這個(gè)方法才可行,否則盡量避免用這種方法)
            3.實(shí)在無(wú)招的情況下,只能把第三方的framework的smali文件復(fù)制到自己的framework里面(非常槽糕的方法)。
            4.對(duì)于應(yīng)用程序需要依賴(lài)第三方低層的功能實(shí)現(xiàn)時(shí),而我們的低層卻沒(méi)有這樣的功能(比如說(shuō)視頻通話等),此時(shí)可以使用上面的方法一解決,也可以參考技術(shù)四。


            原因二:資源文件不存在,像color,drawable,string等等的資源
            錯(cuò)誤提示:資源文件找不到
            解決途徑:
            在技巧一中有詳細(xì)說(shuō)明。


            原因三:應(yīng)用程序需要一些函數(shù)庫(kù)的支持(在目錄/system/lib中缺少相應(yīng)的函數(shù)庫(kù))。
            錯(cuò)誤提示:一般都會(huì)拋出UnSatisfiedException異常,后面緊跟所缺函數(shù)庫(kù)的庫(kù)名。
            解決途徑:
            1.在第三方的函數(shù)庫(kù)中找到對(duì)應(yīng)的so文件,然后復(fù)制到自己的函數(shù)庫(kù)中。
            2.如果函數(shù)庫(kù)與函數(shù)庫(kù)之間有著各種耦合的時(shí)候,方法一可能就會(huì)不適用了(看運(yùn)氣唄)。這時(shí)候就只能反編譯so文件了(這個(gè)是C/C++的反編譯的應(yīng)用了,需要再學(xué)習(xí))


            原因四:應(yīng)用程序沒(méi)有相應(yīng)的權(quán)限
            錯(cuò)誤提示:nopermission
            解決途徑:
            1.在AndroidMenifest.xml文件中添加<user-permision />添加相應(yīng)的權(quán)限


            原因五:由于應(yīng)用程序本身的一些安全機(jī)制或條件判斷影響程序的表現(xiàn)
            解決途徑:
            1.反編譯成smali文件,使用技巧三的方法跟蹤程序的運(yùn)行,耐心地分析程序的邏輯,找到可疑smali代碼,屏蔽或修改代碼。


            原因六:數(shù)據(jù)庫(kù)的結(jié)構(gòu)不一樣
            錯(cuò)誤提示:缺少某個(gè)字段或類(lèi)型不匹配
            場(chǎng)情:比如android的音樂(lè)播放器與三星的音樂(lè)播放器,它們的數(shù)據(jù)庫(kù)結(jié)構(gòu)由MediaProvider.apk這個(gè)包提供。然而兩者在MediaProvider.apk中關(guān)于數(shù)據(jù)庫(kù)結(jié)構(gòu)的定義是不一樣的,三星音樂(lè)播放器需要更多的字段去保存信息。
            解決途徑:
            1.拿上面場(chǎng)情為例,反編譯MediaProvider.apk,從smali文件中找到組件ContentProvider的定義(smali文件), 在該smali文件中找到關(guān)于SQL生成表結(jié)構(gòu)的字符串(如:create table...),修改該SQL語(yǔ)句來(lái)適合三星音樂(lè)播放器的需要,然后重新打包回apk文件。


            原因七:應(yīng)用程序需要引用第三方提供商自定義的框架(比如,三星的/system/framework目錄下有twframework.jar、twframework-res.apk,這個(gè)就是三星的UI框架)

            錯(cuò)誤提示:
            解決途徑:
            1.屏蔽AndroidMenifest.xml文件中<uses-library android:name="sec_feature" />的代碼,一般這樣改動(dòng)是不可行的。
            2.在/system/etc/permission目錄下添加庫(kù)的聲明,如添加touchwiz.xml文件,文件內(nèi)容如下:
            <?xml version="1.0" encoding="utf-8"?>
            <permissions>
                <library name="touchwiz" file="/system/framework/twframework.jar"/>
            </permissions>
            最后,還需要把三星的twframework.jar、twframework-res.apk復(fù)制到/system/framework目錄下

            反編譯或破解的技巧總結(jié):
            一、對(duì)無(wú)應(yīng)用程序源碼的情況下,對(duì)資源文件的增刪改。
            概述:在無(wú)程序源碼,不重新編譯的情況下,刪除或修改資源文件都是非常簡(jiǎn)單的一件事情,網(wǎng)上也有很多的文章提到過(guò)。但是網(wǎng)上卻找不到在不重新編譯的情況下添加資源文件的方法。
            在不重新編譯的情況下添加資源文件的步驟:
            1.按正常的應(yīng)用程序開(kāi)發(fā)添加資源。比如,要添加一個(gè)string資源,在values/strings.xml上加上:
            <string name="newstring">content</string>


            2.一個(gè)編譯后的apk會(huì)在values目錄下多生成了一個(gè)public.xml文件,這個(gè)文件記錄了每個(gè)資源的引用編號(hào)。以添加string資源為例, 在public.xml文件中找到<public type="string" ...>中最后一個(gè)元素,在這個(gè)元素后添加
            <public type="string" name="newstring" id="0x7f0700a0" /><!--此時(shí)id就是string資源newstring的引用編號(hào),注意該id應(yīng)該是public.xml文件中是唯一值-->


            3.修改smali文件,使用新增的資源
            invoke-virtual {p0}, Lcom/sini/SfsdfsActivity;->getResources()Landroid/content/res/Resources;


            move-result-object v0


            const v1, 0x7f0700a0


            invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;


            二、編寫(xiě)smali文件
            概述:自己一手一腳去寫(xiě)smali文件是件超級(jí)困難的事情,如何快速地得到smali代碼呢?
            技巧:使用eclipse開(kāi)發(fā)工具,新建一個(gè)Android項(xiàng)目,用正常的開(kāi)發(fā)方式寫(xiě)一段java代碼(這個(gè)代碼就是你想在smali中完成的東西)。使 用eclipse的run->Android Application選項(xiàng) 生成apk文件,再把a(bǔ)pk文件反編譯,找到需要的smali代碼,然后復(fù)制這段代碼到需要的地方。NOTIC:復(fù)制的時(shí)候需要注意smali的變量 v0,v1...的正確性。


            三、跟蹤程序運(yùn)行
            概述:沒(méi)源碼=寸步難行!為了能跟蹤無(wú)源碼的apk程序的運(yùn)行,只能辛苦地修改smali添加跟蹤信息了。值得慶幸的是,android本身自帶有方便的日志API(Log.i()\Log.w()...);
            技巧:按技巧二的方法得到Log.i()的smali代碼,然后把這段代碼插入到你想跟蹤信息的地方。


            四、只修改smali中影響UI的代碼,保留功能代碼(適用于必須得把smali寫(xiě)回java源碼的情況)
            概述:這里最好的例子就是破解三星的通話界面。三星的通話界面程序Phone.apk中包含了視頻通話的功能,這個(gè)功能又需要依賴(lài)三星的一些低層實(shí)現(xiàn)。而 我們的系統(tǒng)中沒(méi)有視頻通話的功能,也沒(méi)有相應(yīng)的低層實(shí)現(xiàn)。但Phone.apk的主要功能是打電話,而這個(gè)功能android本身就自帶的。也就是說(shuō)三星 的Phone.apk與android的Phone.apk的核心功能是一樣的,只是UI不太一樣而已。此時(shí)應(yīng)該只修改smali中的影響UI的代碼,屏 蔽掉
            smali中對(duì)視頻通話的調(diào)用。
            技巧:找到程序中影響UI的Actvity,然后根據(jù)smali文件的內(nèi)容,寫(xiě)java源碼
            posted on 2013-02-17 14:52 小果子 閱讀(3353) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 學(xué)習(xí)筆記Android & Ios
            色天使久久综合网天天| 久久久久亚洲AV综合波多野结衣| 久久精品无码午夜福利理论片| 国产成人久久激情91| a级毛片无码兔费真人久久| 亚洲一区精品伊人久久伊人| av无码久久久久不卡免费网站| 一级做a爰片久久毛片看看| 久久精品国产福利国产秒| 色播久久人人爽人人爽人人片AV | 亚洲午夜精品久久久久久app| 久久www免费人成看片| 久久久久人妻精品一区三寸蜜桃| 亚洲AV无码久久精品蜜桃| 精品无码久久久久久久久久| 久久精品国产99久久久| 久久久无码精品亚洲日韩京东传媒 | 久久国产一区二区| 久久人人爽人人人人爽AV| 狠狠人妻久久久久久综合| 久久精品国产亚洲AV电影| 国产午夜精品久久久久九九| 日产精品久久久久久久性色| 中文成人久久久久影院免费观看| 91性高湖久久久久| 91精品国产乱码久久久久久| 亚洲国产精品无码久久一线| 欧美精品国产综合久久| 欧美午夜A∨大片久久 | 日本精品久久久久久久久免费| 91精品国产综合久久四虎久久无码一级 | 中文字幕无码久久精品青草| 久久久久亚洲精品天堂久久久久久 | 久久精品一区二区| 97久久精品人妻人人搡人人玩| 午夜久久久久久禁播电影| 亚洲精品国产字幕久久不卡| 久久久久亚洲av综合波多野结衣 | 亚洲伊人久久成综合人影院 | 久久se这里只有精品| 蜜桃麻豆www久久|