100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > linux apk 拆分 odex android平台下 apk jar dex odex vdex art文件相互转换 编译和反编译...

linux apk 拆分 odex android平台下 apk jar dex odex vdex art文件相互转换 编译和反编译...

时间:2019-02-08 11:53:03

相关推荐

linux apk 拆分 odex android平台下 apk jar dex odex vdex art文件相互转换 编译和反编译...

apk、jar、dex、odex、vdex相互转换java

1. ? to jar

1.1 odex to jar

1.2 dex to jar

1.3 apk to jar

输出结果可能有损

1)、用jadx工具将dex反编译出jar

2)、用dex2jar工具,反编译出jar,若是报错修改dex2jar工具源码

3)、odex to dex,而后执行1)2)linux

2. ? to dex

2.1 o/vdex to dex | dex to o/vdex

2.2 apk to dex

2.3 jar to dex

输出结果无损

1)、用odex2dex工具

2)、从apk解压出dex

3)、用dx工具

D:\Android\sdk\platform-tools\***Fm\os-framework>D:\Android\sdk\build-tools\27.0.2\dx --dex --output=target.jar os-framework_org.jarandroid

3. ? to apk

3.1 jar to apk

输出结果无损

将jar导入空工程,从新编译生成apkgit

3.2 dex to apk

输出结果可能有损

1)、dex to jar后,将jar导入空工程,从新编译生成apk;从apk中取出dex,替换到原来的apk中

2)、dex to jar后,修改jar源码,生成jar,用dx命令从新编译出dexgithub

3.3 odex/vdex to apk

输出结果可能有损

1)、odex/vdex to dex

2)、dex to jar

3)、jar to apkshell

4. ? to odex

4.1 apk to odex/vdex

4.2 jar to odex/vdex

4.3 dex to odex/vdex

输出结果无损

一、apk安装方式

1)、用空工程集成jar源码,生成apk

2)、在真机上安装apk

3)、拉出odex和vdex文件

二、使用dex2odex工具

windows

附逆向工具网站:sass

X:\Android\sdk\build-tools\**.*.*\dx.batapp

phone: /system/framework/dex2oat 等等ide

附逆向工具解析:

一、apktool(解包apk,打包apk)

解包apk

apktool d[ecode] [options]

打包apk

apktool b[uild] [options]

安装framework资源

apktool if|install-framework [options]

工具说明:

Apktool v2.2.0 - a tool for reengineering Android apk files

with smali v2.1.3 and baksmali v2.1.3

-advance,--advanced prints advance information.

-version,--versionprints the version then exits

usage: apktool if|install-framework [options]

-p,--frame-path

-t,--tag Tag frameworks using .

usage: apktool d[ecode] [options]

-f,--force Force delete destination directory.

-o,--output

-p,--frame-path

-r,--no-resDo not decode resources.

-s,--no-srcDo not decode sources.

-t,--frame-tag Uses framework files tagged by .

usage: apktool b[uild] [options]

-f,--force-all Skip changes detection and build all files.

-o,--output

-p,--frame-path

使用命令示例:

apktool.bat if framework-res\framework-res.apk -p .

apktool.bat d -f Settings.apk -p ..\..\framework

apktool.bat d -f system\priv-app\Settings\Settings.apk

二、smali/baksmali(apktool利用该工具来反编译/打包dex文件)

反编译jar/apk中的dex文件

java -Xmx1024M -jar baksmali.jar -l -o out x.jar

合成smali文件为dex文件

java –Xmx1024M -jar smali.jar -o "out\classes.dex" out

三、jd-gui (java 字节码反编译器: .class -> .java)

四、jadx (dex/apk 反编译器: apk/jar -> java)

五、deodex

SVADeodexer (art .oat)

解包odex,从新打包成dex,生成deodexed后的apk/jar

示例:

如何使用SVADeodexer deodex一个 rom 或者 手机?

adb pull /system/framework

adb pull /system/app

adb pull /system/priv-app

adb pull /system/build.prop

六、oatdump(分析oat文件)

oatdump

--list-methods --method-filter=getElem

--class-filter=com.qiku.android.server.systeminterface.util.SystemUtil

--oat-file=/data/dalvik-cache/arm64/system@framework@boot.oat

使用说明:

Usage: oatdump [options] ...

Example: oatdump --image=$ANDROID_PRODUCT_OUT/system/framework/boot.art

Example: adb shell oatdump --image=/system/framework/boot.art

--list-classes may be used to list target file classes (can be used with filters).

Example: --list-classes

Example: --list-classes --class-filter=com.example.foo

--list-methods may be used to list target file methods (can be used with filters).

Example: --list-methods

Example: --list-methods --class-filter=com.example --method-filter=foo

--class-filter=: only dumps classes that contain the filter.

Example: --class-filter=com.example.foo

--method-filter=: only dumps methods that contain the filter.

Example: --method-filter=foo

--export-dex-to=: may be used to export oat embedded dex files.

Example: --export-dex-to=/data/local/tmp

--addr2instr=

: output matching method disassembled code from relative

address (e.g. PC from crash dump)

Example: --addr2instr=0x00001a3b

Example: --no-dump:vmap

--no-disassemble may be used to disable disassembly.

Example: --no-disassemble

Native code disassembling

IDA (Commercial : 2350$ ~ 3525$)

objdump (free, prebuit in Android NDK)

64bit: aarch64-linux-android-objdump

${ndk}\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin

32bit : arm-linux-androideabi-objdump

${ndk}\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。