V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiner
V2EX  ›  推广

Android apk 加壳技术的工作流程及实现步骤

  •  
  •   xiner · 2017-06-06 14:27:34 +08:00 · 1696 次点击
    这是一个创建于 2529 天前的主题,其中的信息可能已经有所发展或是发生改变。

    什么是加壳?加壳就是在二进制程序中植入一段代码,运行时优先取得程序控制权,然后做一些额外的工作,它的作用是阻止对程序反汇编分析,从而达到它不可告人的目的,加壳技术也常用来保护软件版权,有效防止软件被破解。众所周知,Android 应用为了有效防止被反编译以及二次打包,会使用 Android apk 加壳 http://www.kiwisec.com/ 技术实现安全保护。

    加壳程序工作流程:

    1、加密源程序 APK 文件为解壳数据

    2、把解壳数据写入解壳程序 Dex 文件末尾,并在文件尾部添加解壳数据的大小。

    3、修改解壳程序 DEX 头中 checksum、signature 和 file_size 头信息。

    4、修改源程序 AndroidMainfest.xml 文件并覆盖解壳程序 AndroidMainfest.xml 文件。

    Android apk 加壳技术实现步骤:

    1、 apktool 反编译 apk 文件,得到反编译后文件夹( assets(项目原始的 assets),smali (项目的经过特殊处理的代码库,后缀 smali ),res (项目原始 res ),AndroidManifest.xml (项目原始 manifest 文件))

    2、 创建一个新的 android 项目,实现相关的类(尽量不去使用 xml,所有需要用到的内容用代码实现),并生成 apk 文件

    3、使用 apktool 反编译 2 (步骤 2 )中生成的 apk 文件,得到 smali 文件夹

    4、将 3 (步骤 3 )中得到的 smali 文件夹加入 1 (步骤 1 )中的 smali 文件夹,并修改 1 (步骤 1 )中的 AndroidManifest.xml,比如说设置应用从自己的 activity 启动,执行部分代码后再跳转至原始应用的启动页。

    5、使用 apktool 对处理完的文件夹进行编译,得到 apk 文件(未签名),然后再进行签名,得到已签名 apk 文件。

    几维安全平台是专业的 Android apk 加壳保护平台,Android 应用主要保护是在 dex 加壳的基础上实现的,通过给 Android apk 加壳实现 Android 应用加密保护,防止 Android apk 被反编译以及破解。更多 Android apk 加壳技术请到几维安全官网查阅。

    chenyiping1995
        1
    chenyiping1995  
       2017-06-06 15:48:08 +08:00 via Android
    @Livid 这算是硬广么
    Livid
        2
    Livid  
    MOD
       2017-06-06 15:49:04 +08:00
    @chenyiping1995 是。谢谢举报。

    会移动到 /go/promotions

    @xiner 你好,今后请把软文发布到这个节点: /go/promotions,谢谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1009 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:12 · PVG 04:12 · LAX 13:12 · JFK 16:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.