展开

关键词

Android Linker 与 SO 技术

前言 Android 系统安全愈发重要,像传统pc安全的可执行文件固一样,应用固是Android系统安全中非常重要的一环。 目前Android 应用固可以分为dex固和Native固,Native 固的保护对象为 Native 层的 SO 文件,使用、反调试、混淆、VM 等手段增SO文件的反编译难度。 目前最主流的 SO 文件保护方案还是技术, 在SO文件和脱的攻防技术领域,最重要的基础的便是对于 Linker 即装载链接机制的理解。 技术 在病毒和版权保护领域,“”一直扮演着极为重要的角色。通过可以对代码进行压缩和密,同时再辅以虚拟化、代码混淆和反调试等手段,达到防止静态和动态分析。 在 Android 环境中,Native 层的主要是针对动态链接库 SO,SO 的示意图如下: ? 工具、loader、被保护SO。 SO: 即被保护的目标 SO。

1K61

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

概述 现在使用Proguard进行混淆的代码,也很容易被破解,所以就出现了固工具,让反编译的难度更大。但是有了固技术,就会有反固技术,正所谓道高一尺魔高一丈。 经过固后的apk,通过 dex2jar反编译: 腾讯乐固: ? 360固: ? 从上面可以看出,经过固后的apk,通过常规方法反编译无法获取到源码。 下载地址: https://vxposed.com/ 脱 Step1: 将 VirtualXposed、 FDex2和需要脱的应用都安装到手机上。 Step6: 在 VirtualXposed中运行要脱的应用。 Step7: 脱后的dex文件: ? Step8: 通过 dex2jar对 脱的dex进行反编译: ? 从上图就可以看到脱后的dex文件被成功的反编译。

11.8K1513
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

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

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

    但是有了固技术,就会有反固技术,正所谓道高一尺魔高一丈。 经过固后的apk,通过dex2jar反编译: 腾讯乐固: legu.png 360固: 360jiagu.png 从上面可以看出,经过固后的apk,通过常规方法反编译无法获取到源码。 下载地址: https://vxposed.com/ 脱 Step1: 将VirtualXposed、FDex2和需要脱的应用都安装到手机上。 Step8: 通过dex2jar对 脱的dex进行反编译: shelling-dex2jar.png 从上图就可以看到脱后的dex文件被成功的反编译。 e.printStackTrace(); XposedBridge.log("文件写出失败"); } } } 参考链接 【手机端】腾讯乐固,360固一键脱

    4.7K00

    笔记

    存根(stub) 脱存根执行了以下三个步骤: (1)将原始程序脱到内存中 (2)解析原始可执行文件的所有导入函数 (3)将可执行程序转移到原始的程序入口点(OEP) 手动查找OEP 查找尾部跳转指令 最简单的手动查找策略就是查找尾部跳转指令,当脱存根开始运行时,尾部跳转指令跳转的地址不包含有效指令,但是一旦原程序运行就肯定包含有效的指令。 多数脱器会使用GetProcess函数来解析原始函数的导出表。在该函数上设置断点可以使你绕过脱存根的开头代码。 在原始程序调用且继续向后工作的函数上设置断点。 使用OllyDbg的RunTrace选项 手动修复导入表 导入表在内存中实际上有两个表: 函数名称或者序号列表,其中包含载器或脱存根所需要的函数名称或者序号 所有导入函数的地址列表。 常见的 UPX、ASPack、Petite、WinUpack(Upack)、Themida 脱exe和dll的区别 DLL中的OEP是DllMain原始函数的开始地址,DLL列出的开始地址是脱存根中的一个地址

    69340

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

    史 第一代 Dex密 Dex字符串密资源密对抗反编译反调试自定义DexClassLoader 第二代 Dex抽取与So固 对抗第一代常见的脱法Dex Method代码抽取到外部(通常企业版 )Dex动态载So密 第三代 Dex动态解密与So混淆 Dex Method代码动态解密So代码膨胀混淆对抗之前出现的所有脱法 第四代 arm vmp(未来) vmp的识别 1.用固厂商特征 android-unpacker https://github.com/strazzere/android-unpacker ? notifywait-for-Android https://github.com/mkttanabe/inotifywait-for-Android监视DexOpt输出 ? ? 静态脱机 分析so逻辑并还原密算法 http://www.cnblogs.com/2014asm/p/4924342.html ?

    2.4K20

    什么是App,以及App的利与弊

    而对于移动应用APP密保护的问题,如何对DEX文件密尤为重要。那么接下来,我们就先介绍一下什么是App的原理,利与弊等。 一、什么是? 三、Android Dex文件原理 Android Dex文件大量使用引用给带来了一定的难度,但是从理论上讲,Android APK也是可行的。 在这个过程中,牵扯到三个角色: 1、程序:密源程序为解数据、组装解程序和解数据 2、解程序:解密解数据,并运行时通过DexClassLoader动态载 3、源程序:需要处理的被保护代码 Android 上的技术发展至今也不过三年,而 PC 端的技术已经有十多年的发展。 目前市面上有很多第三方的平台, 如果应用需要选哪一种好?

    1.4K50

    什么是App,以及App的利与弊

    而对于移动应用APP密保护的问题,如何对DEX文件密尤为重要。那么接下来,我们就先介绍一下什么是App的原理,利与弊等。 一、什么是? 三、Android Dex文件原理 ---- Android Dex文件大量使用引用给带来了一定的难度,但是从理论上讲,Android APK也是可行的。 在这个过程中,牵扯到三个角色: 程序:密源程序为解数据、组装解程序和解数据 解程序:解密解数据,并运行时通过DexClassLoader动态载 源程序:需要处理的被保护代码 四、的利与弊 Android 上的技术发展至今也不过三年,而 PC 端的技术已经有十多年的发展。 目前市面上有很多第三方的平台, 如果应用需要选哪一种好?

    1K50

    安卓 APP 三代方案的研究报告

    安卓的固方案是从 19 年底开始写的,到现在为止差不多快一年了,写这个目的还是学习怎么脱,前几个月再看雪看到有人直接分析来学习,不过我感觉从写起也是一种浪漫。 (PS: 以后有时间会接着修改) 环境配置: Android studio v3.5.3 华为G621-TL00 android v4.4.4 第一代:落地载 1、原理 a、原理很简单,就是首先将我们的 APK文件sourceApk.apk完毕,后DEX文件' + filename + '生成完毕') shell.close() if __name__ == '__main__ 第二代:不落地载 1、原理 大体原理和第一代相同,和第一代不同的是,第一代将 dex 文件解密出来会保存到文件中,在通过 DexClassLoader 载进内存中,而不落地载直接重写DexClassLoader /p/ce20fa304e1e Android 插件化框架之动态载 Activity(一): https://www.jianshu.com/p/1035ffd9e9cf Android APK 固之动态

    1.9K20

    一种常规Android技术的拓展(附工具)

    最近在做移动安全测试的项目时,遇到了最新的某数字,好久都没脱了,记得上次脱还是zjdroid通杀的时候。秉着安全研究的精神,趁此机会,又把最新的固与脱技术过了一遍,然而并没有成功脱掉。 其中一个我感觉很有趣, 正是strazzere大神的android-unpacker,这是一款ndk写的动态Android的工具,原理简单来说就是ptrace,然后在内存中匹配特征码和odex的magic 3.我直接抛弃了android-unpacker中的的特征匹配这一整块儿内容。 4.android-unpacker只匹配和dump一次,而我引入了双循环机制,这点对我的脱成功也非常重要。 5.android-unpacker在peek_memory(下图)中进行magic匹配,我改了逻辑,换了一种匹配方式。 ? 6.另外我还增了一匹配种方法,来增强匹配的成功率。 我找了三家公司的试了下,下面直接上效果图顺便说说工具怎么用: 1.这个工具就是ndk程序,所以要在Root后的Android环境下运行(虚拟机和实体机都可以) 2.一般来说,先让工具跑起来等着,第一个参数是包名

    1.2K80

    App去除强制升级

    这是一款带的APP,打开之后要求强制升级最新版,否则无法使用,针对此APP可以进行脱后定位关键代码,然后重打包进行消除强制升级弹窗。 ? DEXDump三种使用模式脱 1、使用objection载frida_dexdump objection -g com.xxx explore plugin load /root/.objection 如果关键字符串做了密混淆,搜索大法也就无效了,可以使用wallbreaker内存可视化漫游,所见即所得。 四种模式: classdump 查看一个类的结构 classsearch 根据类名来找类 objectsearch 查看一个类的实例内容 objectdump 查看对象的属性 使用objection载 修改源码重打包去强制升级 接着我们进行修改代码去掉升级框并重打包,首先因为是带的APP,无法直接使用apktool进行反编译,不然也会被反编译为smali。

    1.2K10

    android apk 防反编译技术第一篇-技术

    一、技术原理 所谓apk的技术和pc exe的原理一样,就是在程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译,在程序运行的时候优先取得程序的控制权做一些我们自己想做的工作 (哈哈,跟病毒的原理差不多) PC exe的原理如下: ? 二、android apk实现 要想实现需要解决的技术点如下: (1)怎么第一时间执行我们的程序? (2)怎么将我们的程序和原有的android apk文件合并到一起? 我们知道android apk最终会打包生成dex文件,我们可以将我们的程序生成dex文件后,将我们要进行的apk和我们dex文件合并成一个文件,然后修改dex文件头中的checksum、signature 和file_size的信息,并且要附的apk的长度信息在dex文件中,以便我们进行解保证原来apk的正常运行。

    1.6K80

    APP固攻防梳理

    从而实现第一层防护的脱。 ;android程序在执行过程,使用到类时候,都需要进行载,而在载过程中,函数指令就会进行指令还原或修订函数指令指向的位置,我们可以利用这个时机,将代码拷贝到原代码位置,进而实现类抽取的脱。 自定义系统和定制的android设备方法: 1、采用定制的android的rom,可以有效对抗市场中所有的、类抽取类型的;相比开源的脱工具,大体都是基于hook框架,例如frida、Xposed 2、采用定制android硬件设备优势,基于android的开源性,google公司每次发布新版的rom,都会率先在Pixel、Nexus系列的设备上最早应用,这也导致大部分安全从业者为了提升工作效率, 通过定制android硬件设备,没有Nexus、pixel设备相关特征,更能提高脱的成功率。 E N D

    35132

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

    01 概述 — 由于近期很多朋友问关于Android与脱技术,这两天我就对目前主流的脱工具和方法做了研究,就对目前的脱方法做个汇总和方法记录。 其实对于的方案很多固尝试都做了什么防动态调试等等措施,所以整体来讲,Android技术也提升了不少。 从图中可以看到,核心代码一个也没有,只反编译出了代码,这里很明显是qihoo,即360的免费,查看stub包,里面包含了密资源的路径和方法: ? 03 总结 通过对3款Android应用的脱工具的测试,效果最好的就是drizzleDumper 了,但未测试收费的服务不知道能不能脱,后面有机会再测试,脱过程主要是研究各个工具的使用,均是利用工具自动化方式来实现 还有其他厂商的固,如梆梆,腾讯,爱密等,如果有兴趣也可以一一进行尝试。

    1.2K80

    Android逆向分析从入门到深入

    固技术: 第一代固技术——混淆技术; 第二代固技术——技术(落地与不落地脱); 第三代固技术——指令抽离; 第四代固技术——指令转换,即VMP(虚拟软件保护)固技术。 二代固: 是指给可执行文件个外衣, 这个外衣就是程序. 程序先取得程序的控制权, 之后把密的可执行程序在内存中解开为真正的程序并运行. VMP固原理 从难度方面来说, 二代固一般还有破解思路, 但到了四代固这里, 一般的逆向脱技术全部失效, 你面对的是如何破解这个虚拟机. ---- apk实例: apk示例 apk实例可以用上图来说明 这个dex有脱逻辑, 程序运行时, 首先运行这个脱dex, 脱dex从dex尾部获取到要密的apk的大小, 然后从自己的dex中拷贝出这个myapk.apk, 最后调用Android系统API运行 这里再说下, 这种二代是现在最简单的方式, 也是最基本的方式.

    25420

    Android逆向分析从入门到深入

    固技术: 第一代固技术——混淆技术; 第二代固技术——技术(落地与不落地脱); 第三代固技术——指令抽离; 第四代固技术——指令转换,即VMP(虚拟软件保护)固技术。 二代固: 是指给可执行文件个外衣, 这个外衣就是程序. 程序先取得程序的控制权, 之后把密的可执行程序在内存中解开为真正的程序并运行. : [apk示例] apk实例可以用上图来说明, 我们把要固的myapk.apk放到一个dex尾部. 这个dex有脱逻辑, 程序运行时, 首先运行这个脱dex, 脱dex从dex尾部获取到要密的apk的大小, 然后从自己的dex中拷贝出这个myapk.apk, 最后调用Android系统API运行 这里再说下, 这种二代是现在最简单的方式, 也是最基本的方式.

    1.8K84

    Android逆向分析概述

    固技术: 第一代固技术——混淆技术; 第二代固技术——技术(落地与不落地脱); 第三代固技术——指令抽离; 第四代固技术——指令转换,即VMP(虚拟软件保护)固技术。 二代固: 是指给可执行文件个外衣, 这个外衣就是程序. 程序先取得程序的控制权, 之后把密的可执行程序在内存中解开为真正的程序并运行. ? apk实例可以用上图来说明, 我们把要固的myapk.apk放到一个dex尾部. 这个dex有脱逻辑, 程序运行时, 首先运行这个脱dex, 脱dex从dex尾部获取到要密的apk的大小, 然后从自己的dex中拷贝出这个myapk.apk, 最后调用Android系统API运行 这里再说下, 这种二代是现在最简单的方式, 也是最基本的方式.

    41530

    Android 动态库压缩的实现

    前言 说起可能有的同学并不太了解,简单的说,计算机软件领域所说的实际上是一种软件密技术。 与自然界中的类似,花生用保护种子,乌龟用保护自己的身体,而我们写的程序为了在一定程度上防止被逆向分析,也可以给它主要分为两大类:和压缩侧重于防止软件被篡改,而压缩则侧重于减小软件体积。其实,在Windows上已经有许多了,但Android(或者可以说Linux)上的相对而言就少了一些。 本文就主要讲讲Android动态库(so文件)压缩要如何实现。 一、压缩 说到压缩,我们可能首先会想到一些常用的压缩工具,例如7-zip、WinRAR、tar等等。 二、Android中so的载全靠Linker,所以要理解so的载过程,需要对Linker有一定的了解。

    3.2K10

    “非虫”带你剖析Android软件安全漏洞

    一本《Android软件安全权威指南》帮你搞定。 《Android软件安全权威指南》是何方神圣? 五年前,Android才刚刚开始普及;五年后,Android已经“雄霸天下”了。 在这五年中,软件保护技术从第一代——DEX密、字符串密、资源密、反调试及自定义DexClassLoader,进化到第二代——DEX抽取与so固、DEX Method代码抽取、DEX动态载及 so固,再进化到第三代——DEX动态解密与so混淆、DEX Method代码动态解密及so代码膨胀混淆,直至现在最流行的第四代——代码虚拟化保护,也就是《Android软件安全权威指南》主要与大家分享的基于 读者可以通过阅读这些实例的源码来深对技术的理解。 实用工具的讲解。本书提倡多动手、多实践,而实践的内容之一就是掌握书中介绍的第三方工具。 如何学习本书 《Android软件安全权威指南》共12章,系统地讲解了与Android软件安全相关的环境搭建、文件格式、静态分析、动态调试、Hook与注入、软件保护技术、软件等主题。

    40610

    相关产品

    • 直播 SDK

      直播 SDK

      直播 SDK 是腾讯云直播服务在移动场景的延伸,集成了腾讯云直播的推 / 拉流、主播观众互动连麦、主播跨房 PK 等能力,提供包括 iOS、Android、小程序、Web 等多种接入方式,为您提供针对移动场景的高质量直播服务,快速满足手机直播的需求。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券