首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 逆向】Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明 )

文章目录 一、编译注入工具 二、编译结果文件说明 三、注入过程说明 一、编译注入工具 ---- 在 Visual Studio 2019 中打开了一个 " 生成文件项目 " , 该项目就是注入项目 ;...可执行文件 cmd 可执行文件 libbridge.so 动态库 上述文件都是在 PC 电脑上的 x86 架构的 Android 模拟器上运行的相关文件 , 具体就是 雷电模拟器 3.75 版本 ;...使用上述工具调试 Android 进程参考如下博客 : 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到.../data/system ) 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )...【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 ) 三、注入过程说明 ---- 将所有文件拷贝到

47920

Android webview注入JS代码 修改网页内容操作

补充知识:android——webview修改html界面,达到去除或隐藏部分界面的效果 如下所示: ? 去除NBA及CAB频道。 为了达到这个效果,当时考虑了两种方式。...第二种就是查看源代码,直接动手修改源代码,然后把源代码放在assets文件下,每次直接从本地加载。 在查看完源代码(在电脑浏览器,打开网页,右键单击,查看源代码)后发现,这个网页,太适合第二种方式了。...而其他的界面都是通过js动态生成的。毫不犹豫的把源代码copy下来(注意格式,utf-8,无bom,否则中文乱码)。 就这样,第一个问题顺利解决了。...加载assets下的html代码方式为: webview.loadUrl(“file:///android_asset/test.html”); 以上这篇Android webview注入JS代码

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

    Android 逆向】Android 进程注入工具开发 ( 远程进程 注入动态库 文件操作 | Android 进程读取文件所需的权限 | fopen 打开文件标志位 | 验证文件权限 )

    文章目录 前言 一、Android 进程读取文件所需的权限 二、fopen 打开文件标志位 三、验证文件权限 前言 一、Android 进程读取文件所需的权限 ---- 通过 注入工具 , 将 libbridge.so...注入到远程进程 后 , 远程进程中 , 会 为 libbridge.so 动态库分配一块内存 , 并将其运行起来 ; 远程进程 中 注入的 动态库 , 需要 对文件进行读写操作 , 如读取某个文件目录..., 向某个路径上写入 内存数据 / 日志文件 等内容 ; 文件读写操作 , 使用 标准文件读写函数 即可 , 如 fopen , fwrite , fread 等函数 ; 在 Android 进程中..., 对文件进行读写操作 , 最重要的是 权限问题 , 如果要访问 /data/system/debug/command.json 文件 , 需要确定是否有访问该文件的权限 , 并且还要有该文件的上级目录的访问权限..., w+ 权限指的是可以向文件中追加数据 , r+ 权限指的是可读可写 , 具体参考 【C 语言】文件操作 ( fopen 文件打开方式详解 ) 二、fopen 函数文件打开方式详解 博客章节 ; 三

    92930

    js依赖注入初探

    当时对依赖注入这一概念还不是很理解,只是根据题目的要求初步认识了依赖注入。...依赖注入是什么? 在解决上面是上的问题后,回过头来想:依赖注入是啥?其实通过题目的描述以及测试代码容易理解到,依赖注入可以动态地为函数添加依赖。...依赖注入在强类型语言中,如JAVA,比较常见,是一种解藕的方式。 对于如果解释和理解依赖注入,在看了一些“百科”和代码后仍然不是很清晰。...在js中依赖注入的概念不像java中被经常提到,主要原因是在js中很容易就实现了这种动态依赖。最简单的例子:bind函数。...js可以通过bind,apply,call等函数可以很方便地控制函数的参数和this变量,所以简单地依赖注入在很多情况下已经被不知不觉地使用。在AMD的模块定义中,其方式也是一种依赖注入

    2.4K20

    js依赖注入初探

    当时对依赖注入这一概念还不是很理解,只是根据题目的要求初步认识了依赖注入。...依赖注入是什么? 在解决上面是上的问题后,回过头来想:依赖注入是啥?其实通过题目的描述以及测试代码容易理解到,依赖注入可以动态地为函数添加依赖。...依赖注入在强类型语言中,如JAVA,比较常见,是一种解藕的方式。 对于如果解释和理解依赖注入,在看了一些“百科”和代码后仍然不是很清晰。...在js中依赖注入的概念不像java中被经常提到,主要原因是在js中很容易就实现了这种动态依赖。最简单的例子:bind函数。...js可以通过bind,apply,call等函数可以很方便地控制函数的参数和this变量,所以简单地依赖注入在很多情况下已经被不知不觉地使用。在AMD的模块定义中,其方式也是一种依赖注入

    3K90

    android平台注入技术

    那么在android平台中要对某个app进程进行内存操作,并获取目标进程的地址空间内信息或者修改目标进程的地址空间内的私有信息,就需要涉及到注入技术。...Android注入技术的应用场景主要是进行一些非法的操作和实现如游戏辅助功能软件、恶意功能软件。 下面主要进行对zygote注入、ptrace注入、修改so文件注入,这三种注入方式进行详细解析。...zygote注入 zygote是一个在android系统中是非常重要的一个进程,因为在android中绝大部分的应用程序进程都是由它孵化(fork)出来的,fork是一种进程复用技术。...关键 的ptrace注入shellcode代码实现 修改ELF文件注入android平台Native层的可执行文件SO文件,它是属于ELF文件格式,通过修改ELF文件格式可以实现对so文件注入...Program Header Table 它保存ELF文件的加载过程中各Section的内存映射和依赖库相关信息,用来告诉android系统中如何创建进程映像。

    1K31

    Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具的 main 函数分析 )

    文章目录 一、注入流程 二、注入工具的 main 函数分析 一、注入流程 ---- 开始分析 【Android 逆向】Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明...) 博客中的 tool 工具代码 ; tool 工具使用前 , 先获 取要注入的目标进程 进程号 , 使用 dumpsys activity top|grep pid 命令获取当前前台进程的进程号 ;...在 /data/system/debug/ 目录中 ( 之前将所有注入相关的文件都拷贝到该目录中 , 并赋予 777 权限 ) , 执行 ..../tool 2222 命令 , 即可 向目标进程注入 SO 动态库 ; 其中 2222 就是要注入 SO 动态库的 目标进程 进程号 ; 二、注入工具的 main 函数分析 ---- 该应用涉及到 CPU...操作 : // 注入 /data/system/debug/libbridge.so 路径的动态库 inject_remote_process(target_pid, "/data/system/

    40610

    SQL 注入 - 文件上传

    概括 : SQL 注入是一种网络安全漏洞,允许攻击者干扰应用程序对其数据库的查询。它通常允许攻击者查看他们通常无法检索的数据。这可能包括属于其他用户的数据,或应用程序本身能够访问的任何其他数据。...描述 : 我在文件上传功能上发现了 SQL 注入。...查看生成的错误后,我看到错误说“此属性必须是有效的文件名”。我想如果我将有效负载更改为 SQL 注入的有效负载作为文件名会怎样,所以我将文件名设置为--sleep(15).png并且它起作用了。...影响 : 基于时间的 SQL 注入会增加 CPU 和内存资源(如 RAM、缓存和处理器)的消耗,还会降低服务器速度。如果进一步利用基于时间的 SQL 注入,它可用于从数据库中提取数据。...转义用户输入: 允许用户输入包含诸如 ' “ $ \ 之类的字符可能会导致 SQL 查询中断,甚至更糟,正如我们所了解的,将它们打开以进行注入攻击。

    1.2K20

    Android 逆向】Android 进程注入工具开发 ( 远程进程注入动态库文件操作 | 注入动态库 加载 业务动态库 | 业务动态库启动 | pthread_create 线程开发 )

    使用 ptrace 函数强行向远程进程 注入的 动态库 , 这种方法侵入性极大 , 会破坏远程进程的运行环境 , 因此该动态库越简洁越好 ; 注入动态库 就执行一个操作 , 就是加载 包含真正的逆向业务逻辑的...((void)__android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)) #define LOGW(...)...线程执行函数 ---- 下面是线程中执行的线程函数 , 该函数中进行了无限循环 , 每隔 333 毫秒循环一次 ; 调试工具 将指令写出到 /data/system/debug/command.json 文件中..., 线程函数每次循环读取该文件 , 查询是否有新的指令到达 , 如果有新的指令 , 则执行该指令 , 如果没有 , 则执行下一次循环 ; 该线程函数开启后 , 基本 无法终止 , 也没有必要终止 ;...\n"); while (true) { usleep(1000 * 333);//333ms检测一次文件 //FILE* pFile = fopen(args, "r"); FILE

    81920

    Android 逆向】Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )

    文章目录 一、SO 进程注入环境及 root 权限获取 二、进程注入时序分析 一、SO 进程注入环境及 root 权限获取 ---- SO 注入的前提必须有 root 权限 , 有了 root 权限后..., 才能调用 ptrace 相关函数 ; SO 注入环境有两种情况 , Android 模拟器 或 真实手机 ; 这里特别推荐使用 雷电模拟器 进行逆向操作 , 在真机上会出现各种问题 ; 使用 Android...逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 ) 博客中 , 编译过该动态库 , 调试目标进程时 , 需要将该动态库注入...: 【Android 逆向】Android 进程代码注入原理 ( 进程注入原理 | 远程调用流程 | 获取函数地址 | 设置 IP 寄存器 | mmap 申请内存 | 设置 SP 寄存器 ) 【Android...逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 ) 【Android 逆向】Android 进程注入工具开发 (

    1.3K00

    Android安全-SO动态库注入

    0x1 原理 所谓的SO注入就是将代码拷贝到目标进程中,并结合函数重定向等其他技术,最终达到监控或改变目标进程行为的目的。...Android是基于Linux内核的操作系统,而在Linux下SO注入基本是基于调试API函数ptrace实现的,同样Android的SO注入也是基于ptrace函数,要完成注入还需获取root权限。...; (注:实际上,0x06和0x07并不属于SO动态库注入的步骤,然而仅仅注入是完全没有意义的,通常我们需要执行SO中的函数) 0x3 实现 0x01 获取目标进程的pid,关联目标进程...: 通过遍历查找/proc/pid/cmdline文件中是否含有目标进程名process_name,若有则进程名对应的进程号即为pid。...0x03 获取目标进程的dlopen,dlsym函数的绝对地址: 大概思路是这样的:首先通过遍历/proc/pid/maps文件分别得到本进程中dlopen函数所在动态库的基地址local_module_base

    2.6K20

    HTML被恶意注入JS弹广告

    然后再用浏览器访问,查看源码发现在 中多了一行这个东西 http://45.126.123.80:118/j.js?...开始怀疑 买的阿里云服务器被黑了 文件上传软件有漏洞被人恶意篡改了 一番尝试之后 以上两点都不是,是由于上传文件时被运营商拦截了,然后注入上面js代码。...1、我换用手机4G网络连接,新建HTML文件上传,浏览,查看源码,一切正常。 2、我换用同事360WiFi热点后,重复1操作,一切正常。 3、我再次连接公司网络,重复1操作,还是出现恶心的js注入。...解决途径: 像我一样替换网络重新上传覆盖原有被插的文件 打电话给运营商,骂他,骂到不在插你为止 使用https 以此记录,大家也要留意了。

    4.9K20

    JavaScript、js文件、Node.js、静态文件

    一、JavaScript 1、JavaScript认知 JavaScript(简称“JS”) 是一种解释型的脚本语言。广泛用于Web应用开发,对页面事件做出响应。...通常JavaScript脚本是通过嵌入在HTML页面中来实现自身的功能的,也可以写成单独的js文件。 JavaScript与Java名称上的近似,但是两种完全不同的语言。...文件 js文件是指包含JavaScript代码,以“.js”为扩展名的文本文档,用于在网页中执行JavaScript指令;可以说JS文件是网页JavaScript客户端脚本文件。...三、Node.js node.js – Node是一个让JavaScript运行在服务端的开发平台。...四、静态文件 定义:不是由服务器生成的文件就是静态文件 包含:web项目中的图片、css、js、文本文件txt、脚本、等静态资源,不带jsp、asp、php页面的HTML页面 特点: 1 通常存放在

    6.3K30

    Android 逆向】Android 进程代码注入原理 ( 注入本质 | 静态注入和动态注入 | 静态注入两种方式 | 修改动态库重打包 | 修改 dataappxxlibs 动态库 )

    文章目录 一、注入本质 二、静态注入和动态注入 三、静态注入两种方式 ( 修改动态库重打包 | 修改 /data/app/packageName/libs/ 下的动态库 ) 一、注入本质 ---- 进程注入本质...ptrace 函数 , 也可以使用 重打包 的方式 , 将 so 动态库文件打包到 APK 文件中 ; 重打包的 so 动态库是修改后的动态库 , 参考 【Android 逆向】逆向修改游戏应用 (...分析应用结构 | 定位动态库位置 | 定位动态库中的修改点 | 修改动态库 | 重打包 ) 博客 , 修改了 Unity3D 的一个动态库的汇编代码指令 , 然后将修改后的动态库重打包回 APK 文件中...; 重打包有一定的弊端 , 不是所有的应用都可以进行重打包的 , 有些应用加固后 , 无法进行重打包操作 , 此时就需要使用 ptrace 函数进行注入 ; 二、静态注入和动态注入 ---- 修改 APK...中的动态库的注入方式 是 静态注入 , 修改静态的动态库文件 ; 使用 ptrace 函数 , 在程序运行后 , 向进程内存中注入 动态库 , 动过注入的动态库 查询 修改内存 , 这种方式是 动态注入

    1.1K20

    android进程间通信的方式_Android进程注入

    定义多进程 Android应用中使用多进程只有一个办法(用NDK的fork来做除外),就是在AndroidManifest.xml中声明组件时,用android:process属性来指定。...android:process = :remote ,将运行在默认包名:remote进程中,而且是APP的私有进程,不允许其他APP的组件来访问。...文件共享: 对同一个文件先后写读,从而实现传输,Linux机制下,可以对文件并发写,所以要注意同步。顺便一提,Windows下不支持并发读或写。...通过编写aidl文件来设计想要暴露的接口,编译后会自动生成响应的java文件,服务器将接口的具体实现写在Stub中,用iBinder对象传递给客户端,客户端bindService的时候,用asInterface...只需要注意,Android不允许在主线程中请求网络,而且请求网络必须要注意声明相应的permission。

    79550

    Android 进程注入危害与测试

    ,静态注入针对的是可执行文件,通过修改文件内容实现代码注入,比如修改 smali 文件二次打包。...动态注入针对进程,通过修改寄存器、内存值等实现代码注入。相对于静态注入,进程注入不需要改动源文件,单需要最高权限,如 Android 的 root 权限才能够进行进程注入操作。...Android 下的进程注入效果是类似于 Windows 下的 dll 注入Android 系统使用的是 Linux 内核,因此进程间是弱相互作用,不存在 Windows 下类似于 CreateRemoteThread....so 文件的代码将 .so 链接到目标进程,最后让目标进程的执行流程跳转到注入的代码执行。...0x03 如何防止进程注入 Android注入需要调用 ptrace,然后执行注入 so 中的函数。

    4.6K40

    Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具收尾操作 | 关闭注入的动态库 | 恢复寄存器 | 脱离远程调试附着 )

    文章目录 一、dlclose 函数简介 二、关闭注入的 libbridge.so 动态库 三、恢复寄存器 四、脱离远程调试附着 一、dlclose 函数简介 ---- dlclose 函数的作用是 卸载一个...指定句柄 的动态库 ; 包含头文件 : #include 函数原型 : int dlclose (void *handle); 参数说明 : void *handle : dlopen...函数返回的句柄 ; int 返回值 : 返回 0 说明成功 , 其它失败 ; 二、关闭注入的 libbridge.so 动态库 ---- 参考 【Android 逆向】Android 进程注入工具开发...( 注入代码分析 | 获取 linker 中的 dlopen 函数地址 并 通过 远程调用 执行该函数 ) 博客 , 调用 dlclose 函数 ; 首先 , 获取 目标进程 linker 中的 dlclose...直接设置远程进程的寄存器值 ; /* restore 恢复寄存器 */ ptrace_setregs(target_pid, &original_regs); 四、脱离远程调试附着 ---- 注入工具最后一步操作是

    57510

    【IOC 控制反转】Android 视图依赖注入 ( 视图依赖注入步骤 | 视图依赖注入代码示例 )

    文章目录 总结 一、Android 视图依赖注入步骤 二、Android 布局依赖注入示例 1、创建依赖注入库 2、声明注解 3、Activity 基类 4、依赖注入工具类 5、客户端 Activity...; 一、Android 视图依赖注入步骤 ---- Android 视图依赖注入步骤 : ① 声明注解 : 声明视图注入注解 BindBiew ; ② 客户端 Activity : 定义 MainActivity..., 执行 findViewById 获取视图组件对象 , 并赋值给 Activity 中的属性字段 ; 二、Android 布局依赖注入示例 ---- 1、创建依赖注入库 首先在 Android 应用中...BaseActivity 的 MainActivity 实例对象 */ public static void inject(Activity activity) { // 注入布局文件...* 注入布局文件 */ private static void injectLayout(Activity activity) { // 获取 Class 字节码对象

    69920
    领券