app逆向-平头哥框架ratel使用

文章目录

    • 一、前言
    • 二、实现逻辑
      • 1、安装ratel手机端app
      • 2、使⽤电脑端进⾏感染目标app
      • 3、开发⼀个平头哥插件

一、前言

平头哥(ratel)是⼀个Android逆向分析⼯具套件,他提供⼀系列渐进式app逆向分析⼯具。同时平头哥也是⼀个app⼆次开发的沙箱环境,⽀持在免root环境下hook和重定义app功能。

项⽬地址: https://github.com/virjarRatel
在这里插入图片描述

二、实现逻辑

1、安装ratel手机端app

主要作用:可以方便查看app是否被感染成功

链接:https://pan.baidu.com/s/1eU2cEgW4pHOB08gcqDZDNQ 提取码:h7oo

安装效果图:
在这里插入图片描述

2、使⽤电脑端进⾏感染目标app

下载感染引擎:

链接:https://pan.baidu.com/s/13HqPPdqVL9LPrYFOHD-UBA 提取码:n3nj

⽬录结构

.
├── ratel.bat # windows上⽤来感染的脚本
├── ratel.sh # linux/mac 上⽤来感染的脚本
├── ratelConfig.properties
└── res├── build_timestamp.txt├── container-builder-repkg-2.0.0-SNAPSHOT-dex.jar├── container-builder-repkg-2.0.0-SNAPSHOT.jar├── hermes_bksv1_key├── hermes_key├── monthly_temp.txt└── ratel_version.txt

运⾏脚本进⾏感染

# liunx
./retal.sh 目标app的路径
# windows
./ratel.bat 目标app的路径

需要被感染的目标app下载

链接:https://pan.baidu.com/s/1412ZQWa4frCAeyM1tCiuKQ 提取码:c10k

运⾏完成之后, 会得到⼀个 com.example.myapplication_1.0_1_ratel.apk 这个就是感染好了的⽂件, 可以直接安装到⼿机, 确保之前的app已经被卸载了, 否则可能会安装失败, 如果是debug下并且开启了testOnly, 需要用 adb install -t xxx.apk 进⾏安装。

打开ratel查看是否感染成功
在这里插入图片描述

3、开发⼀个平头哥插件

新建⼀个普通的Android项⽬,用于插件的基本模板
在这里插入图片描述
添加相关依赖

android {
.............packagingOptions {exclude 'META-INF/INDEX.LIST'exclude 'META-INF/io.netty.versions.properties'}
}

第三方包

dependencies {implementation 'androidx.appcompat:appcompat:1.1.0'implementation 'com.google.android.material:material:1.1.0'implementation 'androidx.constraintlayout:constraintlayout:1.1.3'testImplementation 'junit:junit:4.+'androidTestImplementation 'androidx.test.ext:junit:1.1.1'androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'// ratel核⼼apicompileOnly 'com.virjar:ratel-api:1.3.6'// ratel的扩展api,他⼀般是给逆向破解和爬⾍业务使⽤,如果您只是基于ratel做⼀个插件,那么⼤多数情况api 'com.virjar:ratel-extersion:1.0.6'// sekiro项⽬,他可以提供⻓链接RPC功能api 'com.virjar:sekiro-api:1.0.3'
}

在Android清单⽂件 AndroidManifest.xml 添加如下内容

    <application.........<meta-data android:name="xposedminversion" android:value="54"/><meta-data android:name="xposedmodule" android:value="true"/><meta-data android:name="xposeddescription" android:value="这个描述可以随便写, 会展示在插件列"/></application>

创建assets文件夹,在assets文件夹下添加文本xposed_init , 内容为hook的⼊⼝类的完整路径, 如果有多个,分到多⾏去写。

com.example.plugintest.HookEntry#  如果有多个插件,分到多⾏去写
com.example.plugintest.HookEntry01
com.example.plugintest.HookEntry02

编写hook类

package com.example.plugintest;import com.virjar.ratel.api.rposed.IRposedHookLoadPackage;
import com.virjar.ratel.api.rposed.callbacks.RC_LoadPackage;public class HookEntry implements IRposedHookLoadPackage {@Overridepublic void handleLoadPackage(RC_LoadPackage.LoadPackageParam lpparam) throws Throwable {System.out.println("包名是什么:" + lpparam.packageName);}
}

将编写好的插件运⾏到app, 然后开启插件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/692731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java语言概述(三)

Java 是一种通用的、面向对象的编程语言&#xff0c;支持并发编程、网络编程和多线程等特性。它由 Sun Microsystems 公司在 1995 年推出&#xff0c;并且随着其开源和跨平台的特性&#xff0c;Java 已经成为了当今最流行的编程语言之一。 Java 的主要特点包括&#xff1a; 跨…

【运维】站点可靠性工程介绍:研发,运维,SRE,Devops的关系

文章目录 1、什么是SRE2、SRE与研发、运维的区别 1、什么是SRE 站点可靠性工程&#xff08;SRE&#xff09; 是 IT 运维的软件工程方案。 SRE 团队使用软件作为工具&#xff0c;来管理系统、解决问题并实现运维任务自动化。 SRE 执行的任务以前通常由运维团队手动执行&#x…

ChatGPT遭受匿名苏丹组织DDoS攻击:网络安全在AI时代的新挑战

ChatGPT遭受匿名苏丹组织DDoS攻击&#xff1a;网络安全在AI时代的新挑战 最近&#xff0c;全球备受瞩目的AI对话机器人ChatGPT及其开发公司OpenAI遇到了一连串的服务中断和异常错误&#xff0c;这一系列问题背后似乎暗藏了分布式拒绝服务&#xff08;DDoS&#xff09;攻击的阴…

Huggingface镜像网站下载语言模型方法

通常通过镜像网站下载https://hf-mirror.com/。 在链接页面有介绍方法&#xff0c;对于不大的模型可以直接下载。这里介绍比较常用且方便的下载方法。 使用huggingface 官方提供的 huggingface-cli 命令行工具 安装&#xff08;huggingface_hub、hf_transfer安装可以使用-i命…

Elasticsearch:创建自定义 ES Rally tracks 的分步指南

作者&#xff1a;Alejandro Snchez 按照这个综合教程学习如何制作个性化的 Rally tracks ES Rally 是什么&#xff1f;它的用途是什么&#xff1f; ES Rally 是一个用于在 Elasticsearch 上测试性能的工具&#xff0c;允许你运行和记录比较测试。 做出决策可能很困难&#x…

OpenCV统计函数之minMaxLoc和meanStdDev

在OpenCV中&#xff0c;minMaxLoc和meanStdDev是两个用于统计图像或数组中元素的基本特性的函数。这些统计函数对于图像处理、特征提取和数据分析非常有用。 minMaxLoc minMaxLoc函数用于查找数组或图像中的最小值和最大值&#xff0c;并可选地返回这些值的位置。这在处理图像…

Vue模版语法之属性绑定v-bind

双大括号不能在 HTML 属性中使用。想要响应式地绑定一个属性&#xff0c;应该使用 v-bind 指令 1. 使用v-bind绑定属性 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>新建页面</title><sc…

【Java中23种设计模式-单例模式--饿汉式】

加油&#xff0c;新时代打工人&#xff01; 简单粗暴&#xff0c;直接上代码。 23种设计模式定义介绍 Java中23种设计模式-单例模式 Java中23种设计模式-单例模式2–懒汉式线程不安全 Java中23种设计模式-单例模式2–懒汉式2线程安全 package mode;/*** author wenhao* dat…

一个PDF处理利器的.Net开源项目

在项目开发中&#xff0c;处理PDF文件是一个非常常见的需求&#xff0c;之前也推荐几个&#xff0c;今天继续给大家推荐一个强大且易于使用的开源库&#xff0c;专门用于处理PDF文件&#xff0c;它提供了一系列功能强大的工具&#xff0c;帮助开发人员轻松地解析、修改和创建PD…

【蓝桥杯基础】1.7星系炸弹

问题 在X星系的广袤空间中漂浮着许多X星人造“炸弹”&#xff0c;用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。 比如&#xff1a;阿尔法炸弹2015年1月1日放置&#xff0c;定时为15天&#xff0c;则它在2015年1月16日爆炸。 有一个贝塔炸弹&#xff0c;2014年…

基于物联网智慧公厕的多功能城市智慧驿站

在现代城市发展中&#xff0c;智慧化已经成为了一个不可或缺的趋势。而多功能城市智慧驿站&#xff0c;作为智慧城市建设的一部分&#xff0c;以物联网智慧公厕为基础&#xff0c;集合了诸多功能于一身&#xff0c;成为了城市中不容忽视的存在。多功能城市智慧驿站也称为轻松的…

Spring Cloud部署篇1——Jar包部署至CentOS云服务器

一、项目介绍 系统模块 com.mingink |--mingink-api // 接口模块 | └──mingink-api-system // 系统接口 |--mingink-common // 通用模块 | └──mingink-common-core // 系统接口 |--mingink-gateway…

shapely 笔记:STR TREE

数据结构笔记&#xff1a;R树-CSDN博客 1 基本介绍 使用Sort-Tile-Recursive (STR) 算法创建的仅查询的R-tree空间索引该树索引每个几何图形的边界框。树在初始化时直接构建&#xff0c;且一旦创建后不能添加或移除节点所有操作返回输入几何图形的索引边界框限于二维并且是轴…

前端常见面试题之vue2

文章目录 一、vue2中父子组件嵌套时的生命周期执行顺序是怎样的1. 挂载阶段2. 更新阶段3. 销毁阶段 二、vue组件通讯方式有哪些1. 父子组件通讯方式(1). Props 和 Events&#xff1a;父组件通过props向子组件传递数据&#xff0c;子组件通过事件向父组件传递数据。(2). $parent…

[word] word定时自动保存功能的作用是什么 #知识分享#学习方法#媒体

word定时自动保存功能的作用是什么 word定时自动保存功能的作用是什么 这是word提供的一个保护用户文档的功能&#xff0c;一般情况下是为了预防在未知原因的情况下&#xff0c;用户电脑关闭&#xff0c;或者不小关掉Word&#xff0c;导致正在使用的文档丢失&#xff0c;给用户…

nginx的功能以及运用

nginx与apache的对比 nginx优点 nginx使用场景 编译安装nginx过程 1.先清空opt文件夹 2.关闭防火墙&#xff0c;关闭防护 3 安装依赖包&#xff0c;可以通过本地yum去安装 首先就是挂载&#xff0c;随后切换到配置文件中修改 4本地配置文件配置内容 5 随后安装环境包 yum -y …

洛谷 P1241 括号序列 (Java)

洛谷 P1241 括号序列 (Java) 传送门&#xff1a;P1241 括号序列 题目&#xff1a; 括号序列 题目描述 定义如下规则&#xff1a; 空串是「平衡括号序列」若字符串 S S S 是「平衡括号序列」&#xff0c;那么 [ S ] \texttt{[}S\texttt] [S] 和 ( S ) \texttt{(}S\textt…

uniapp运动课程健身打卡系统微信小程序

考虑到实际生活中在我来运动管理方面的需要以及对该系统认真的分析,将系统分为小程序端模块和后台管理员模块&#xff0c;权限按管理员和用户这两类涉及用户划分。 (a) 管理员&#xff1b;管理员使用本系统涉到的功能主要有&#xff1a;首页、个人中心、用户管理、课程类别管理…

Python爬虫之图形验证码的识别

爬虫专栏&#xff1a;http://t.csdnimg.cn/WfCSx 前言 目前&#xff0c;许多网站采取各种各样的措施来反爬虫&#xff0c;其中一个措施便是使用验证码。随着技术的发展&#xff0c;验证码的花样越来越多。验证码最初是几个数字组合的简单的图形验证码&#xff0c;后来加入了英…

Java学习25--自定义异常

自定义异常class 自定义异常通常要配合 override “toString”命令&#xff0c;其实质是一个会报错的method,像一个交通违章通报LED&#xff0c;但何时被触发&#xff0c;如何算是违反交通&#xff0c;并不会在此class定义。 自定义异常class的步骤&#xff1a; 自建个异常类…