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

Android APK脱壳--腾讯乐固、360加固一键脱壳

概述 现在使用Proguard进行混淆的代码,也很容易被破解,所以就出现了加固工具,让反编译的难度更大。但是有了加固技术,就会有反加固技术,正所谓道高一尺魔高一丈。 经过加固后的apk,通过 dex2jar反编译: 腾讯乐固: ? 360加固: ? 从上面可以看出,经过加固后的apk,通过常规方法反编译无法获取到源码。 下载工具 脱壳工具FDex2 通过Hook ClassLoader的loadClass方法,反射调用getDex方法取得Dex(com.android.dex.Dex类对象),在将里面的dex写出。 Step6: 在 VirtualXposed中运行要脱壳的应用。 Step7: 脱壳后的dex文件: ? Step8: 通过 dex2jar对 脱壳的dex进行反编译: ? 从上图就可以看到脱壳后的dex文件被成功的反编译。

13.1K1513
  • 广告
    关闭

    618夏日盛惠

    2核2G云服务器首年95元,GPU云服务器低至9.93元/天,还有更多云产品低至0.1折…

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

    【Android 逆向】整体加固脱壳 ( 脱壳起点 : 整体加固脱壳 | Dalvik 脱壳机制 : 利用 DexClassLoader 加载过程进行脱壳 | 相关源码分析 )

    文章目录 一、脱壳起点 : 整体加固脱壳 二、Dalvik 脱壳机制 : 利用 DexClassLoader 加载过程进行脱壳 1、DexClassLoader 源码 2、DexClassLoader 加载 dex 字节码示例 一、脱壳起点 : 整体加固脱壳 ---- 一代壳 即 DEX 整体加固 , 所有类型的加固 , 都会在最外围加上一层 整体加固的 壳 , 即使进行了 VMP / Dex2C : 如果拿到 DEX 文件后 , 发现是空函数 , 则说明在 整体加固 的基础上 还进行了 函数抽取 加壳 ; 下一步针对 函数抽取 脱壳 ; VMP 或 Dex2C 脱壳 : 如果拿到 DEX 文件后 , 发现是 Native 函数 , 说明在 整体加固 的基础上进行了 VMP 或者 Dex2C 加壳 ; 下一步 针对 Native 化的函数脱壳 ; 二、Dalvik 脱壳机制 : 利用 DexClassLoader 加载过程进行脱壳 ---- Dalvik 脱壳机制 : 在 Dalvik 下 , 使用自定义 DexClassLoader 加载 dex 字节码文件中的类 , 通过分析 DexClassLoader

    12820

    【Android 逆向】整体加固脱壳 ( 脱壳点简介 | 修改系统源码进行脱壳 )

    文章目录 一、脱壳点简介 二、修改系统源码进行脱壳 一、脱壳点简介 ---- 在上一篇博客 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 rewriteDex 函数分析 | 脱壳点 | 获取 dex 文件在内存中的首地址 ) 中 , 提到了 2 个脱壳点 : ① /dalvik/vm/DvmDex.cpp 的 dvmDexFileOpenPartial 方法 ② /dalvik/libdex/DexFile.cpp 的 dexFileParse 方法 可以脱壳的 HOOK 点函数 , 不止上面 2 个 , 凡是函数中有 DEX 文件首地址的函数都可以作为脱壳点 ; 如 : DexPrepare.cpp 中 rewriteDex() 方法 也可以作为脱壳点 ; HOOK 上面的 dvmDexFileOpenPartial 或 dexFileParse 方法 , ---- 这里对 Android 系统的源码进行简单的修改 , 然后进行脱壳操作 , 这里的脱壳其实就是将 dex 文件在 内存的起始地址 ; /* 记录当前 dex 文件索引 */ int dexCount

    14930

    使用upx脱壳工具脱壳

    使用upx脱壳工具脱壳(攻防世界新手第七题为例simple-unpack) 查壳工具链接:https://www.52pojie.cn/thread-437586-1-1.html 脱壳工具链接:https type=reverse&number=4&grade=0) ida打开只有四个函数 丢入ExeinfoPe里面 发现有壳(最下面那行显示是upx壳) 脱壳 首先安装工具,解压完之后进入到最里层文件夹中复制下来此时的地址 ,cmd打开命令行先cd把地址转换,之后直接输入upx.exe -h安装完成 会出现这样(一大串) 之后就可以脱壳了,还在这个窗口,因为刚刚已经把地址转到了upx脱壳工具这里了,所以这下不用再转 ,(下次打开需要重新转) 先打操作指令 这些是指令,其中-d是这次要用到的脱壳指令 先打好指令upx -指令名 文件位置和名称 这样打 脱壳成功 好接下来再丢到ExeinfoPe

    1.2K30

    常见android app加固厂商脱壳方法研究

    目录简述(脱壳前学习的知识、壳的历史、脱壳方法) 第一代壳 第二代壳 第三代壳 第N代壳 简述Apk文件结构Dex文件结构壳史壳的识别Apk文件结构 ? Dex文件结构 ? 壳史 第一代壳 Dex加密 Dex字符串加密资源加密对抗反编译反调试自定义DexClassLoader 第二代壳 Dex抽取与So加固 对抗第一代壳常见的脱壳法Dex Method代码抽取到外部(通常企业版 )Dex动态加载So加密 第三代壳 Dex动态解密与So混淆 Dex Method代码动态解密So代码膨胀混淆对抗之前出现的所有脱壳法 第四代壳 arm vmp(未来) vmp壳的识别 1.用加固厂商特征 DexHunter-最强大的二代壳脱壳工具 https://github.com/zyq8709/DexHunter DexHunter的工作流程: ? DexHunter的工作原理: ? 静态脱壳机 分析壳so逻辑并还原加密算法 http://www.cnblogs.com/2014asm/p/4924342.html ?

    3.8K20

    APK加固之静态脱壳机编写入门

    0x00APK加固简介与静态脱壳机的编写思路 1.大家都知道Android中的程序反编译比较简单,辛苦开发出一个APK轻易被人反编译了,所以现在就有很多APK加固的第三方平台,比如爱加密和梆梆加固等。 2.一般的加固保护通常能够提供如下保护:加密、防逆向、防篡改、反调试、反窃取等功能,编写静态脱壳机须要信息有加密后的原始DEX数据、解密算法、解密密钥、要想获得这些信息我们首先要解决的问题是过反调试、动态分析解密流程 0x01壳简单分析 1.整体来看一下加固前APK包和加固后的APK包结构相关变化,如图1所示。 ?        的标志,用16进制工具打开librsprotect.so发现标志被改成了RSP!,将其改成UPX!后再将尝试,出现 图8所示的信息。 ?        图18 2.以上就是简单实现一般APK加固静态脱壳机的编写步骤,由于该加固核心so文件使用UPX默认加壳并未做变形处理,导致so被轻松的静态脱卓,而so模块中的反调试手段比较初级且模块化,可以非常简单的手工

    1.4K00

    如何脱壳加固过的Apk并利用其API“走近库”

    360加固? fa?! ? 我以为上帝关上了我的门,还会留个窗给我,结果还是无情地把窗给我锁上了 ? 0x01 zjDroid脱壳 刀不锋利马太瘦,你拿什么工具和我斗。 我们已经知道不论是利用什么方法加固apk 若要让软件要正常运行,就必须让程序最终加载原dex文件,这样的话,如果我能dump出内存中已经加载的dex 就可以无视在加载dex前的一大堆解壳操作 而ZjDroid data成员调用的方法就是dump出内存中dex文件的代码,接着程序将data写出到指定目录 遗憾的是,红线出的代码为native层的代码,而native层的代码作者并没有开源 编译,运行 踩坑注意:这个工具的 so文件似乎在5.0以上的安卓系统不起作用,所以我特意刷了一个4.4的安卓再去安装ZjDroid 在手机的Xposed中启用此插件,然后打开需要脱壳的app adb shell dumpsys activity

    94020

    某移动应用安全加固脱壳技术研究与实例分析

    01 概述 — 由于近期很多朋友问关于Android加壳与脱壳技术,这两天我就对目前主流的脱壳工具和加壳方法做了研究,就对目前的脱壳方法做个汇总和方法记录。 首先目前市面上有很多的安卓脱壳工具,主流的有DexExtractor, ZjDroid, drizzleDumper,其中前面的2个工具与后面的工具略有不同,文章会一一对工具进行分析和尝试脱壳,各个工具的使用都在手机 其实对于加壳的方案很多加固尝试都做了什么防动态调试等等措施,所以整体来讲,Android的加壳技术也提升了不少。 03 总结 通过对3款Android应用的脱壳工具的测试,效果最好的就是drizzleDumper 了,但未测试收费的加壳服务不知道能不能脱壳,后面有机会再测试,脱壳过程主要是研究各个工具的使用,均是利用工具自动化方式来实现 还有其他厂商的加固,如梆梆,腾讯,爱加密等,如果有兴趣也可以一一进行尝试。

    1.7K80

    【Android 安全】使用 360 加固加固应用 ( 加固工具准备 | 生成签名 APK | 加固操作 | 反编译验证加固效果 )

    文章目录 一、 加固工具准备 二、 生成签名 APK 三、 加固操作 四、 反编译验证加固效果 本博客用于记录下 360 加固加固应用流程 ; ( 上一次加固还是一年前 , 过程全忘了 o(╥﹏╥) o ) 一、 加固工具准备 ---- 下载 " 360 加固住手 " 软件 , 下载页面 https://jiagu.360.cn/#/global/download , 下载完成后 , 将下载的 " ---- 在 " 360 加固保 " 的 " 应用加固 " 界面 , 点击 " 添加应用 " , 选择 " D:\jiagu\app-debug-signed.apk " 文件 , 选中应用后 , ; 大约 10 ~ 20 分钟后 , 加固完成 , 会弹出提示 , 点击 " 确定 " 按钮 , 进入到加固后的 apk 安装目录 , 加固后的 apk 文件输出到了 " D:\jiagu\360jiagubao_windows 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx ) 博客进行反编译验证 ; 将反编译工具包 , 拷贝到 " D:\jiagu\ " 目录中 ,

    43670

    【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | 加固厂商在 ART 下使用的两种类加载器 | InMemoryDexClassLoader 源码 )

    文章目录 一、加固厂商在 ART 下使用的两种类加载器 ( InMemoryDexClassLoader | DexClassLoader ) 二、InMemoryDexClassLoader 源码分析 一、加固厂商在 ART 下使用的两种类加载器 ( InMemoryDexClassLoader | DexClassLoader ) ---- 脱壳就是要在加固厂商使用类加载器加载 DEX 文件时 , 从加载过程中 , 从内存中获取 DEX 文件 ; 在 Dalvik 虚拟机的 Android 系统 中 , 即 Android 4.4 及以下的系统 , 加固厂商 使用 DexClassLoader 加载 DEX 字节码文件 ; 在 ART 虚拟机的 Android 系统 中 , 即 Android 5.0 及以上的系统 , 加固厂商使用 InMemoryDexClassLoader 或者

    11630

    APP加固攻防梳理

    现在市面上的加固产品的还是比较多的,并且各个加固技术产品都有其各自优缺点,但是加固产品的所采用技术去有很多共性的地方。下面就对加固脱壳对抗方案做些梳理总结。 第一代加固的出现也同时出现各种对加固技术的攻破。从而出现了各种对抗加固脱壳方法。 内存 dump脱壳法 通过工具:IDA Pro + dumpDEX 1、通过/proc/%d/maps获取内存映射 2、在内存中查找关键字 dex.035或dex.036 3、手动dump查找到的数据。 内存dump脱壳法 通过工具:IDA Pro + dumpDEX 1、通过/proc/%d/maps获取内存映射 2、在内存中查找关键字 dex.035或dex.036 3、手动dump查找到的数据。 自定义系统和定制的android设备方法: 1、采用定制的android的rom,可以有效对抗市场中所有的加密壳、类抽取类型的壳;相比开源的脱壳工具,大体都是基于hook框架,例如frida、Xposed

    1K32

    【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | dvmDexFileOpenPartial | dexFileParse | 脱壳点 | 获取 dex 文件在内存中的首地址 )

    文章目录 前言 一、DexPrepare.cpp 中 rewriteDex() 方法分析 二、DvmDex.cpp 中 dvmDexFileOpenPartial() 方法分析 ( 脱壳点 ) 三、DexFile.cpp 中 dexFileParse() 方法分析 ( 脱壳点 ) 前言 ---- 上一篇博客 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmContinueOptimizati doVerify, bool doOpt, DexClassLookup** ppClassLookup, DvmDex** ppDvmDex) dvmDexFileOpenPartial 函数是 脱壳点 函数 , 通过该函数定位脱壳点 , 然后进行脱壳操作 ; /* * 既然可以直接读取DEX文件,那么创建一个DexFile结构 * 为了它。 = 0; bail: return result; } 源码路径 : /dalvik/vm/DvmDex.cpp 三、DexFile.cpp 中 dexFileParse() 方法分析 ( 脱壳

    9530

    浅谈Android 混淆和加固

    操作时机:项目打包时 加固: 针对apk,加固是多维度的安全防护方案,包括反破解、反逆向、防篡改等,可以防止应用被各类常见破解工具逆向,安全性要远大于单纯的代码混淆。 生成加固后的apk文件 6. 对加固后的apk文件进行签名,apk加固完成。 原理分析: 1.为什么要对原始dex进行加密,同时用脱壳dex文件替换原始dex文件? 用脱壳dex替换原始dex文件之后,用上面的反编译工具反编译apk文件,只能看到脱壳程序的class文件,看不到apk本身的class文件。 加固后的apk启动之后,脱壳dex文件会对加密后的dex文件进行解密,然后机遇dexclassload动态加载解密后的dex文件。从用户的角度,加固前后App的功能和体验基本是一样的。 加固工具: 1、腾讯加固 2、360加固

    4.1K40

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 小程序安全

      小程序安全

      小程序安全针对小程序不同业务场景提供包括小程序安全加固、小程序安全扫描、小程序渗透测试功能,通过分析仿冒程序,挖掘风险漏洞、保护核心代码等方法保护小程序业务安全、数据安全,降低客户业务风险和资金损失。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注腾讯云开发者

      领取腾讯云代金券