• <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>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2008年3月>
            2425262728291
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            前文 介紹了在Windows平臺利用強大的APK-Multi-Tool進行反編譯apk,修改smali源碼后再回編譯成apk的流程,最近受人之托,破解個apk,所幸的是所用到的這三個軟件都是跨平臺的,mac上也妥妥的。這里記錄下在mac上所用的東西和流程。 
            總共需要三個軟件,為了便于找到最新的版本,把官網(wǎng)也放后面:

            1. Apktool:http://ibotpeaches.github.io/Apktool/install/ 最新版本2.0.1
            2. dex2jar: https://github.com/pxb1988/dex2jar 最新版本2.0
            3. JD-GUI: http://jd.benow.ca/ 最新版本1.4.0 
              這三個軟件Apktool的安裝稍微麻煩點,其他都還好,基本上下載下來解壓了就能用。

            MAC上Apktool的安裝

            1,在官網(wǎng)鏈接里找到如下所示: 
            這里寫圖片描述
            基本上按照上面的6個步驟就ok了。第一步是下載一個shell腳本,保存的名字就是”apktool”,不要帶.sh后綴。可以復制到sublimetext,然后保存下。 
            2,下載最新的apktool-2,在bitbucket上: 
            這里寫圖片描述
            3,將所下載的jar文件改名為”apktool.jar” 
            4,將shell腳本”apktool”和”apktool.jar”放到 “/usr/local/bin”目錄下 
            5,增加這兩個文件可執(zhí)行權(quán)限,chmod a+x file 
            6,執(zhí)行shell apktool就ok了。 
            安裝完畢后可以運行apktool -v查看版本信息:

            Apktool v2.0.1 - a tool for reengineering Android apk files
            with smali v2.0.6 and baksmali v2.0.6
            Copyright 2014 Ryszard Wi?niewski <brut.alll@gmail.com>
            Updated by Connor Tumbleson <connor.tumbleson@gmail.com>
            usage: apktool
            -advance,--advanced   prints advance information.
             -version,--version    prints the version then exits
            usage: apktool if|install-framework [options] <framework.apk>
            -p,--frame-path <dir>   Stores framework files into <dir>.
             -t,--tag <tag>          Tag frameworks using <tag>.
            usage: apktool d[ecode] [options] <file_apk>
            -f,--force              Force delete destination directory.
             -o,--output <dir>       The name of folder that gets written. Default is apk.out
             -p,--frame-path <dir>   Uses framework files located in <dir>.
             -r,--no-res             Do not decode resources.
             -s,--no-src             Do not decode sources.
             -t,--frame-tag <tag>    Uses framework files tagged by <tag>.
            usage: apktool b[uild] [options] <app_path>
            -f,--force-all          Skip changes detection and build all files.
             -o,--output <dir>       The name of apk that gets written. Default is dist/name.apk
             -p,--frame-path <dir>   Uses framework files located in <dir>.
            
            For additional info, see: http://ibotpeaches.github.io/Apktool/
            For smali/baksmali info, see: http://code.google.com/p/smali/
            
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16
            • 17
            • 18
            • 19
            • 20
            • 21
            • 22
            • 23
            • 24
            • 25

            dex2jar和JD-GUI的安裝

            這兩個直接下載,然后解壓縮就ok: 
            這里寫圖片描述

            軟件的安裝就說到這,下面就是破解的過程了。為了檢測下是否能破解,我們先用Apktool反編譯,免得我們最后一場空。(只有Apktool能反編譯/回編譯,我們的破解才有意義)。 
            1,新建個apk文件夾,將待破譯的apk放進去,之后進到這個目錄運行命令: apktool d hongbao.apk 
            這里寫圖片描述

            yanzideMacBook-Pro:apk yanzi$ apktool d hongbao.apk
            I: Using Apktool 2.0.1 on hongbao.apk
            I: Loading resource table...
            I: Decoding AndroidManifest.xml with resources...
            I: Loading resource table from file: /Users/yanzi/Library/apktool/framework/1.apk
            I: Regular manifest package...
            I: Decoding file-resources...
            I: Decoding values */* XMLs...
            I: Baksmaling classes.dex...
            I: Copying assets and libs...
            I: Copying unknown files...
            I: Copying original files...
            
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12

            目錄如下: 
            這里寫圖片描述
            之后再運行命令回編譯apk: 
            apktool b hongbao (hongbao 就是反編譯出來的文件夾)

            yanzideMacBook-Pro:apk yanzi$ apktool b hongbao
            I: Using Apktool 2.0.1
            I: Checking whether sources has changed...
            I: Smaling smali folder into classes.dex...
            I: Checking whether resources has changed...
            I: Building resources...
            I: Building apk file...
            
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7

            這里寫圖片描述
            上面的build和dist就是回編譯apk過程中生成的東西,編譯出來的apk在dist目錄下,打開build/apk文件夾會發(fā)現(xiàn)少了original文件夾下的META-INF文件夾: 
            這里寫圖片描述
            也就意味著dist里的apk文件是沒有簽名的,這個稍后再談。 
            2,我們要用dex2jar將apk轉(zhuǎn)成jar文件,實質(zhì)是將apk里的classes.dex轉(zhuǎn)成jar。將dex2jar里的d2j_invoke.sh/d2j-dex2jar.sh增加可執(zhí)行權(quán)限。然后進到dex2jar這個文件夾下運行: 
            ./d2j-dex2jar.sh /Users/yanzi/apk/hongbao.apk  
            得到hongbao-dex2jar.jar文件。 
            3,打開JD-GUI,將hongbao-dex2jar.jar拖進去就看到源碼了。 
            通過看java源碼對比smali文件,修改后回編譯就ok了!

            如何手動給apk增加簽名?

            回編譯后的apk是安裝不成功的,總是提示 
            Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION] 
            實質(zhì)是沒簽名。 
            1,生成簽名:

            keytool -genkey -keystore hongbao.keystore -keyalg RSA -validity 10000 -alias hongbao
            
            • 1

            注意:上面-keystore后面跟的是簽名文件的名字,而-alias是別名,一般情況下-keystore后面跟-alias是一樣的,但其實兩者沒有關系,這也是我故意搞成不一樣的原因。 
            2,為apk增加簽名:

            jarsigner -digestalg SHA1 -sigalg MD5withRSA -tsa -verbose -keystore hongbao.keystore -signedjar hongbao-signed.apk hongbao.apk hongbao
            
            • 1

            注意: 
            1,最后的”hongbao”就是-alias后面帶的,必須保持一致。 
            2,如果不帶-digestalg SHA1 -sigalg MD5withRSA簽名后的apk安裝也是不成功的,說INSTALL_PARSE_FAILED_NO_CERTIFICATES的錯誤,如果不帶-tsa會報一個時間方面的警告。

            文中所提到的附件下載:

            1. Apktool
            2. dex2jar
            3. JD-GUI
            @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2017-11-30 16:37 聶文龍 閱讀(278) 評論(0)  編輯 收藏 引用
            久久亚洲AV成人无码电影| 久久精品99无色码中文字幕| 亚洲国产成人久久综合区| 久久99精品国产麻豆宅宅| 久久精品国产亚洲AV麻豆网站| 久久久久四虎国产精品| 久久香蕉国产线看观看猫咪?v| 精品多毛少妇人妻AV免费久久| 97精品国产91久久久久久| 亚洲国产精品成人久久蜜臀| 99re这里只有精品热久久| 欧美日韩成人精品久久久免费看| 一本一本久久A久久综合精品 | 一本一本久久A久久综合精品| 成人资源影音先锋久久资源网| 三级韩国一区久久二区综合| www久久久天天com| 99久久综合国产精品免费| 2020最新久久久视精品爱| 久久综合给合久久狠狠狠97色| 日韩欧美亚洲综合久久影院Ds| 久久精品国内一区二区三区| 性色欲网站人妻丰满中文久久不卡| 国产国产成人久久精品| 99久久99这里只有免费的精品| 久久九九兔免费精品6| 久久久久久亚洲精品不卡| 欧美伊香蕉久久综合类网站| 久久99国产综合精品| 婷婷综合久久中文字幕蜜桃三电影 | 色婷婷综合久久久久中文一区二区 | 麻豆久久久9性大片| 久久996热精品xxxx| 天天爽天天爽天天片a久久网| 久久精品aⅴ无码中文字字幕重口| 欧美精品国产综合久久| 久久久久国产一区二区| 日韩中文久久| 囯产极品美女高潮无套久久久 | 天天综合久久久网| 久久99精品久久久久久秒播|