参考:
http://www.cydiasubstrate.com
0x0:前言
一直以来想做一下安卓java hook方面的东西,因为一些游戏的测试,如果能做好java hook的话,那么本机测试的话将会非常方便,更主要的是在一些有签名或者md5防护的游戏中,我们可以确定好位置,然后hook相关方法和修改参数,达到测试的效果,能确保找准位置,那么剩下的就寻找游戏的验证即可。
那么,我们就找了一个cydiasubstrate框架开始测试,其实,用xposed也一样,看使用习惯了,这里我们是刚开始学习,那么就先使用这个开始了。
下面的代码相关的,是使用官网介绍的相关例子。
http://www.cydiasubstrate.com/id/20cf4700-6379-4a14-9bc2-853fde8cc9d1/
建议读者去读官网介绍,英文的,不多,一般都能理解掉。实在不想看官网的,那就继续本篇文章吧。
首先是在手机上安装cydia框架:
https://cache.saurik.com/apks/com.saurik.substrate_0.9.4010.apk
打开后,简单的英文,按照说明点一下即可。
0x1:建立工程
建立好工程以后,将所需jar包导入
然后开始配置AndroidManifest.xml文件
1.我们使用Application对象,程序最优先启动的
2.这里设置主类,跟正常的安卓工程不同,这里相当于开发一个插件
3.这个权限,代表着cydia能够识别他为自己的插件,可以启动它
主类操作:
这里initialize()是初始化相关东西,这个相当于main函数入口
然后后面的方法,都写上注释了,这里也就不再多叙述。
这个工程的目标是,hook手机上面的文字颜色,即短信,联系人之类的文字颜色,上面都操作完毕后,我们运行下程序,可以看到控制台:
这里我们没有Main和launch的入口,所以这个程序是没有图标显示到手机桌面的,因为我们已经指定了他是cydia的一个插件,所以这个时候,我们重启手机即可启动此插件。
通过上面两张图的对比,发现我们已经正常写好了一个测试插件。
这个不是最终目的,只是按照官网的介绍测试成功了一个demo而已,那么接下来就是我们继续扩展了。
测试demo通过,说明这个框架还是可用的,所以我们重要的是下一步的操作了。
我们的主要问题是,修改游戏中的参数数据,如与jni相关的签名数据传输,内购的通信修改,这个是比较重要的。
所以我们先从一个小demo开始,这也是我们下次文章的重点。
不熟悉此框架的同学,多去官网看看介绍,不要说是英文看不懂,就那么一点单词而已,查查也就行了,况且现在浏览器都有翻译。不过还是推荐看英文,原因你懂的。。。
相关测试demo都放到百度网盘,有兴趣的可以试试。
毕竟是框架,用xposed有时候也有风险,所以这个也是,不过风险几率不大的。
相关附件:
链接:
http://pan.baidu.com/s/1gdKhj0J 密码:zmib
- 大小: 20.1 KB
- 大小: 84.8 KB
- 大小: 9 KB
- 大小: 20.8 KB
- 大小: 3.5 KB
- 大小: 116.8 KB
- 大小: 114.1 KB
分享到:
相关推荐
在Android系统中,Hook技术是一种强大的调试和逆向工程手段,它允许开发者在不修改原始代码的情况下,拦截和改变程序的执行流程。标题"Android hook api"指向的是Android平台上的API钩子技术,这是一种用于监控、...
"注入安卓进程,并hook java世界的方法"这一主题主要涵盖了如何在Android环境中对Java层进行动态代码注入和函数Hook的技术。 首先,我们需要理解什么是进程注入。在计算机系统中,进程注入是一种技术,它允许一个...
Android进程so注入Hook java方法的原理和使用(一)中介绍的Android native Hook工具文件,已经在android模拟器上进行Hook测试,能够成功,提供给需要的朋友,也为自己备份一下。
Android 5.1 Art Hook 是一个针对Android系统中 ART (Android RunTime) 的动态代码钩子(Hook)技术。在Android系统中,Art是应用程序运行时环境,它负责编译和执行应用程序的字节码。Hook技术允许开发者在不修改...
在Android上,最常用的Hook库是Xposed框架,它利用Java层面的反射机制对系统API进行Hook。然而,当涉及到C/C++级别的系统函数或库函数时,我们就需要借助更底层的方法,如LD_PRELOAD。 LD_PRELOAD是Linux动态链接器...
在Android开发中,Hook技术是一种高级的编程技巧,它允许开发者在不修改原始代码的情况下,拦截和修改系统或第三方库的函数调用行为。这种方式在进行插件化、动态加载、调试以及性能监控等方面有着广泛的应用。本...
Hook技术在Android开发中是一种非常重要的逆向工程和插桩技术,它允许开发者在不修改原始代码的情况下,通过拦截和替换原有方法的执行流程,来实现对系统或应用功能的扩展和调试。在本篇中,我们将深入探讨Android中...
DDI(Dynamic Device Identifier)Hook框架是Android平台上的一个Java Hook框架,尤其适用于对系统服务、组件或者特定API的监控和控制。本文将深入探讨DDI框架的实现原理、核心功能以及如何进行代码分析。 ### 1. ...
`Android Hook Activity 启动劫持`是一种高级技术,它允许开发者利用动态代理(Dynamic Proxy)技术来拦截并控制AMS的行为,从而在不修改系统源码的情况下,实现对Activity启动流程的监控或修改。 首先,我们需要...
总的来说,Java Hook 和 Android Hook 是强大的编程技术,它们提供了一种在运行时修改和扩展软件行为的能力,但同时也需要谨慎使用,以避免引发不稳定性和安全性问题。在实际开发中,我们需要根据项目需求,选择合适...
在Android开发中,Hook技术是一种常用的调试和测试手段,它允许开发者在不修改原有代码的情况下,改变程序的行为。本文将详细讲解如何实现对Instrumentation的Hook,以达到控制应用程序执行流程的目的。 首先,理解...
Android Hook 技术是一种在运行时动态修改或拦截系统或应用程序行为的方法,它通过替换或扩展原始方法实现来达到特定目的。Hook 在 Android 中的应用广泛,例如性能分析、调试、插件化开发以及安全审计等。在本示例...
Android_Inline_Hook_ARM64 是一个开源项目,专门针对基于ARM64架构的Android设备设计,用于实现在原生层进行代码注入和钩子功能。这个项目的主要目的是模仿Xposed框架的功能,允许开发者在不修改系统应用源码的情况...
在Android平台上,Hook技术是一种强大的调试和逆向工程工具,它允许开发者拦截和修改应用程序的运行时行为。本文将深入探讨Android Hook的基本概念,并通过Cydia Substrate框架介绍如何在Android设备上实现简单的...
Android进程so注入Hook java方法的原理和使用(一)中提到的Android native Hook的源码工程,能够在ubuntu下编译成功,提供给向学习Android的Hook的同学,同时也自己备份一下。
网易APM的Android端Hook方案探索是针对Android应用性能监控的一个深入研究项目。APM是Application Performance Management(应用性能管理)的缩写,主要负责监控和管理软件应用程序的性能,以确保应用以最佳状态运行...
在Android中,我们通常使用Java的反射机制和代理模式来实现hook。它允许我们在运行时动态地改变代码的行为,比如在特定函数执行前后插入自定义逻辑,或者替换函数的实现。 在这个插件化开发的场景下,我们的目标是...
小米mimu系统,会对toast进行拦截,在用户提交的toast 消息体拼接一个前缀,由于该种会导致插件工程出现资源错乱,获取appLabel异常,现我们通过hook 动态代理,对消息发送做一个劫持,修改消息信息,还原原来的消息
在Android系统中,"Native Hook...总的来说,Android Native Hook是一种强大的技术,但它也伴随着风险和挑战。理解其原理并谨慎使用,可以为开发者提供更深入的系统控制,同时,也要时刻注意遵循平台规则和用户隐私。
在Android版手机摄像头这一主题中,我们探讨的是如何利用Android智能手机作为远程监控设备,以便在个人计算机(PC)上查看实时视频流。这涉及到多个技术领域,包括移动应用开发、网络通信、视频编码与解码以及设备...