单机游戏下载单机游戏下载基地
最新游戏|热门游戏|游戏大全|游戏专题
压缩解压光盘工具文字输入杀毒软件文件处理转换翻译股票证券办公学习编程软件虚拟光驱
当前位置:首页应用软件编程软件 → Android可视化反编译工具 绿色免费版
Android可视化反编译工具

Android可视化反编译工具绿色免费版

软件标签: 反编译

    现在的手机基本都被安卓和IOS占据了,IOS是封闭系统,不可能破解,但是对于开源的安卓,我们可以进行学习反编译,今天小编就分享一个Android可视化反编译工具

    反编译资料分享

    假设我们有一个应用,它的类文件编译后被单独拿了出来,即有两个文件app.apk和app.odex,把他们放在$AndroidDecompile下。

    1. 使用 baksmali.jar 将 odex 文件分解为 smali 文件

    $ java –jar baksmali-1.2.5.jar –x app.odex

    如果成功的话,会在 $AndroidDecompile下生成一个 out目录,里面是一些以“.smali”为后缀名的文件,在此不深究这些文件的作用。

    2. 使用 smali.jar将 out/目录下的smali文件转换为 classes.dex

    $ java -Xmx512M –jar smali-1.2.5.jar out –o classes.dex

    classes.dex便是Dalvik VM所使用的编译后的类文件格式,在正常的apk文件里都会有。

    3. 使用 dex2jar将classes.dex反编译为jar文件

    将下载后的dex2jar压缩包解压后,里面会有dex2jar.sh(和dex2jar.bat)文件,假如classes.dex文件与dex2jar.sh在同一目录下,使用以下方式将classes.dex反编译为jar文件:

    $dex2jar.sh classes.dex

    如果执行成功,则会在当前目录下生成反编译后的文件classes.dex.dex2jar.jar。

    dex2jar即可以操作dex文件,也可以直接操作apk文件,它的使用规则为:

    dex2jar file1.dexORapk file2.dexORapk ...

    4. 使用JD-GUI查看反编译后的jar文件

    JD-GUI是一个可视化的Java反编译代码查看器,它可以实时的将class文件反编译成java文件进行查看。解压下载的jd-gui文件,执行目录中的jd-gui可执行文件启动,然后加载上一步中反编译好的classes.dex.dex2jar.jar文件即可。

    5. 将从odex反编译后的classes.dex与其他资源文件重新打包成一个完整的apk

    以上我们假设的情况是应用程序编译后的类文件从apk文件中被剥离出来,下面要做的是如何将上述步骤中得到的classes.dex与apk中的其他文件重新打包成一个可用的apk。

    首先将反编译后的classes.dex和原先的app.apk(不含classes.dex)重新压缩成一个完整的app.apk(apk文件可用压缩工具打开),也就是说将classes.dex放进app.apk中。

    将下载的AutoSign文件解压,可以看到有signapk.jar(还有个Sign.bat)文件,执行以下命令给app.apk文件签名,就可以生成一个可以运行的apk文件了。

    $ java -jar signapk.jar testkey.x509.pem testkey.pk8 app.apk app_signed.apk

    6. apktool的使用

    网上还有个工具是apktool,可以对apk进行解析,反编译资源文件,并将类文件解析成smali文件;同时还可以将解析后的文件重新打包成apk。功能和以上介绍的几个工具类似,它的使用方法如下:

    apktool d app.apk and    反编译 app.apk到文件夹and

    apktool b app                从文件夹app重建APK,输出到ABC\dist\out.apk

    具体的使用方法在此不再赘述,请参考官方网站,或者:

    http://www.geeka.net/2010/05/apktool-decode-android-google-code/

    7. 我的 $AndroidDecompile目录下的文件的截图

    一些工具的帮助信息

    1. baksmali 的帮助信息

    usage: java -jar baksmali.jar [options] <dex-file>

    disassembles and/or dumps a dex file

     -?,--help                                 Prints the help message then exits.

     -b,--no-debug-info                         Specify twice for debug options

                               don't write out debug info (.local,

                                               .param, .line, etc.)

     -c,--bootclasspath <BOOTCLASSPATH>      The bootclasspath jars to use, for

                                               analysis. Defaults to

                                               core.jar:ext.jar:framework.jar:andro

                                               id.policy.jar:services.jar. If the

                                               value begins with a :, it will be

                                               appended to the default

                                               bootclasspath instead of replacing it

     -d,--bootclasspath-dir <DIR>                The base folder to look for the

                                               bootclasspath files in. Defaults to

                                               the current directory

     -f,--code-offsets                           Add comments to the disassembly

                                               containing the code offset for each address

     -l,--use-locals                             Output the .locals directive with

                                               the number of non-parameter

                                               registers, rather than the .register

     -o,--output <DIR>                         Directive with the total number of  register

                                               the directory where the disassembled

                                               files will be placed. The default is out

     -p,--no-parameter-registers                  Use the v<n> syntax instead of the

                                               p<n> syntax for registers mapped to

                                               method parameters

     -r,--register-info <REGISTER_INFO_TYPES>  Print the specificed type(s) of

                                               register information for each

                                               instruction. "ARGS,DEST" is the

                                               default if no types are specified.

                                               Valid values are:

                                               ALL: all pre- and post-instruction registers.

                                               ALLPRE: all pre-instruction registers

                                               ALLPOST: all post-instruction registers

                                               ARGS: any pre-instruction registers

                                                   used as arguments to the instruction

                                               DEST: the post-instruction

                                                   destination register, if any

                                               MERGE: Any pre-instruction register

                                                   has been merged from more than 1

                                                   different post-instruction register

                                                   from its predecessors

                                               FULLMERGE: For each register that

                                                 would be printed by MERGE, also show

                                                 the incoming register types that

                                                 were merged

     -s,--sequential-labels                       Create label names using a

                                               sequential numbering scheme per

                                               label type, rather than using the

                                               bytecode address

     -v,--version                               Prints the version then exits

     -x,--deodex                               Deodex the given odex file. This

                                               option is ignored if the input file

                                               is not an odex file

    2. smali 的帮助信息

    usage: java -jar smali.jar [options] [--] [<smali-file>|folder]*

    assembles a set of smali files into a dex file

     -?,--help            prints the help message then exits. Specify twice for

                          debug options

     -o,--output <FILE>   the name of the dex file that will be written. The default

                          is out.dex

     -v,--version         prints the version then exits

    3. auto-sign 的帮助信息

    SignApk.jar is a tool included with the Android platform source bundle.

    testkey.pk8 is the private key that is compatible with the recovery image included in this zip file

    testkey.x509.pem is the corresponding certificate/public key

    Usage:

    java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip update_signed.zip

    4. apktool 的帮助信息

    Apktool v1.3.2 - a tool for reengineering Android apk files

    Copyright 2010 Ryszard Wi?niewski <brut.alll@gmail.com>

    Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

    Usage: apktool [-v|--verbose] COMMAND [...]

    COMMANDs are:

        d[ecode] [OPTS] <file.apk> [<dir>]

            Decode <file.apk> to <dir>.

            OPTS:

            -s, --no-src

                Do not decode sources.

            -r, --no-res

                Do not decode resources.

            -d, --debug

                Decode in debug mode. Check project page for more info.

            -f, --force

                Force delete destination directory.

            -t <tag>, --frame-tag <tag>

                Try to use framework files tagged by <tag>.

            --keep-broken-res

                Use if there was an error and some resources were dropped, e.g.:

                "Invalid config flags detected. Dropping resources", but you

                want to decode them anyway, even with errors. You will have to

                fix them manually before building.

        b[uild] [OPTS] [<app_path>] [<out_file>]

            Build an apk from already decoded application located in <app_path>.

            It will automatically detect, whether files was changed and perform

            needed steps only.

            If you omit <app_path> then current directory will be used.

            If you omit <out_file> then <app_path>/dist/<name_of_original.apk>

            will be used.

            OPTS:

            -f, --force-all

                Skip changes detection and build all files.

            -d, --debug

                Build in debug mode. Check project page for more info.

        if|install-framework <framework.apk> [<tag>]

            Install framework file to your system.

    PC官方
    安卓官方手机版
    IOS官方手机版
    展开

    软件截图

    其它版本

    下载地址

    Android可视化反编译工具 绿色免费版

    • apk反编译
    apk反编译
    (16)apk反编译
    现在的一些安卓软件都非常强大,一些想要学习安卓开发的朋友就会对这些流行的安卓软件进行反编译处理,就是为了学习技术,小编这里给大家分享一下手机apk反编译软件,apk反编译工具可以用于对apk文件进行解包、打包、更多>>

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    (您的评论需要经过审核才能显示)

    装机必备软件

    关于飞翔 | 联系我们 | 大事记 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

    Copyright 2010-2013 单机游戏下载 (R) 版权所有 飞翔下载所有游戏及软件下载资源来源互联网,并由网友上传分享。如有侵权,请来电来函告之。
    飞翔忠告:抵制不良色情、反动、暴力游戏 合理安排游戏时间 享受健康生活【鄂ICP备13011873号-1】