apktool逆向apk包

  在AndroidStudio创建so一节里创建了so,并且在java里面调用so的HelloWorld方法,编译Android Studio后生成包app-debug.apk。

在逆向apk时如果该apk引用了so的话,直接用Android Killer肯定没法直接得到so里的代码,我们需要先把apk文件解包,再读取so中的代码。下面介绍用apktool解apk包。

一 工具准备

  1 下载apktool,apktool下载地址:https://ibotpeaches.github.io/Apktool/。我下载的是2.3.4版本,把下载的apktool_2.3.4.jar文件改名为apktool.jar

  2 新建文本文件重命名文件为apktool.bat,编辑输入以下内容:    

    @echo off
    if "%PATH_BASE%" == "" set PATH_BASE=%PATH%

    set PATH=%CD%;%PATH_BASE%;

    java -jar -Duser.language=en "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9

  3 把apktool.jar和apktool.bat都放到同一个文件夹下,我放在了E:\Android\apktool目录。

  4 打开命令行,来到apktool所在目录,然后输入apktool,成功会显示apktool的版本信息和帮助信息,如图:   (报错Unable to access jarfile...的话看看apktool_2.3.4.jar文件改名为apktool.jar没有)

  

二 解包apk

  1 cd进入apktool所在目录,用apktool d命令解包apk,解包完成会在apktool目录生成跟apk同名的文件夹。

    

  2 解包成功后可以在apktool目录看到app-debug文件夹,打开app-debug\lib目录,里面有不同平台的文件夹,里面有各个平台的so。再用工具去破解修改so就可以了(下一节破解so)。

三 重打包apk

  so修改完成后,我们需要重新打包apk让我们的修改生效。重打包用apktool b命令,可以用-o重命名apk。

  1 cd来到apktool目录,使用apktool b app-debug -o app-debug.apk命令重打包apk,成功后看到在app-debug文件夹同级目录生成了同名的apk    

    如果使用apktool b app-debug -o newapp.apk  命令重打包apk,成功后看到在app-debug同级目录生成newapp.apk。

原文地址:https://www.cnblogs.com/fengxing999/p/10019513.html

时间: 2024-10-18 10:17:21

apktool逆向apk包的相关文章

apktool 反汇编apk包

apktool  可反汇编 apk包 1.java的环境要配好 2.首先下载 apktool.jar,apktool.bat ,aapt.exe .可进官网下载http://code.google.com/p/android-apktool/ 或者下载压缩包 3.命令行进入apktool.bat的文件目录 apktool d -f TESTNAME.apk dest_folder 反编译TESTNAME apk到文件夹dest_folder apktool b ABC 从文件夹ABC重建APK,

centos反编译APK包

centos反编译APK包 实验目的 线上linux上传游戏包,PHP调用反编译命令解包 实验环境 centos6.4 Linux localhost.localdomain 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 2212:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux nginix1.8.0 php5.4 mysql5.5 操作步骤 1.rqm -ql | grep java 2.yum -y install ja

安卓应用反编译(二)-APK包反编译

第二章 APK包反编译 被编译器处理过的代码和资源已经打包成了APK,有的甚至被转化成了二进制文件.但是我们也有一些方法,把这些编译过的内容给变回原来的样子,这个过程叫做-反编译. 反编译分为两个部分:一个是资源文件,一个是java文件.so文件是c++编译的结果,可以认为是不可反编译的(反编译成汇编指令,估计大部分人也看不懂). 2.1 反编译资源文件 APK tool是反编译的有力工具,据说是谷歌提供的官方的反编译工具,可以把APK目录解包,资源文件全部还原成编译前的样子,而dex文件反编译

Android获取APK包名的几种方法

Android获取APK包名的几种方法:1.adb shell pm list package -f | findstr 关键字 #只能获取到包名,主Activity名无法获取到 2.使用aapt--aapt是sdk自带的一个工具,在sdk\builds-tools\目录下 运行后的结果中以下两行分别是应用包名package和入口activity名称 package: name=’com.estrongs.android.pop’ launchable-activity: name=’com.e

使用ClassyShark分析Apk包的信息

欢迎Follow我的GitHub, 关注我的CSDN. 应用本质上是一个apk包, 即一个zip包, 可以直接显示其中的内容. 通过apk文件, 我们可以获知apk的版本信息, so库和第三方库, 并了解一些主流公司的应用框架. 分析工具主要是ApkTool和ClassyShark, 本人比较喜欢Shark(鲨鱼). 本着窥探的心理, 我给大家简单分析一下–美团. 恭喜她, 中奖了! 美团. 让我们看看, 有什么好玩且有用的架构信息? 1 框架 噢, 美团的编译版本非常新, 紧跟时代, 23版本

apk去广告工具(利用apktool去除apk文件里的广告)

基本知识 apk安装包的文件结构 以知名桌面软件“LauncherPro”为例,apk安装包文件目录: 文件目录如下: - META-INF - res - anim - color - drawable - drawable-hdpi - drawable-land - drawable-land-hdpi - drawable-mdpi - drawable-port - drawable-port-hdpi - layout - layout-land - layout-port - xm

Linux获取apk包名,版本号

1.将来aapt和apktool拷贝到/usr/bin/下面 2.运行aapt报错:-bash: /usr/bin/aapt: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory解决:反查需要的文件在哪个包中yum whatprovides */ld-linux.so.2在获取的列表中选择安装glibc-2.12-1.132.el6_5.1.i686yum -y install glibc-2.12-1.132.e

如何用同一份代码生成不同包名的APK包

有时候,我们需要用同一份生成几个不同的APK包在手机上测试,如果不修改配置,安装新APK时,会覆盖之前的APK.解决方法: 1.修改AndroidManifest中的包名: package="com.mini.app.abcd",将包名更改,重新clean一下,对应的gen文件下面的包名也会自动更新 2.修改APP名字(便于区分): android:label="@string/mcc_app_name" >,在Strings里找到对应的APP名字,修改为新A

Ubuntu下面有adb工具安装和卸载apk包

今天在Ubuntu下面使用adb安装软件包(成功):/sdk/platform-tools$ ./adb install    ~/Downloads/com.douban.book.reader_31.apk 2271 KB/s (21646370 bytes in 9.304s) pkg: /data/local/tmp/com.douban.book.reader_31.apk Success 后面尝试adb卸载出问题拉,提示Failure/sdk/platform-tools$ ./ad