# Android 查壳指南
在安卓开发中,很多开发者会需要对 APK 文件进行查壳,以检查其是否经过反编译、是否有安全性漏洞等。本文将以一种清晰易懂的方式,引导初学者了解如何实现 Android 查壳。
## 整体流程
下面是查壳的具体步骤:
| 步骤编号 | 步骤描述 | 主要任务 |
|----------|---
创建俩个 android 项目一个是要加壳的项目:编译成 apk一个是壳项目:编译成 apk 取其 dex 里面代码是动态解密加要加壳的 apk加壳工具用 java 写的把要加壳的 apk 用二进制文件读取然后加密。加密后写到壳项目的 dex 文件后面。生成一个新的 dex。然后把要加壳的 apk中的 dex替换成新的 dex 最后签名先写个简单的 demo用来测试(要加壳的项目)//MainAc
转载
2023-10-19 08:38:23
61阅读
由于课题需要,深入了解了一下加壳技术以及代码自动化实现,本文不在原理方面详细介绍加壳技术,如果有需要可以参考以下博客,博主也拜读了这些文章受益匪浅。 作者:Jack_Jia 链接: 作者:DeMonnnnnn 链接: 好了废话少说开始我们的加壳之旅:原材料【1】需要加壳的源程序(下文的demo.apk) 【2】加壳工程(下文的DexShellTool) 【3】解壳程序(下文的shell.apk)源
转载
2023-10-10 06:51:08
110阅读
1、需求背景在某些特殊场景下,我们需要在不修改原应用apk的情况下对其做些额外的事情,比方集成广告、增加鉴权、增加防止反编译的逻辑等。那么我们需要在应用外嵌套一层壳,该壳集成我们想要实现的功能。 2、方案一首先想到的是将原apk作为一个完整包直接放入到壳工程中,然后在sdk鉴权成功后直接拉起应用(启动非安装应用)。问题1、如果
转载
2023-09-15 21:29:52
35阅读
apk加固原理之解密壳工程 - android解密壳工程是负责热部署解密dex,并且解密dex。发射工具类:package com.example.reforceapk;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Meth
转载
2023-09-19 19:16:19
126阅读
UPX壳①经过UPX压缩的win32/pe文件,包含三个区段:UPX0, UPX1, .rsrc或UPX0, UPX1, UPX2(原文件本身无资源时)。UPX0:在文件中没有内容,它的”Virtual size”加上UPX1的构成了原文件全部区段需要的内存空间,相当于区段合并。②UPX1:起始位置为需解压缩的源数据,目标地址为UPX0基址。紧接着源数据块是”UPX stub”,即壳代码。一个典型
原创
2023-06-01 10:23:11
1837阅读
文章目录一、 关于壳的介绍二、 关于壳的技术资料三、 APKSCAN-PKID的下载四、 APKSCAN-PKID的使用总结脱壳工具 一、 关于壳的介绍1、壳的功能:壳最本质的功能就是实现加载器,壳是指在一个程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务,深入点就是在apk外面再套一层壳,在运行的时候这层壳
一、Dex加壳由来最近在学习apk加密,在网上看了一篇《Android中的Apk的加固(加壳)原理解析和实现》,我发现原文把整个apk都写入到dex文件中,如果apk小还好,当原APK大于200M,客户端解壳很费劲,打开后应用就卡住了,如果只是把原apk的dex加壳不就很容易解开了嘛。我不是原创,只是按照我自己的思路将大神的加固稍作调整,并且将整个项目整理如下。二、Dex结构如图所示,新的dex由
转载
2023-09-26 20:43:43
143阅读
一、 壳是什么东西 二、 PKID的下载 三、 PKID的使用 四、 识别原理简介
原创
2021-07-27 13:42:58
6671阅读
一、什么是加壳?加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数就是基于此原理。PC EXE文件加壳的过程如下:二、加壳作用加壳的程序可以有效阻止对程序的反汇编分析,以达到它不可告人的目的。这种技术也常用来保护软件版权,防止被软件三、Android Dex文件加壳原理PC平台现在已存在大量的标准的加壳和解壳工具,但是Android作为新
转载
2023-06-29 21:35:26
416阅读
简介 Exeinfo PE是一款免费、专业的程序查壳软件,可以查看exe、dll程序的编译信息,开发语言,是否加壳,壳的种类
转载
2024-09-03 16:46:56
0阅读
由于本人从c++开发直接跳到android开发,没有对android进行系统的学习,看上面博客时还是有很多不理解的地方。本文把不理解的地方梳理一下,最后提供个测试源码(加了比较详细的注释)。希望对于跟我一样安卓基础不是太好的人有一定帮助。正文:apk加壳的目的(我的用途):增加apk静态分析的难度。(如果反编译的人知道是加壳的,可以在data/包名目录下 找到真正的apk。所以在壳上增加正常的代码
转载
2024-01-16 20:53:51
136阅读
先把核心原理记录一下,代码随后再补。PRE、dex文件结构知识和加壳原理 先看下dex文件的基本结构 对于加壳主要关注3个关键字: 1)checksum 文件校验码,使用alder32算法,校验文件除了maigc和checksum外余下的所有文件区域,用于检查文件错误。 2)signature 使用SHA-1算法hash除了magic ,checksum和signature外余下的所有
转载
2023-10-08 07:29:33
206阅读
一、什么是加壳? 加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。PC EXE文件加壳的过程如下: 二、加壳作用 加壳的程序可以有效阻止对程序的反汇编分析,以达到它不可告人
转载
2023-09-15 13:43:10
160阅读
何为加壳?如前面所介绍的,拿到一个App的ipa包可以通过class-dump、 Hopper Disassembler等工具进行分析,然而当我们利用这些分析手机里从App Store下载的App安装包时,会发现都是一些经过加密的文件,无法进行分析这是因为App Store对我们上传的App进行了加壳操作,那么何为加壳呢?其实是利用特殊的算法,对可执行文件的编码进行改变(比如压缩、加密),以达到保
转载
2023-06-30 20:36:10
194阅读
原创
2021-07-09 10:11:54
640阅读
好久不发帖了,今天来点干货1、配置调试环境 首先,配置好调试环境。 Androidserver 的调试方法是 android_server -pxxxx 自定义port Jdb的调试方法是 jdb -connect com.sun.jdi.SokcetAttach:hostname=xxxx,port=xxxx 2、断点 需要断在link中,主要是so的init函数。
转载
2024-05-28 12:33:48
68阅读
目前针对移动应用市场上安卓APP被破解、反编译、盗版丛生的现象,很多APP开发人员已经意识到保护APP的重要性。而对于移动应用APP加密保护的问题,如何对DEX文件加密尤为重要。那么接下来,我们就先介绍一下什么是App加壳和加壳的原理,利与弊等。 一、什么是加壳?加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。是应用加固的一种手法
转载
2024-03-07 11:02:36
30阅读
Multiple plugins with the same name 'avprovideo' (found at 'Assets/CoreLibrary/Plugins/WSA/PhoneSDK81/x86/AVProVideo.dll' and 'Assets/CoreLibrary/Plugins/x86_64/AVProVideo.dll'). That means one or mor
转载
2024-05-06 11:58:46
90阅读
1. APP加固1). 原理
图1.png
加密过程的三个对象:1、需要加密的Apk(源Apk)2、壳程序Apk(负责解密Apk工作)3、加密工具(将源Apk进行加密和壳Dex合并成新的Dex)2). DEX头内容
图2.png
需要关注的字段:checksum 文件校验码 ,使
转载
2024-06-05 09:46:18
124阅读