Apk加壳完整示例

Android app加壳原理分析及壳程序编写 Android应用程序加壳是一种保护机制,通过在原始APK文件的外部添加额外的层(壳),使得攻击者更难分析、修改或破解应用程序。下面是一个整体加载dex文件的壳程序,它会解密并加载解密后的dex文件,壳程序的实现在native层,增加了静态分析的难度。核心点在于壳程序会先于被保护的代码运行,它负责检查运行环境是否安全、解密并执行我们的代码。newDexClassLoader 创建新的类加载器,加载已解密的dex文件。壳程序启动入口,它负责解密并加载原代码dex文件,并替换当前的类加载器。 阅读详情

AndroidShell

Android APK 加壳保护


原理介绍

为了防止直接对APK反编译,提高Android 程序安全性,可以给真正的APK加上一个外壳,当外壳运行的时侯,把真正的程序解密出来,动态加载到系统中。


基本步骤:
1 : 将我们的APK打包(AndroidShellDome)
2 :运行外壳程序,就是保护我们直正APK的程序,得到 classes.dex 文件 (AndroidShell)
3 : 运行加壳程序(ApkShellUtil),将我们要保护的APK 合并(可加密)到外壳程序的classes.dex中
4 : 将合并的后的classes.dex 放入 外壳程序(AndroidShell)bin 目录下重新运行打包
5 : 在外壳程序的 Application 中将真正的APK解密并释放出来加载运行

需要注意的问题

  1. 程序中所用到的资源文件要全部复制到 外壳程序中
  2. 应用中 AndroidManifest.xml 中所有内容需要在外壳程序的AndroidManifest.xml 重新注册
  3. 如果应用中定义了自己的Application 需要在 外壳程序中添加

    xxx.xxx.Application 是指我们定义的Application全称


APK: 需要加壳的程序

要加壳的程序

APKshell : 需要加的壳

保护程序


示例代码

https://github.com/longtaoge/AndroidShell


参考资料

本示例完全参照以下博客内容实现,感谢他们的奉献。

Jack_Jia的博客

http://blog.youkuaiyun.com/jiazhijun/article/details/8678399

pvlking的专栏

http://blog.youkuaiyun.com/pvlking/article/details/42168233

Apk源码的加固(加壳)原理解析和实现 好久没写博客了,要深刻检讨下!前言: 在Android中没有经过加密的Apk给人的感觉就是在裸奔,通过apktool,dex2jar,AndroidKill等各式各样的反编译工具就可以轻松的获取其smail代码,如这个叫SourceProject的helloworld程序被apktool反编译后,对于懂smail语法的逆向工程师来说就一览无余了。破解与反破解是相对的,所以我们尽可能的给自己的Apk 阅读详情

相关推荐

Android APK加壳技术方案

Android APK加壳技术方案

gfdhjf的博客 902

Android Apk加壳技术实战详解

前言前几天面试了一家信息加密相关的公司,经过两轮面试原以为坐等HR,结果还有一个实践测试ORZ…面试这么多家公司,真心觉得这家公司很特殊,尤其是那个逻辑测试…算了,不扯远了,走回正题。 面试官加我QQ后,扔来了链接: Android的实践:APK加壳【1】初步方案实现详解 嗯…不会,没接触过!果然是信息加密的公司/(ㄒoㄒ)/~~ 此处省略∞个字。 结合文章内容,自己又百度了一些相关文章,

DeMonnnnnn 1万+

apk加壳工具

搬运自看雪,请自行查毒。程序需要jdk支持。使用前请配置好jdk http://bbs.pediy.com/showthread.php?t=177590 测试过的程序:(作者统计的) 拉卡拉 3.0.2 龙斗士 2.2.2 Angry_Birds_3.1.2.apk (愤怒的小鸟) leshua_2.3.0.apk  (乐刷 2.3.0) tom猫.apk (1.3.6) es

LIAN_1988的专栏 3118

Android之Apk加壳

基于ADT环境开发的的实现,请参考: Android中的Apk的加固(加壳)原理解析和实现  类加载和dex文件相关的内容,如:Android动态加载Dex机制解析  一、什么是加壳? 加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。是应用加固的一种手法对原始二进制原文进行加密/隐藏/混淆。壳最本质的功能就是实现加载器。 未加...

LVXIANGAN的专栏 8552

Android APK加壳技术实践与案例分析

在移动应用领域,APK加壳技术作为一种重要的安全防护手段,其核心目的是保护开发者辛苦编写的代码不被轻易反编译和盗用。加壳,通俗地说,就是给APK文件“穿上一层外衣”,通过一系列的加密和混淆手段,使得应用程序在运行时能够自动解密和还原代码,同时对恶意的分析和攻击形成有效的防御。APK加壳技术的实现往往需要开发者深入理解Android应用的运行机制,特别是对Dex文件的处理。Dex文件包含了应用的编译后的代码,是APK加壳过程中需要重点关注的对象。

weixin_33597080的博客 1406

Android APK加壳技术源码解析与实战

APK加壳技术通过在原始应用(宿主APK)外部封装一层“壳”程序,实现对等关键组件的加密与隐藏。运行时由壳率先执行,完成解密、内存加载等操作后再移交控制权给原Application。其本质是代码保护与动态加载的结合,有效对抗静态反编译分析。在Android应用的安全防护体系中,类加载机制是实现代码保护的核心环节之一。传统的APK安全策略往往依赖混淆和签名校验,但这些手段难以抵御高级逆向分析工具的静态解析。而通过自定义ClassLoader。

weixin_42601608的博客 1004

Unity UI文本修改为何如此耗性能?

0 → 1字符宽度不同,后续字符位置会变化原字符串:"Score: 100"位置:0 15 25 38 48 58 65 70 78 86// 如果改成 "Score: 1WW"(极端例子)位置:0 15 25 38 48 58 65 70 82 96 ← W比0宽,后面全部要位移原因说明顶点数据连续存储内存布局要求整块更新字符位置相互影响前面字符宽度影响后面位置对齐/换行全局计算无法局部更新颜色存在顶点上颜色变化=顶点变化Mesh 是不可变的要么全量更新,要么不更新UI属性变化↓。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 2725

深入探索APK反编译与加壳技术

Dalvik Executable(DEX)文件是Android平台上的可执行文件格式,它包含了应用程序的字节码,是APK文件中关键的组成部分。DEX文件的目的是为了优化虚拟机执行效率,采用了特定的格式和结构,以减少内存占用和提高运行速度。DEX文件包含了一些重要的结构,例如方法、类、字符串常量池等,这些结构在反编译过程中扮演着重要角色。

weixin_35973118的博客 383

Apk加壳实现

前几天在网上看到一篇不错的介绍关于apk加壳的介绍,Android中的Apk的加固(加壳)原理解析和实现,针对里面关于资源加载这块自己研究了下,给出了一个方案,下面结合那篇文章的内容做一下apk加壳流程介绍    一、将目标apk加密放进壳apk的classes.dex里面,代码如下 package com.example; import java.io.ByteArrayOutputSt

梦翼-的博客 4446

Android应用开发中实现apk皮肤文件换肤的思路分析

主要介绍了Android应用开发中实现apk皮肤文件换肤的思路分析,包括布局和主要的皮肤更换逻辑实现,需要的朋友可以参考下

第一章 Cheat Enginee(CE)使用指南

Cheat Engine核心功能详细说明(以植物大战僵尸为例) 教你修改单机游戏。

m0_74545731的博客 1万+

Android apk 防止反编译技术第一篇-加壳技术

做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习。现在将最近学习成果做一下整理总结。学习的这些成果我会做成一个系列慢慢写出来与大家分享,共同进步。这篇主要讲apk的加壳技术,废话不多说了直接进入正题。 一、加壳技术原理 所谓apk的加壳技术和pc exe的加壳原理一样,就是在程序的外

晨光飞舞的专栏 1012

杰理的蓝牙芯片的key是什么?以及该如何添加key?杰理key文件原理

很多的工程师,在开发杰理蓝牙芯片的第一步就会有一个很深的疑惑,关于key的 1、什么是key文件? 2、Key文件是如何产生的? 3、为什么需要他key文件? 4、如何添加key文件? 5、以及实际开发中的一些报错该如何处理?

qyvhome的博客 4095

【Android 逆向】APK 加壳脱壳现状 | 判断 APK 是否加壳 | APK 逆向流程

一、APK 加壳脱壳现状、 二、判断 APK 是否加壳、 三、APK 逆向流程、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 7230

AI赋能传染病建模:从数据到动力学模型的本地实践指南

这次我们来看一个将 AI 与传染病动力学建模结合的前沿方向。想象一下,你手头有一份流感爆发的病例数据,传统的建模方法可能需要复杂的微分方程和大量的手动调参,而 AI 模型能否直接从数据中“学习”出传播规律,甚至自动跑通整个建模流程?这正是当前研究的热点。根据《Nature》的最新综述,人工智能正在重塑传染病流行病学建模,从参数推断、趋势预测到多源数据融合,AI 技术为解决传统建模中的计算瓶颈和数据难题提供了全新路径。 对于开发者、数据科学家或公共卫生领域的研究者而言,最关心的是:这套方法能不能在本地跑起来?

weixin_29051811的博客 298

从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)

本文详细介绍了如何使用QJsonObject重构Qt网络API数据解析层,避免常见的JSON解析陷阱。通过安全解析模式、数据绑定和性能优化技巧,帮助开发者构建高效、健壮的解析逻辑,提升代码可维护性和可读性。特别适用于处理复杂嵌套的JSON响应数据场景。

weixin_29011667的博客 230

移动安全-APK加壳

概述 现阶段。我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个APK,结果被人反编译了,那心情真心不舒服。虽然我们混淆,做到native层,但是这都是治标不治本。反编译的技术在更新,那么保护APK的技术就不能停止。现在网上有很多APK加固的第三方平台,最有名的应当属于:爱加密、梆梆加固、360加固、百度加固、腾讯加固等。 什么是加壳? 移动平台攻防技术的发展基本是沿着P...

道阻且长,行则将至 2608

Docker一键部署Synopsys EDA全家桶(VCS/Verdi 2018版)保姆级教程

本文提供了一份详尽的Docker容器化部署Synopsys EDA工具链(VCS/Verdi 2018版)的保姆级教程。通过环境隔离与标准化,解决传统安装的依赖冲突问题,并重点攻克了容器内GUI图形界面显示的核心难题。教程涵盖从Docker基础安装、镜像获取、容器启动配置,到使用X11转发或VNC实现Verdi完美显示的完整实践,旨在帮助芯片设计工程师快速构建稳定、可移植的一键化EDA工作环境。

weixin_29281941的博客 198

apk加壳去壳

1.1原理 (1)基础原理 在整个加固过程中,我们会涉及到四个文件(其实最终要实现加固,需要涉 及的文件不止四个,这里我们仅包含了主要文件): originalAPK.apk:APK 文件,也就是我们要加固的 APP shellDex.dex:dex 文件,该文件的程序功能是将 originalAPK.apk 的密文 进行解密,并将 originalAPK.apk 中的 dex 文件进行加载,启动被加固的 APP。 该 dex 文件来自于一个 APK 文件,我们称为 shellAPK.apk。注意,在

Cloud_Player的博客 1771

如何用matlab扫频法测考虑频率耦合的并网逆变器的序阻抗,如何实现?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1192

ue 打包linux程序 在windows系统 2026

ue 打包linux程序 在windows系统 2026

jacke121的专栏 371

【Android 逆向】加壳技术识别 ( VMP 加壳示例 | Dex2C 加壳示例 )

一、加壳技术识别、 二、VMP 加壳示例、 三、Dex2C 加壳示例、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 5518

OpenRubrics:自动化评估工具优化LLM对齐效果

在大型语言模型(LLM)应用中,模型输出与人类价值观的对齐是关键挑战。传统人工反馈强化学习(RLHF)依赖大量标注,成本高且一致性差。OpenRubrics作为开源工具,通过结构化准则实现自动化评估,显著提升效率。其核心原理是将主观评价转化为可量化的多维指标,支持动态权重调整,并兼容主流RLHF框架。该工具在降低标注成本的同时,通过Fleiss' Kappa系数等指标保证评估一致性,适用于多语言和医疗等专业领域,为LLM对齐提供了工程化解决方案。

weixin_28730037的博客 357

Android APK加壳技术方案【2】

本文章由Jack_Jia编写,转载请注明出处。   文章链接:http://blog.youkuaiyun.com/jiazhijun/article/details/8809542 作者:Jack_Jia    邮箱: 309zhijun@163.com  一、序言         在上篇“Android APK加壳技术方案”(http://blog.youkuaiyun.com/jiazh

移动安全研究和Android/iOS/小程序隐私合规 5万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 老罗的悔改与锤子的落俗
下一篇: 百度地图添加纹理折线
longtaoger
博客等级 码龄13年 7粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值