DAY87 APP 攻防-安卓逆向篇Smail 语法反编译签名重打包Activity 周期Hook 模块
1、APK 逆向-数据修改-结构&格式
2、APK 逆向-逻辑修改-Smail 语法
3、APK 逆向-视图修改-Activity&Xml
#章节点:
1、APP 资产-内在提取&外在抓包
2、APP 逆向-反编译&删验证&重打包
3、APP 安全-存储&服务&组件&注册等
演示案例:
Ø APK 逆向-数据修改-结构&格式
Ø APK 逆向-逻辑修改-Smail 语法Ø APK 逆向-视图修改-Activity&Xml
常见安卓逆向工具及环境:
1、安卓模拟器(最好 root 的真机)
2、Magisk&XP&LSP 框架 HOOK 环境
安装参考:https://blog.csdn.net/danran550/article/details/132256027
3、Jadx-Gui 反编译 Java 代码查看器
4、ApkScan-PKID 查壳工具
5、MT 管理器&NP 管理器 打包签名综合类
6、开发组手&开发者组手 信息获取综合类
7、算法组手&XP&LSP 框架模块 常见 HOOK
8、Smail 语法查询 Smail 逻辑修改辅助
9、脱壳相关:https://mp.weixin.qq.com/s/poQPuvaQPadQxRu_WGvy1A
#APK 逆向-数据修改-结构&格式
1、目录意义
2、数据格式
#APK 逆向-逻辑修改-Smail 语法
1、判断逻辑
2、存储器值
#APK 逆向-视图修改-Activity&Xml
1、时间机制
2、引用更改
3、HOOK 模块
app逆向吾爱破解靶场实验
第一关完成图片替换和文字汉化
打开mt管理器--》安装包提取
点击提取安装包
点击定位
查看
搜索
搜索hello查看到文本所在文件位置
打开开发者助手,将文字复制
选中复制文字信息
Я не могу поверить, что это работает, почему?
Reverse determines height,
development determines depth.
查找到文件位置
7F100033
Np管理器打开
搜索查找
修改
查看结果
复制文字
Reverse determines height,
development determines depth.
修改
过关了
第二关修改逻辑代码
搜索硬币
Np管理器再classes.dex中搜索硬币
查看java代码
Jadx反编译查看代码
转java看一下逻辑,发现这是关键位置
private static final boolean m2onCreate$lambda-2(IntRef intRef, ChallengeSecond challengeSecond, ImageView imageView, ImageView imageView2, ImageView imageView3, View view) {
if (intRef.element < 10) {
Toast.makeText((Context) challengeSecond, "请先获取10个硬币哦", 1).show();
} else {
imageView.setImageResource(2131558424);
imageView2.setImageResource(2131558408);
imageView3.setImageResource(2131558410);
SPUtils.INSTANCE.saveInt((Context) challengeSecond, "level", 2);
}
return true;
}
这里是intRef.element小于10就要先获取10个硬币,如果大于10就可以一键三连。
此java代码按照逻辑应该在这个位置
查看le-ge的smail语法
查看代码逻辑
修改smail语法
if (intRef.element < 10) {
代码逻辑发生修改了
第三关修改布局去除广告
第三关打开之后等待三秒就会弹出广告,并且无法返回只能退出和去官网
使用MT管理器的Activity记录
只要打开靶场就会触发Activity记录
监控到了这个类的地址com.zj.wuaipojie.ui.AdActivity
NP管理器定位一下
发现广告超时时间
这里的3000就是三秒,将3000改成0即可
也就是将0xbb8改成0x0,十六进制转十进制
修改好保存即可。
没有启动广告了
案例
陶小说破解
逻辑修改
搜索开通dex文件查看
资源文件查看
记录id号:7F110725
查看java代码
跳转到
修改代码逻辑
添加签名
开通会员了
相关文章:

DAY87 APP 攻防-安卓逆向篇Smail 语法反编译签名重打包Activity 周期Hook 模块
1、APK 逆向-数据修改-结构&格式 2、APK 逆向-逻辑修改-Smail 语法 3、APK 逆向-视图修改-Activity&Xml #章节点: 1、APP 资产-内在提取&外在抓包 2、APP 逆向-反编译&删验证&重打包 3、APP 安全-存储&服务&组件&注册等 演示案例&a…...

jenkins 工具使用
使用方式 替代手动,自动化拉取、集成、构建、测试;是CI/CD持续集成、持续部署主流开发模式中重要的环节;必须组件 jenkins-gitlab,代码公共仓库服务器(至少6G内存);jenkins-server,…...

使用C语言实现字符推箱子游戏
使用C语言实现字符推箱子游戏 推箱子(Sokoban)是一款经典的益智游戏,玩家通过移动角色将箱子推到目标位置。本文将带你一步步用C语言实现一个简单的字符版本的推箱子游戏。 游戏规则 玩家只能推箱子,不能拉箱子。只能将箱子推到…...
用SpringBoot API实现识别pdf文件是否含有表格
要使用Spring Boot API 实现一个识别 PDF 文件是否含有表格的功能,你可以结合 PDF 解析库(如 Apache PDFBox)来解析 PDF 文件内容,并通过分析文本或线条来判断 PDF 是否包含表格。然后使用 Spring Boot 提供的 REST API 来实现上传…...

嵌入式S3C2440:控制LED灯
发光二极管接口(左端)应为低电平 以LED1为例 LED1的接口为GPB5 void led_init(void) {//配置GPB5功能为输出GPBCON & ~(0x3 << 10);GPBCON | (0x1 << 10); //使GPB5输出高电平(关灯)GPBDAT | (1 << 5); }void led_on(void) {GPB…...

算法:区间dp
文章目录 一、适用场景二、基本思路步骤时间复杂度: 三、例题 区间动态规划(Interval DP)是一种用于解决某些需要处理区间或子段问题的动态规划方法,特别适合于问题的解可以通过子区间的解进行组合的情况。该方法的核心思想是在子…...

【14.1运行版】C++俄罗斯方块-实现欢迎界面
实现欢迎界面 #include <stdio.h>//C语言形式的输入输出 #include <graphics.h>//图形库的头文件//实现欢迎界面 void welcome(void);int main(void) {welcome();//colsegraph();return 0; }void welcome(void) {//初始化画布initgraph(550, 660);//设置窗口标题H…...

数据分析:R语言计算XGBoost线性回归模型的SHAP值
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍SHAP用途计算方法:应用加载R包导入数据数据预处理函数模型介绍 SHAP(SHapley Additive exPlanations)值是一种解释机器学习模型预测的方法。它基于博弈论中的Shapley值概念,…...

SprinBoot+Vue图书馆预约与占座微信小程序的设计与实现
目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平…...

云计算之大数据(上)
目录 一、Elasticsearch 1.1 产品组件 1.1.1 X-Pack 1.1.2 Beats数据采集中心 1.1.3 Logstash 1.1.4 Kibana 1.2 架构特性 1.2.1 性能 1.2.2 安全性 1.2.3 可用性 1.2.4 可扩展性 1.2.5 可维护性 1.2.6 国际化 1.3 综合检索分析 1.4 全观测 1.5 大数据检索加速…...

交友系统“陌陌”全方位解析
交友系统在现代社会中扮演着越来越重要的角色,尤其是随着互联网技术的发展,各种交友软件层出不穷。陌陌作为其中的佼佼者,其全方位解析对于理解交友系统的商业开发至关重要。 陌陌的核心功能是提供基于地理位置的社交服务,用户可…...
Android 删除开机动画
Android 删除开机动画 两种方法都是将debug.sf.nobootanimation的值改为属性1 第一种: frameworks/base/cmds/bootanimation/BootAnimationUtil.cpp bool bootAnimationDisabled() {char value[PROPERTY_VALUE_MAX]; // property_get("debug.sf.nobootani…...

我用 GPT 学占星
最近对占星赶兴趣,但是看到星盘中好多名词,不懂是什么意思?所以直接问 gpt , 发现回答的真的很棒🎉 ! 假如我想知道各个状态的具体是根据什么数据来显示的? 分分钟解决了我的问题; 我…...

028、架构_高可用_主从原理
MySQL半同步复制概览 MySQL主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。主从复制的基本过程如下图所示: 主从复制的完成通过以下三个进程实现的主库 binary log dump 线程:当从库连接主库时,…...

【启明智显技术分享】探讨CAN总线相关知识以及Model3C 2路CAN的应用
一、 CAN总线相关知识 CAN总线概述 CAN(Controller Area Network)总线是一种高实时性、高可靠性和灵活性的串行通信协议,广泛应用于汽车和工业控制系统中。它由德国BOSCH公司开发,最高速率可达到1Mbps,具有强大的检错…...
【python学习】深度解析 Python 的 .env配置与最佳实践:温格高的环境变量配置之道
1. 文章简介 在开发和部署 Python 项目时,环境变量配置对于管理敏感信息如数据库连接字符串、API 密钥至关重要。本文将以温格高(2023年环法冠军)的项目为例,详细介绍如何通过 .env 文件简化环境配置,并分享多环境管理、Docker 集成等热门功能。我们还将覆盖一些小技巧和…...
计算机考研真题知识点——2021(B)
目录 2021(B) 一、选择题 二、判断题 三、简答题 四、综合题 2021(B) 一、选择题 1、以下说法正确的是:C A、switch后面括号中放置的可以是值为任意类型的表达式。 B、continue和break均可以用在switch语句及循环语句中。 C、如果函数的返回类型与返回值类型不一…...
C#中ArrayList
ArrayList 1:位于System.Collections命名空间下, 2:ArrayList的容量可以根据需要自动扩充 3:只能是一维形式,数组可以是多维的 4:提供添加、删除、和插入某一范围元素的方法 三种构造方法 1) ArrayList list1 n…...
【MySQL】批量插入数据造数-存储过程
日常工作中可能有针对需要对某个表进行造数,如何批量插入呢? 可以使用存储过程循环结构。下面是一个存储过程以插入100条,while语句后的<控制循环次数。 concat是一个拼接语句,拼接后是test_1-100,这种也适用于ID/…...

基于Java+SpringBoot+Vue+MySQL的高校物品捐赠管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的高校物品捐赠管理系统【附源码文档】、…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...

Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...

Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...