前面两篇android hook 框架 libinject2 简介、编译、运行android hook 框架 libinject2 如何实现so注入  实际运行并分析了 Android中的so注入(inject)和挂钩(hook) - For both x86 and arm 这个博客给出了 libinject 改进版的代码。 今天分析一下古河大神
转载 2023-07-30 23:28:19
348阅读
Android代码入侵原理解析(一)1.代码入侵原理代码入侵,或者叫代码注入,指的是让目标应用/进程执行指定的代码代码入侵,可以在应用进行运行过程中进行动态分析,也是对应用进行攻击的一种常见方式。我把代码入侵分为两种类型:静态和动态。静态代码入侵是直接修改相关代码,在应用启动和运行之前,指定代码就已经和应用代码关联起来。动态代码入侵是应用启动之后,控制应用运行进程,动态加载和运行指定代码。2.静
2.3 Yang Okhttp 拦截器思路讲解接下来我们分析Yang大佬的Frida实现okhttp3.Interceptor[1]。代码完整如下,建议使用该份代码测试:function hook_okhttp3() { // 1. frida Hook java层的代码必须包裹在Java.perform中,Java.perform会将Hook Java相关API准备就绪。
转载 2024-08-10 14:11:15
111阅读
## Android SO注入实现流程 为了教会这位刚入行的小白如何实现"Android SO注入",下面是整个流程的步骤。 ### 步骤概览 | 步骤 | 描述 | | -- | -- | | 步骤1 | 获取目标应用的进程ID | | 步骤2 | 打开目标应用的内存空间 | | 步骤3 | 加载注入SO库 | | 步骤4 | 执行注入逻辑 | | 步骤5 | 清理注入操作 | ###
原创 2023-10-10 05:33:38
201阅读
概述 我们平时所说的代码注入,主要静态和动态两种方式: 静态注入,针对是可执行文件,比如修改ELF,DEX文件等,相关的辅助工具也很多,比如IDA、ApkTool等; 动态注入,也可以叫进程注入,针对是进程,比如修改进程的寄存器、内存值等; 动态跟静态最大的区别是,动态不需要改动源文件,但需要高权限(通常是root权限),而且所需的技术含量更高。 基本思路 关键点在于让目标进加载自定义的动态库so
转载 2023-07-27 09:25:14
1046阅读
本文主要介绍了Android平台动态库注入技术。关于这方面技术,网上已经有大把的实现。在此,我只是记录下自己的学习过程。原理所谓的SO注入就是将代码拷贝到目标进程中,并结合函数重定向等其他技术,最终达到监控或改变目标进程行为的目的。Android是基于Linux内核的操作系统,而在Linux下SO注入基本是基于调试API函数ptrace实现的,同样AndroidSO注入也是基于ptrace函数,
转载 2023-08-17 20:14:53
108阅读
作者:Fly2015Android平台的so库的注入是有Linux平台的进程注入移植来的。由于Android系统的底层实现是基于Linux系统的源码修改而来,因此很多Linux下的应用可以移植到Android平台上来比如漏洞。由于Linux平台的注入需要权限,相比较于Windows平台的进程的注入没有被玩的那么火热。但是到了,Android平台以后,很多Android的安全手机软件,都是从这里做文
转载 2023-10-30 18:49:46
15阅读
使用APT实现Android中View的注入前言APT是Annotation Processing Tool的简写,通过在Java编译时期,处理注解,生成代码。APT在ButterKnife、Dagger2等框架中都有应用。下面通过使用APT,实现一个类似ButterKnife的简单的View注入的框架。(参考Jett老师的课程)ButterKnife的实现原理既然准备实现类似ButterKnif
转载 2024-06-13 08:55:15
32阅读
  以前对Android so注入只是通过现有的框架,并没有去研究so注入原理,趁现在有时间正好拿出来研究一下。  首先来看注入流程。Android so注入流程如下:attach到远程进程 -> 保存寄存器环境 -> 获取目标程序的mmap, dlopen, dlsym, dlclose 地址 -> 远程调用mmap函数申请内存空间用来保存参数信息 -> 向远程进程内
对于Android for arm上的so注入(inject)和挂钩(hook),网上已有牛人给出了代码-libinject(http://bbs.pediy.com/showthread.php?t=141355)。由于实现中的ptrace函数是依赖于平台的,所以不经改动只能用于arm平台。本文将之扩展了一下,使它能够通用于Android的x86和arm平台。Arm平台部分基本重用了libinj
转载 2023-08-31 15:42:49
297阅读
Android so注入-libinject2 简介、编译、运行Android so注入-libinject2  如何实现so注入Android so注入-Libinject 如何实现so注入Android so注入挂钩-Adbi 框架简介、编译、运行Android so注入挂钩-Adbi框架如何实现so注入Android so注入挂钩-Adbi 框架如何实现so函数挂钩Android
转载 2024-01-26 10:06:30
420阅读
实际运行并分析了 Android中的so注入(inject)和挂钩(hook) - For both x86 and arm 这个博客给出了 libinject 改进版的代码。 今天分析一下古河大神原始的 libinject 的源码,libinject2 与 原始的 libinject 大部分代码是一致的,各种 ptrace 的封装函数基本照抄,但有一点很不一样,古河
本文博客地址:Android进程的so注入已经是老技术了,网上能用的Android注入的工程也有很多,虽然分享代码的作者在测试的时候能注入成功,但是其他的同学使用这些代码的时候总是出现这样或者那样的问题。在Android逆向学习的这段时间里,我也陆续测试了几个作者给出的Android注入代码,但是总是效果不明显,今天就学习一下大牛boyliang分享的Androidso注入代码框架Pois
转载 2023-08-17 10:11:49
311阅读
最近公司研究一个变速软件,本来就是一个很小的功能,就是在用户游戏的时候能够加速减速这个功能,并且对于网络的游戏并没有做要求,实现的思路主要是给目标进程注入自己写的so,然后再hook住gettimeofday,clock_gettime 这两个比较关键的刷帧的时间函数,改变其返回值,达到刷帧变慢或者变快的效果,然后实现游戏变速的功能。   功能要求那是相当的简单,但是实现起来发现却没有那
    关于这方面技术,网上已经有大把的实现。在此,我只是记录下自己的学习过程。 0x1 原理    所谓的SO注入就是将代码拷贝到目标进程中,并结合函数重定向等其他技术,最终达到监控或改变目标进程行为的目的。Android是基于Linux内核的操作系统,而在Linux下SO注入基本是基于调试API函数pt
全局符号表(GOT表)hook实际是通过解析SO文件,将待hook函数在got表的地址替换为自己函数的入口地址,这样目标进程每次调用待hook函数时,实际上是执行了我们自己的函数。GOT表其实包含了导入表和导出表,导出表指将当前动态库的一些函数符号保留,供外部调用,导入表中的函数实际是在该动态库中调用外部的导出函数。这里有几个关键点要说明一下:(1) so文件的绝对路径和加载到内存中的基址是可以通
# Android 防止注入 SO 文件的安全措施 在 Android 开发中,动态链接库(SO 文件)被广泛使用,用于提高性能和实现复杂的功能。但是,SO 文件的安全问题也越来越受到重视,尤其是如何防止恶意代码注入。本文将探讨防止 SO 文件注入的策略,并提供相应的代码示例。 ## 什么是 SO 文件注入SO 文件注入是指攻击者通过某种方式将恶意代码植入一个合法的 SO 文件中,或替换
原创 10月前
181阅读
# Android 防止 SO 注入的技术与实践 ## 引言 在Android应用开发中,Native层(通过 C/C++ 语言编写的 Shared Object 文件,通常后缀为 `.so`)的使用越来越普遍。这些本地库通常用于提高性能,调用系统功能或进行复杂计算。然而,随着Android生态系统的成熟,恶意攻击者也开始针对这些本地库进行注入攻击,尤其是通过加载恶意的 `.so` 文件。本文
原创 9月前
196阅读
  接下来,我们就继续学习如何从数据库中获取想要获得的内容,首先,我们先看看SQL注入的一般步骤:     第一节、SQL注入的一般步骤     首先,判断环境,寻找注入点,判断数据库类型,这在入门篇已经讲过了。     其次,根据注入参数类型,在脑海中重构SQL语句的原貌,按参数类型主要分为下面三种:     (A) ID=49 这类注入的参数是
主要注解javax.inject包@Inject@Scope和@Singleton@Named和@Qualifierdagger包@Module和@Provides@Component@SubcomponentLazy:非注解类,用于延迟注入注解使用@Inject注解用于标记需要注入的依赖,或者标记用于提供依赖的构造方法。在Dagger2中@Inject有3种使用形式:1、构造器注入,@Injec
转载 2023-08-01 13:59:31
96阅读
  • 1
  • 2
  • 3
  • 4
  • 5