Apk反编译工具ApkTool

相关资源百度网盘

apktool

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: https://github.com/JesusFreke/smali

java -jar apktool.jar d [file.apk] -o [folder]
java -jar apktool.jar b [folder] -o [file.apk]

ShakaApktool

usage: ShakaApktool s[mali] [options] [--] [<smali-file>|folder]*
assembles a set of smali files into a dex file
 -?,--help                      显示帮助文本后退出.为调试选项指定的两倍
 -a,--api-level <API_LEVEL>     将按照API级别生成文件信息, 例如.14是ICS. 如果不指定, 默认为 15 (ICS).
 -f,--list-fields <FILE>        Lists all the field references to FILE
                                (<output_dex_filename>.fields by default)
 -j,--jobs <NUM_THREADS>        可用线程数量.默认为内核允许的数量,最大可调至6
 -m,--list-methods <FILE>       Lists all the method references to FILE
                                (<output_dex_filename>.methods by default)
 -o,--output <FILE>             dex文件名将被记录,默认命名为 out.dex
 -t,--list-types <FILE>         Lists all the type references to FILE
                                (<output_dex_filename>.types by default)
 -v,--version                   查看版本信息
 -x,--allow-odex-instructions   允许 odex 指令编译进 dex 文件.仅支持少数命令 -
                                那些可以存放至固定代码路径并且不会导致 dalvik 拒绝的类
 -X,--experimental              启用实验操作码进行编译,即使还不一定被Android运行支持

调试选项:
 -T,--print-tokens     显示每个完成的名字及文本
 -V,--verbose-errors   生成详细错误信息

******************** baksmali ********************

usage: ShakaApktool bs|baksmali [options] <dex-file>
disassembles and/or dumps a dex file
 -?,--help                                  显示帮助文本后退出.为调试选项指定的两倍
 -a,--api-level <API_LEVEL>                 The numeric api-level of the file
                                            being disassembled. 如果不指定, 默认为 15
                                            (ICS).
 -b,--no-debug-info                         不输出debug信息 (.local, .param, .line,
                                            etc.)
 -c,--bootclasspath <BOOTCLASSPATH>         A colon-separated list of
                                            bootclasspath jar/oat files to use
                                            for analysis. Add an initial colon
                                            to specify that the jars/oats should
                                            be appended to the default
                                            bootclasspath instead of replacing
                                            it
 -d,--bootclasspath-dir <DIR>               目录文件夹搜索 bootclasspath 文件.默认至当面目录
 -e,--dex-file <DEX_FILE>                   搜索文件名为 DEX_FILE 的dex文件,默认至
                                            classes.dex
 -f,--code-offsets                          反编译时添加注释包含代码的每个偏移
 -i,--resource-id-files <FILES>             the resource ID files to use, for
                                            analysis. A colon-separated list of
                                            prefix=file pairs.  For example
                                            R=res/values/public.xml:android.R=$A
                                            NDROID_HOME/platforms/android-19/dat
                                            a/res/values/public.xml
 -j,--jobs <NUM_THREADS>                    可用线程数量.默认为内核允许的数量,最大可调至6
 -k,--check-package-private-access          When deodexing, use the
                                            package-private access check when
                                            calculating vtable indexes. It
                                            should only be needed for 4.2.0
                                            odexes. The functionality was
                                            reverted for 4.2.1.
 -l,--use-locals                            output the .locals directive with
                                            the number of non-parameter
                                            registers, rather than the .register
                                            directive with the total number of
                                            register
 -li,--load-inline-method <file>            load inline method resolver from
                                            file
 -m,--no-accessor-comments                  don't output helper comments for
                                            synthetic accessors
 -n,--normalize-virtual-methods             Normalize virtual method references
                                            to the reference the base method.
 -o,--output <DIR>                          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
 -t,--implicit-references                   Use implicit (type-less) method and
                                            field references
 -v,--version                               查看版本信息
 -x,--deodex                                deodex the given odex file. This
                                            option is ignored if the input file
                                            is not an odex file
 -X,--experimental                          enable experimental opcodes to be
                                            disassembled, even if they aren't
                                            necessarily supported in the Android
                                            runtime yet

调试选项:
 -D,--dump-to <FILE>        dumps the given dex file into a single annotated
                            dump file named FILE (<dexfile>.dump by default),
                            along with the normal disassembly
 -I,--ignore-errors         ignores any non-fatal errors that occur while
                            disassembling/deodexing, ignoring the class if
                            needed, and continuing with the next class. The
                            default behavior is to stop disassembling and exit
                            once an error is encountered
 -N,--no-disassembly        suppresses the output of the disassembly
 -T,--inline-table <FILE>   specify a file containing a custom inline method
                            table to use for deodexing

java -jar ShakaApktool.jar d [file.apk] -o [folder]
java -jar ShakaApktool.jar b [folder] -o [file.apk]

问题记录

apk回编的时候出现:error=206, 文件名或扩展名太长

出现这个问题是因为反编译后在目标目录下的apktool.yml文件记录的doNotCompress内容太多。使用ShakaApktool3.0.0.jar版本代替Apktool.jar可以解决。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 记录一下解压一个apk,替换未加密的资源文件,然后再打包成apk,并签名的过程。 操作环境与工具 环境: Wind...
    qufl阅读 3,918评论 2 50
  • 前言 处理反编译,首先先要了解apk文件的结构,然后是编译过程,最后是反编译。反编译Apk的目的就是Apk拆成我们...
    yzzCool阅读 5,704评论 0 8
  • 作为一名客户端开发者,在使用别人Android应用的时候,你可能会遇到一些你觉得非常不错或者精致的布局、动画,你想...
    爱情小傻蛋阅读 1,366评论 2 1
  • 1. 为什么要反编译? 场景一 产品经理:xxx,反编译xxx的播放器,看看他们是怎么实现的? 场景二 测试:这个...
    伤口不该结疤阅读 12,121评论 7 51