android脱壳之DexExtractor原理分析 导语: 上一篇我们分析android脱壳使用对dvmDexFileOpenPartial下断点的原理,使用这种方法脱壳的有2个缺点: 1.  需要动态调试 2.  对抗反调试方案 为了提高工作效率, 我们不希望把宝贵的时间浪费去和加固的安全工程师
一、Dex加由来最近在学习apk加密,在网上看了一篇《Android中的Apk的加固(加)原理解析和实现》,我发现原文把整个apk都写入到dex文件中,如果apk小还好,当原APK大于200M,客户端解很费劲,打开后应用就卡住了,如果只是把原apk的dex加不就很容易解开了嘛。我不是原创,只是按照我自己的思路将大神的加固稍作调整,并且将整个项目整理如下。二、Dex结构如图所示,新的dex由
转载 2023-09-26 20:43:43
143阅读
一、什么是加?加是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数就是基于此原理。PC EXE文件加的过程如下:二、加作用加的程序可以有效阻止对程序的反汇编分析,以达到它不可告人的目的。这种技术也常用来保护软件版权,防止被软件三、Android Dex文件加原理PC平台现在已存在大量的标准的加和解工具,但是Android作为新
转载 2023-06-29 21:35:26
416阅读
由于本人从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阅读
目前针对移动应用市场上安卓APP被破解、反编译、盗版丛生的现象,很多APP开发人员已经意识到保护APP的重要性。而对于移动应用APP加密保护的问题,如何对DEX文件加密尤为重要。那么接下来,我们就先介绍一下什么是App加和加的原理,利与弊等。 一、什么是加?加是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。是应用加固的一种手法
好久不发帖了,今天来点干货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阅读
# Android 盘滚动:实现与优化 在 Android 开发中,我们经常需要实现一些特定的交互效果,比如盘滚动。盘滚动是一种常见的 UI 元素,通常用于选择时间、日期等。在这篇文章中,我们将探讨如何在 Android 中实现盘滚动,并提供一些代码示例和优化建议。 ## 盘滚动的实现 实现盘滚动的一种方法是使用 Android 自带的 `NumberPicker` 控件。`Nu
原创 2024-07-30 08:13:39
60阅读
时间时间,时间,时间啊;走慢一点吧~看见很多软件中都有时间线的东西,貌似天气啊,旅游啊什么的最多了;具体实现方式很多,在本篇文章中讲解一种自定义View封装的方式。效果先来看看效果。分析软件中,可以看见前面的时间线也就是线条加上圆圈组成;当然这里的圆圈与线条也都是可以随意换成其他的,比如图片等等。当然这里最简单的来说,是上面一个线条,然后一个圆圈,然后下面一个线条;上线条在第一条数据时不做显示,下
创建俩个 android 项目一个是要加的项目:编译成 apk一个是项目:编译成 apk 取其 dex 里面代码是动态解密加要加的 apk加工具用 java 写的把要加的 apk 用二进制文件读取然后加密。加密后写到项目的 dex 文件后面。生成一个新的 dex。然后把要加的 apk中的 dex替换成新的 dex 最后签名先写个简单的 demo用来测试(要加的项目)//MainAc
转载 2023-10-19 08:38:23
61阅读
1. APP加固1). 原理 图1.png 加密过程的三个对象:1、需要加密的Apk(源Apk)2、程序Apk(负责解密Apk工作)3、加密工具(将源Apk进行加密和Dex合并成新的Dex)2). DEX头内容 图2.png 需要关注的字段:checksum 文件校验码 ,使
# Android 工程简介 在现代的Android应用开发中,"工程"(Shell Project)是一个重要的概念。工程通常是指一个轻量级的Android项目,它在功能上并不复杂,主要的目的是用来托管一个或多个动态加载的模块或插件。这种结构可以极大地提高应用的灵活性与可维护性。 ## 工程的基本结构 工程的核心在于其代码架构。通常,工程包含以下几个部分: - **主Acti
原创 10月前
123阅读
# 如何实现 Android 包:初学者指南 作为一名刚入行的开发者,学习如何实现 Android 包(Shell APK)并不简单,但也是非常有趣的。本文将引导你了解整个过程,提供详细的步骤和代码示例,帮助你顺利完成任务。我们将先介绍流程,随后逐步剖析每一步的具体操作与所需代码。 ## 整体流程 实现 Android 包的过程可以分为以下几个步骤: | 步骤 | 描述
原创 7月前
37阅读
在这个博文中,我将分享如何应对“android”这一技术难题,从环境配置到生态集成,逐步解析这一过程,让我们更好地理解这一复杂的主题。 首先需要配置环境,以下是整个流程的视觉化与代码示例。我制作了一个流程图,展示了环境配置的各个步骤。 ```mermaid flowchart TD A[开始环境配置] --> B[下载相关SDK] B --> C[设置JAVA_HOME]
原创 6月前
98阅读
# Android检测Android开发中,有时候我们可能需要检测一个应用是否被打了是指在原始APK文件上添加或修改了一些代码,以实现一些特定功能或者对应用进行保护。本文将介绍一些常见的Android,并提供代码示例来检测这些。 ## 常见的检测 ### 1. DexClassLoader检测 DexClassLoader是一个常见的类加载器,它可以动态地加载Dex文件。
原创 2023-08-03 17:37:31
165阅读
一代dex整体加固第一代主要是对dex/apk文件整体加密,然后自定义类加载器动态加载dex/apk文件并执行。在动态加载dex/apk文件的时候有落地加载和不落地加载,落地加载就是通过DexClassLoader从磁盘加载dex/apk文件,不落地加载就是通过InMemoryDexClassLoader从内存中加载dex/apk文件。下面以落地加载为例(不落地加载实现原理类似)。一代实现原
转载 2023-08-03 14:47:41
340阅读
由于课题需要,深入了解了一下加技术以及代码自动化实现,本文不在原理方面详细介绍加技术,如果有需要可以参考以下博客,博主也拜读了这些文章受益匪浅。 作者:Jack_Jia 链接: 作者:DeMonnnnnn 链接: 好了废话少说开始我们的加之旅:原材料【1】需要加的源程序(下文的demo.apk) 【2】加工程(下文的DexShellTool) 【3】解程序(下文的shell.apk)源
转载 2023-10-10 06:51:08
110阅读
上期作者发布了一篇关于wifi钓鱼的方法,今天我来给大佬们带来一篇关于拿到wifi密码能干什么?我相信很多人都玩过ettercap和driftnet神器软件,用他们能干什么?没有错就是玩中间人非常好的,我们假设在一个局域网我们作为中间人嗅探他们的信息和劫持,我相信大家都会玩,然后我们对一个手机进行欺骗用ettercap来arp在用driftnet对手机的图片进行劫持上传到入侵者的电脑里面他就知道你
  • 1
  • 2
  • 3
  • 4
  • 5