omnispace的博客

专注AI,物联网,区块链,安卓以及相关安全技术

排序:
默认
按更新时间
按访问量

进阶Frida--Android逆向之动态加载dex Hook(三)

前段时间看到有朋友在问在怎么使用frida去hook动态加载的dex之类的问题,确实关于如何hook动态加载的dex,网上的资料很少,更不用说怎么使用frida去hook动态加载的dex了。(frida的官方文档已经无力吐槽...)后来偶然的情况下发现了一道CTF题目可以作为很好的案例,所以花了很...

2018-08-09 07:09:39

阅读数:90

评论数:0

[Android]用架构师角度看插件化(3)-Replugin 需要占坑跳转?

一.占坑什么是占坑?为什么要占坑?Android插件化中,从一个插件Activity跳转到不同插件的Activity的时候,是否可以能正常跳转成功?声明Activity需要配置什么?声明Activity是需要AndroidManifest中声明,但是插件是依赖于宿主的,插件声明了Activity,...

2018-04-08 12:44:39

阅读数:188

评论数:0

Xposed简介以及小米去桌面广告的简单实现

提起Xposed,大多数Android开发者都听过或者用过,甚至有一些开发过比较炫酷的模块。这是我前段时间在公司的分享内容,分享给大家。#最先发表于个人博客 https://guolei1130.github.io/Xposed简介Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改...

2018-04-07 13:20:00

阅读数:149

评论数:0

浅析Android插件化

前言Android P preview版本中,已限制对@hide api的反射调用,具体的原理可以阅读Android P调用隐藏API限制原理这篇文章。由于最近团队分享也在分享插件化、热修复相关的东西。因此,写一篇文章,好好记录一下。准备知识反射、动态代理Android中的几个相关的ClassLo...

2018-04-07 13:16:48

阅读数:120

评论数:0

Android友盟增量更新

1.增量升级的原理 增量更新的原理就是将本地apk与服务器端最新版本比对,并得到差异包。比如现在的版本是1.1.4,大小是7.2M,新版本是1.1.5.大小是7.3M。我们发现两个版本只有0.1M的差异,这样我们如果采用增量升级生成0.1M左右的差异包,这样用户只需要下载0.1M的差异包进行升级而...

2018-04-07 11:30:54

阅读数:101

评论数:0

Android免Root环境下Hook框架Legend原理分析

0x1 应用场景现如今,免Root环境下的逆向分析已经成为一种潮流!在2015年之前的iOS软件逆向工程领域,要想对iOS平台上的软件进行逆向工程分析,越狱iOS设备与安装Cydia是必须的!几乎绝大多数的逆向相关的动态调试工具、Hook注入框架都依赖于获取IOS设备的最高访问权限,就技术本身上而...

2018-04-01 16:06:09

阅读数:225

评论数:0

《Android插件化技术——原理篇》

| 导语 插件化技术最早从2012年诞生至今,已经走过了5个年头。从最初只支持Activity的动态加载发展到可以完全模拟app运行时的沙箱系统,各种开源项目层出不穷,在此挑选了几个代表性的框架,总结其中的技术原理。由于本人水平有限,插件化框架又相当复杂,文中若有错误或者不准确的地方望高手指点。内...

2018-04-01 16:04:43

阅读数:409

评论数:1

我为Dexposed续一秒——论ART上运行时 Method AOP实现

两年前阿里开源了Dexposed 项目,它能够在Dalvik上无侵入地实现运行时方法拦截,正如其介绍「enable ‘god’ mode for single android application」所言,能在非root情况下掌控自己进程空间内的任意Java方法调用,给我们带来了很大的想象空间...

2018-01-17 07:26:15

阅读数:391

评论数:0

android linker 浅析

Android 的加载/链接器linker 主要用于实现共享库的加载与链接。它支持应用程序对库函数的隐式和显式调用。对于隐式调用,应用程序的编译与静态库大致相同,只是在静态链接的时候通过--dynamic-linker /system/bin/linker 指定动态链接器,(该信息将被存放在ELF...

2017-09-28 05:10:50

阅读数:301

评论数:0

Android 插件化原理解析——插件加载机制

上文 Activity生命周期管理 中我们地完成了『启动没有在AndroidManifest.xml中显式声明的Activity』的任务;通过Hook AMS和拦截ActivityThread中H类对于组件调度我们成功地绕过了AndroidMAnifest.xml的限制。 但是我们启动的『没...

2017-06-16 06:44:51

阅读数:474

评论数:0

JVM源码阅读-Dalvik类的加载

前言 本文主要研究Android dalvik虚拟机加载类的流程和机制。目的是了解Android中DEX文件结构,虚拟机如何从DEX文件中加载一个Java Class,以及到最终如何初始化这个类直至可被正常使用。​ [Java]类的加载 在Java的世界里,所有类的加载,都由 j...

2017-05-29 15:57:11

阅读数:507

评论数:0

热修复框架AndFix【源码阅读】

前言 AndFix是阿里巴巴开源的Android热修复框架。其基本原理是利用JNI来实现方法的替换,以实现Android APP的热修复,即无需发版即可临时修复在线BUG。 热修复技术有很多种,AndFix采取的native方法替换方案,优点是即时生效,无性能损耗,缺点是只能修改方法,...

2017-05-29 15:55:08

阅读数:373

评论数:0

JVM源码阅读-本地库加载流程和原理

前言 本文主要研究OpenJDK中JVM源码中涉及到native本地库的加载流程和原理的部分。主要目的是为了了解本地库是如何被加载到虚拟机,以及是如何找到并执行本地库里的本地方法,以及JNI的 JNI_OnLoad 和 JNI_OnUnLoad是何时被调用的 。​ 1.载入本地库 ...

2017-05-29 15:53:55

阅读数:1328

评论数:0

Android 插件技术实战总结

前言 安卓应用开发的大量难题,其实最后都需要插件技术去解决。 现今插件技术的使用非常普遍,比如微信、QQ、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家在熟悉不过的应用都在使用。 插件技术可以给项目开发带来巨大的好处,比如:并行高效开发、模块解耦、解除单个dex函数不能超过65535...

2017-05-19 14:19:13

阅读数:482

评论数:0

AndroidLinker与SO加壳技术之下篇

2.4 链接 链接过程由 soinfo_link_image 函数完成,主要可以分为四个主要步骤: 1. 定位 dynamic section, 由函数 phdr_table_get_dynamic_section 完成,该函数会遍历 program header,找到为类型为 PT...

2017-01-19 03:04:58

阅读数:683

评论数:0

AndroidLinker与SO加壳技术之上篇

1. 前言 Android 系统安全愈发重要,像传统pc安全的可执行文件加固一样,应用加固是Android系统安全中非常重要的一环。目前Android 应用加固可以分为dex加固和Native加固,Native 加固的保护对象为 Native 层的 SO 文件,使用加壳、反调试、混淆、VM ...

2017-01-19 03:02:56

阅读数:520

评论数:0

脑洞型so加载过程实验

1.文章难易度【★★★★★】 2.文章作者:penguin_wwy 3.本文参与i春秋社区原创文章奖励计划,未经许可禁止转载 4.阅读基础:熟悉Android虚拟机源码、so加载过程、Native编程 【预备~~~起】 前几天有人在群里问,ELF的可执行文件能不能调用so文件的J...

2017-01-19 02:56:49

阅读数:469

评论数:0

修改源码实现全局(无需root)注入躲开注入检测

看这篇文章需要的技能 1.会编译android源码(如果你不愿意编译源码,还有另外一种办法,下面我会提供) 2.会使用substrate或者xposed 以上2个网上资料很多我就不啰嗦了 一、市面上目前的hook和注入工具 市面上目前的hook有substrate,xposed,或者...

2016-12-19 08:39:34

阅读数:2342

评论数:0

Android动态加载技术三个关键问题详解

本文摘选自任玉刚著《Android开发艺术探索》,介绍了Android插件化技术的原理和三个关键问题,并给出了作者自己发起的开源插件化框架。 动态加载技术(也叫插件化技术)在技术驱动型的公司中扮演着相当重要的角色,当项目越来越庞大的时候,需要通过插件化来减轻应用的内存和CPU占用,还可以实现...

2016-09-27 15:24:00

阅读数:336

评论数:0

Android类动态加载技术

Android应用开发在一般情况下,常规的开发方式和代码架构就能满足我们的普通需求。但是有些特殊问题,常常引发我们进一步的沉思。我们从沉思中产生顿悟,从而产生新的技术形式。 如何开发一个可以自定义控件的Android应用?就像eclipse一样,可以动态加载插件;如何让Android应用执行服务...

2016-04-15 06:28:20

阅读数:358

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭