学习
实践
活动
工具
TVP
写文章

9.5.3 Android Apk 反编译 & 9.5.4 Android Apk 加密

Android的应用程序Apk文件(即app安装文件,Android系统会自动识别后缀为apk的文件,并将之认为是app安装文件,可以选着进行安装)是一个压缩文件,可以通过普通解压工具(如WinRAR、 我们找来一个Apk文件 (可以下载一个软件的安装包来做实验,或者自行用Android studio通过签名生成apk文件(对签名生成apk不了解的同学,可以戳一下这里详细了解一下);这里用的就是撰写本文时用 Android studio通过签名生成的apk文件app-release.apk), 然后使用普通解压工具(如WinRAR、360解压等)直接解压app-release.apk,可以得到文件夹app-release 进入文件夹app-release,目录如下,可以看到许多相对于Android开发者很熟悉的东西,类似于Android开发的时候所使用的工作目录和对应的文件夹、文件等等, 像图中——用来放置代码、音像图片等各种资源的的 9.5.4 Android Apk 加密 由于Java字节码的特殊性,使得它非常容易被反编译。

71910

Classyshark ---Android apk Viewer

这是一个非常有用的Android app 信息Viewer 工具。其可以查看App 的API的调用,So库 我们可以用它来分析app的系统框架,找到app的性能瓶颈做初步的分析。 可以在这里下载。 Remember that ClassyShark does not stop to Android APK, but you actually see the content of .dex files AndroidManifest.xml file and the classes and res folders at the very top of the tree, as we just opened the APK ) Raise your hand if you found yourself in the situation of counting the number of methods in your APK In a blink of an eye, you will have a browsable chart of the methods used by everything in you APK, with

17910
  • 广告
    关闭

    年末·限时回馈

    热卖云产品年终特惠,2核2G轻量应用服务器6.58元/月起,更多上云必备产品助力您轻松上云

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android APK 签名原理

    Android APK 签名原理涉及到密码学的加密算法、数字签名、数字证书等基础知识,这里做个总结记录。 Android APK 签名流程 为了防止 APK 在传送的过程中被第三方篡改,Google 引入了签名机制。 签过名的 APK 文件比未签名的 APK 文件多了一个 META-AF 文件夹,包含以下三个文件。签名的信息就在这三个文件中。 Signature-Version: 1.0 Created-By: 1.0 (Android) SHA1-Digest-Manifest: MJQyZ0dc4dv7G9nlJPAMQLwEwbU= X-Android-APK-Signed 2、APK 作者身份唯一性校验 当在 Android 设备上安装 APK 包时,会从存放在 CERT.RSA 中的公钥证书中提取公钥,进行 RSA 解密来校验安装包的身份。

    2.1K30

    Google Authenticator APK Android

    凭借黑暗主题,支持Android Wear和通过QR码自动设置,开始使用Google身份验证器以确保您的浏览安全是一件轻而易举的事。 下载地址:蓝奏云

    40010

    Android 构建多APK

    Android 开发过程中,总是会遇到这样的场景: 1,app需要交付给不同的客户,每个客户都有自己相关的定制,这时候应该如何构建? 2, app上线连接生成环境,开发使用开发环境,测试使用测试环境,我想同时安装这3个环境的apk应该怎么办? 这篇文章就是介绍如何解决上述中提出的问题。 APK Flavor定制开发 要想进行APK的定制开发,必须要了解flavorDimensions,flavorDimensions 定义了app中的维度数量。 在定制不同的Flavor 和 BuildTypes 时, 总是会组合出很多其实我们不需要的APK类型,通过下面的方式可以过滤调那些我们不需要的APK,这样看起来也会清爽很多。 ' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply from: "${rootDir}/customization.gradle

    12430

    android所有apk位置

    最近在倒弄个东东,需要实现上传分享功能,其中就涉及到一个问题,如何导出已安装的apk文件,通过百度google,发现系统安装了一个应该后都会将apk备份,我要做的工作就是找到这个apk,经过实践发现系统将会备份到 3个地方: 1、系统签名的软件:/system/app 2、安装到内存上的非系统签名软件:/data/app 3、安装到sd卡上的非系统签名软件:/mnt/asec/包名-数字/pkg.apk

    11130

    android studio打包apk

    11130

    android远程装apk

    122.112.209.33 -i KeyPair-21ae.pem -Nf adb connect 127.0.0.1:$port adb install -r app-debug.apk 122.112.209.33 -i KeyPair-21ae.pem -Nf adb connect 127.0.0.1:4001 adb install -r com.MobileTicket_4.1.9_194.apk adb install -r XposedInstaller_3.1.4.apk adb install -r app-debug.apk

    40720

    Android笔记】apk嵌套

    a.apk-主应用 b.apk-被启动应用 主要思想:把b.apk放到assets目录下,由于有大小限制(1M),所以改名成b.mp3(因为mp3,jpg,png,mp4等不会检查,不会限制大小),然后在用的时候再改回来 void intallApp(Context context) { try { String path = context.getFilesDir().getAbsolutePath()+ "/b.apk )) { f.createNewFile(); } InputStream is = context.getAssets().open("b.mp3");//assets里的文件在应用安装后仍然存在于apk cmd); Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW ); String type = "application/vnd.android.package-archive"; /* 设置intent的file与MimeType */ intent.setDataAndType

    15140

    Android APK编译流程

    apkAndroid Package的简写, 在平时的开发过程中,通过点击Run app 按钮 或者 在命令行中输入 . /gradlew ***(taskName) 这样Android Studio就会启动构建流程,最终输出一个我们想要的APKAPK 打包器将 DEX 文件和编译后的资源合并到一个 APK 中。不过,在将应用安装并部署到 Android 设备之前,必须先为 APK 签名。 3. zipalign是一个android平台上整理APK文件的工具,它对apk中未压缩的数据进行4字节对齐,对齐后就可以使用mmap函数读取文件,可以像读取内存一样对普通文件进行操作。 参考文章: Android-Studio配置构建 浅谈Android打包流程 apk打包流程 END!

    46620

    实现Android APK瘦身99.99%

    下面,让我们使用 Android Studio 的 APK Analyser (https://developer.android.com/studio/build/apk-analyzer.html) > <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent ="http://schemas.android.com/apk/res/android" package="c.c"> <application android:icon xmlns:android="http://schemas.android.com/apk/res/android" package="c.c"> <application android 不幸的是,Android 系统拒绝了这个非法的 APK,因此看上去这里另有玄机。

    81430

    Androidapk加固介绍

    image.png Android中加壳的原理: 在加固的过程中需要三个对象: 1、需要加密的Apk(源Apk) 2、壳程序Apk(负责解密Apk工作) 3、加密工具(将源Apk进行加密和壳Dex 合并成新的Dex) 主要步骤: 拿到需要加密的Apk和自己的壳程序Apk,然后用加密算法对源Apk进行加密在将壳Apk进行合并得到新的Dex文件,最后替换壳程序中的dex文件即可。 得到新的Apk,那么这个新的Apk我们也叫作脱壳程序Apk,已经不是一个完整意义上的Apk程序了,他的主要工作是:负责解密源Apk.然后加载Apk,让其正常运行起来。 ?

    73720

    Android apk解包和打包

    /RetroArch_aarch64.apk 或者 apktool d -f . /RetroArch_aarch64.apk -o RetroArch_aarch64 打包 apktool b RetroArch_aarch64 生成的apk默认放在RetroArch_aarch64 /dist目录中 RetroArch_aarch64.apk 签名 进入生成的apk目录 cd RetroArch_aarch64/dist 生成签名 keytool -genkey -alias psvmc 目录中就会生成psvmc.keystore文件 签名打包 jarsigner -verbose -keystore psvmc.keystore -signedjar RetroArch_aarch64_new.apk RetroArch_aarch64.apk psvmc 生成的RetroArch_aarch64_new.apk就是签名后的文件了

    1.1K30

    android apk获取系统签名

    android 打包系统APK 插入获取root权限: 一 准备材料 1 signapk包 1)通常在源码环境的build\tools\signapk目录下,包含如下文件: 拿到上述文件之后还不能直接签名 signapk.java代码目录)下执行: E:\signapk>java SignApk.java 生成如下图的两个class文件: 2)、新建路径:E:\signapk\temp\com\android signapk.jar.zip) 2 签名文件 build/target/product/security/ platform.x509.pem、platform.pk8(需要下载安卓源码) 二 使用Android =“android.uid.system” 四 生成系统签名APK文件 1 在E盘中创建目录signapk (E:\signapk),把下载到的signapk.jar解压到该目录下: 2 系统的签名和需要打包的 E:\signapk\a.apk launcherApp.apk 然后发现生成一个launcherAPP.apk文件,这就是经过系统签名的文件了。

    57720

    查看Android apk签名信息

    必须先安装jdk并配置好环境变量,然后运行->CMD->输入以下命令 keytool -list -printcert -jarfile app.apk WmImac-52:~ fanyuanhua$ /fanyuanhua/2019-10/备忘录记事本/10.25/app-tencent-release-11.1.2_2019-10-25_11-50-06_legu_aligned_signed.apk destalias otheralias 删除别名: keytool -delete -alias myalias -keystore my.jks -storepass jkspassword 查看.apk 包里的签名详细: jarsigner -verify -verbose -certs app-release.apk 通过命令生成密钥库和别名 keytool -genkey -alias myalias

    18920

    Android 反编译apk 详解

    7  使用工具:      CSDN上下载地址: apktool (资源文件获取)  下载        dex2jar(源码文件获取) 下载        jd-gui  (源码查看) 下载 Android 反编译成java源码(classes.dex转化成jar文件) jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件 反编译流程: 一、apk反编译得到程序的源代码、 (命令中test.apk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktool.bat   d  -f    [apk文件 ]   [输出文件夹]) ? 三、 图形化反编译apk(本人未使用过) 上述步骤一、二讲述了命令行反编译apk,现在提供一种图形化反编译工具:Androidfby 首先,下载上述反编译工具包,打开Androidfby目录,双击Android 反编译工具.exe,就可以浏览打开要反编译的apk ?

    1.1K40

    Android APK 签名校验

    其实,在Android的源代码里包含了一个工具,可以对apk文件进行签名,具体的代码位置在build\tools\signapk目录下,通过分析其中的SignApk.Java文件,可以大致了解签名的过程 所以,如果要重新打包后的应用程序能再Android设备上安装,必须对其进行重签名。 大家知道,Android平台上所有应用程序安装都是由 PackageManangerService(代码位于 frameworks\base\services\core\java\com\android Android应用程序签名只是用来解决发布的应用不被别人篡改的,其并不会对应用程序本身进行加密,这点不同于Windows Phone和iOS。 2)Android并不要求所有应用程序的签名证书都由可信任CA的根证书签名,通过这点保证了其生态系统的开放性,所有人都可以用自己生成的证书对应用程序签名。

    20310

    Android APK 加固重新签名

    APK 加固流程 打包APK 通过 . /gradlew assembleRelease 命令打包,此时的apk没有加固,不符合安全需要 登录腾讯云执行加固操作 加固使用 腾讯云 -> 移动应用安全 -> 应用安全 加固方案,加固服务需要认证 签名命令 jarsigner -verbose -keystore keystore文件路径 -signedjar 签名后生成的apk路径 待签名的apk路径 alias别名 个人本地apk添加签名, 签名文件 keystore 和 apk 都在同一个目录下, 签名后的 apk1.apk 也在本地 $ jarsigner -verbose -keystore . \myapp1.apk .

    38030

    Android减包 - 使用APK Analyzer分析你的APK

    本文是对 Analyze Your Build with APK Analyzer 的翻译。 Android Studio 2.2包含了APK Analyzer,通过它我们能够直观地看到APK的组成。 (译注:新版APK和旧版APK之间文件大小的差异) 这里有3种方法访问APK Analyzer: 拖拽APKAndroid Studio的编辑窗口。 切换到Project视图,并且双击APK文件。 v=ZiP3BGVpE9E 注意:当使用APK Analyzer分析debug的APK,请使用Build > Build APK生成的APK。点击Run将会生成Instant Run的APK。 Referenced Method列是DEX文件中引用的全部方法,它包含了你定义的方法、依赖的library、定义在标准Java和Android包中的方法。 ---- 作者简介:damonxia(夏正冬),天天P图Android工程师

    1.9K60

    扫码关注腾讯云开发者

    领取腾讯云代金券