往期推荐

Frida Native层HOOK

Frida hook Java层

frida环境安装

Xposed框架安装、使用及插件开发

需要相关资料的朋友,可以【[加入此处即可打包获取]】

Cydia Substrate是一个基于Hook的代码修改框架,可以在Android、iOS平台使用,并实现修改系统默认代码。

一:substrate的API介绍

Substrate具体的运行是由下图这个jar包所执行。

1.Substrate的代码编写实现系统文字颜色篡改。

(1)创建一个空的Android工程,由于创建的工程将以插件的形式被加载,所以不需要activity,将SDK中的substrate-api.jar复制到project/ libs文件夹中。配置Manifest文件指定权限,cydia.permission. SUBSTRATE,如下图所示。

(2)创建一个类,类名为Main,类中包含一个static方法initialize,当插件被加载的时候,该方法中的代码就会运行,完成一些必要的初始化工作,如下图所示。

(3)添加meta标签,name为cydia.permission.SUBSTRATE,value为下一步创建的类名,例如Main,如下图所示。

(4)为了实现HOOK,达到修改目标类中的代码的目的,需要得到目标类的一个实例,如下图所示。

(5)通过MS.MethodHook实例实现原代码的修改。为了调用原来代码中的方法,需要创建一个MS.MethodPointer类的实例,它可以在任何时候运行原来的代码,如下图所示。

(6)返回颜色,重启系统即可,如下图所示。

2.Substrate的代码编写实现游戏金币篡改。

(1)定义方法,如下图所示。

(2)hook获取金币数的方法,如下图所示。

(3)新建一个MethodPointer对象,如下图所示。

(4)开始hook方法,写入自己想改变的数据,如下图所示。

(5)调用原getMoney方法,将原方法的返回值放到coin_num,如下图所示。

(6)修改金币数,返回coin_num返回游戏即可,如下图所示。

二: native层hook

1.创建一个android程序,在android工程中新建jni文件夹,加入相关的头文件substrate.h和库文件。

例如:工程只支持arm,那就加入cydia_substrate\lib\armeabi下的两个so文件,如下图所示。

2.在AndroidManifest.xml中注册cydia的自定义权限cydia.permission. SUBSTRATE,设置android:hasCode为 “false”,android:install Location 设置为 “internalOnly”,如下图所示。

3.编写Hook模块代码,即上面的test.cpp ,如下图所示。



4.编写Android.mk,如下图所示。

5.ndk-build将在android工程中生成libs目录,如下图所示。

6.build android工程即可生成hook模块的apk安装包。

7.打开框架apk,点击“Link Substrate Files”,之后点击“Restart System”进行使用。

8,Hook native demo运行之后,会打印每个程序加载so的情况,如下图所示。

小结

分享了substrate的基本概念,substrate的API介绍,Substrate的代码编写实现系统文字颜色篡改,Substrate的代码编写实现游戏金币篡改,Substrate的native层hook。

如果你也对安卓逆向感兴趣。可以加入下方的群,大家一起讨论问题,或者扫描下方二维码关注公众号,关注回复 “安卓逆向” 获取免费教程

安卓逆向交流学习 Q群:876526335
vx:yijin_LX

CydiaSubstrate框架相关推荐

  1. 2021最新Android框架体系架构面试题-如何成为一个更好的Android开发者?送大厂面经一份!

    背景 本人双非渣本 今年由于疫情,上半年一直在家里.2月份本来无忧无虑,呆在家里不给国家添乱的时候,发现身边的同学找到了大厂的offer.心里开始有点慌张.本来想在3月份如果能回到学校,就开始考研之路 ...

  2. Xposed框架开发入门(一)

    最近在学习Android逆向的时候涉及到了Hook方面的知识,所以研究了下Xposed和Cydiasubstrate框架,虽然最后还是成功搞起了,但是一路下来感觉还是有很多不顺的,所以在学习的时候就把 ...

  3. Xposed框架开发入门

    最近在学习Android逆向的时候涉及到了Hook方面的知识,所以研究了下Xposed和Cydiasubstrate框架,虽然最后还是成功搞起了,但是一路下来感觉还是有很多不顺的,所以在学习的时候就把 ...

  4. Android逆向之旅---Native层的Hook神器Cydia Substrate使用详解

    一.前言 在之前已经介绍过了Android中一款hook神器Xposed,那个框架使用非常简单,方法也就那几个,其实最主要的是我们如何找到一个想要hook的应用的那个突破点.需要逆向分析app即可.不 ...

  5. Android上玩玩Hook?

    在中国互联网这片弱肉强食的丛林中,封闭抄袭是垄断巨头的通行证,创新是弱小创业者的墓志铭. 了解Hook 还没有接触过Hook技术读者一定会对Hook一词感觉到特别的陌生,Hook英文翻译过来就是&qu ...

  6. 《Android安全技术揭秘与防范》—第8章8.5节Hook检测/修复

    本节书摘来自异步社区<Android安全技术揭秘与防范>一书中的第8章8.5节Hook检测/修复,作者周圣韬,更多章节内容可以访问云栖社区"异步社区"公众号查看. 8. ...

  7. Android逆向之旅—Hook神器Cydia Substrate使用详解

    一.前言 在之前已经介绍过了Android中一款hook神器Xposed,那个框架使用非常简单,方法也就那几个,其实最主要的是我们如何找到一个想要hook的应用的那个突破点.需要逆向分析app即可.不 ...

  8. 新书《Android安全技术揭秘与防范》终于出版了

    愿每一个北漂的孩子都能找到自己为之奋斗的方向,不负那些在远方默默支持我们的父母和亲人. 历时将近1的新书<Android安全技术揭秘与防范>终于出版了,第一次写书万分激动,这里向大家推广一 ...

  9. 今年Android面试必问的这些技术面,面试心得体会

    前言 不清楚你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开 ...

最新文章

  1. 快速找到Word 2007长文档的某一页
  2. 关于解决tomcat的一个错误
  3. 春晚红包:挺住的百度和崩坏的应用商店
  4. 项目经理的职责 |项目经理做些什么工作
  5. 第二阶段冲刺之站立会议1
  6. 在 Mac 上的“照片”中如何更改文件的储存位置?
  7. android c 调用c,Android NDK 调用C
  8. Android系统--输入系统(三)必备Linux知识_双向通信(scoketpair)
  9. 通过BIOS设置启用CPU虚拟化解决VMware虚拟机不支持X86_64位linux操作系统安装问题
  10. 三线压力传感器原理_压力传感器接线图及原理介绍
  11. Windows10创建工作组、加入工作组、查看工作组包含的所有电脑
  12. Ubantu18.04环境下编译android源码
  13. python牛顿环测量曲率半径
  14. 51单片机向PC端发送字符
  15. java tea属于红茶吗_武夷岩茶属于红茶吗
  16. HNU-电子测试平台与工具-元器件及测量基础
  17. 实时监控Mysql等数据库变化_进行数据同步_了解Maxwell_--MaxWell工作笔记001
  18. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记四(5):系统滴答定时器
  19. github pages不能自动更新
  20. 关于魔趣刷机(含root)步骤

热门文章

  1. C# 项目--更换用户头像,使用相对路径
  2. 佳能MG2580S打印机进纸不顺畅维修
  3. 计算机网络学习笔记(二)——网络边缘
  4. 【从0到1搭建LoRa物联网】5、国产LoRa终端ASR6505驱动DHT11
  5. 安天每日安全简讯20160713
  6. 天天爱跑步noip2016
  7. 一个老的游戏,据说全世界只有不到4000人可以走出房间.密室逃脱--之“天蓝色房间”...
  8. Bia布刷题日记2022/2/15
  9. Extjs6问题——grid不显示数据
  10. 一次性针头滤器-市场现状及未来发展趋势