当前位置: 首页 > backend >正文

Android逆向学习(十) IDA逆向编辑Android so文件

Android逆向学习(十) IDA逆向编辑Android so文件

一、 写在前面

这是吾爱破解论坛正己大大的第10个教程

native code在我之前的博客中讲到过,所以这里就不讲了

简单来说,native code就是在android中使用c++或c语言进行开发

这样的话会给逆向带来一定的难度,所以本博客就是介绍如何解决这个问题

使用到的工具有:

vscode

IDA pro 9.0

二、 任务目标

打开挑战7,可以看到这次的任务是要打开这个大门,但是我们是不知道密钥的,所以可以明确我们的任务就是想办法获得这个密钥。

在这里插入图片描述

三、 实现方法

首先分析第七关的代码:

在这里插入图片描述

可以发现调用了lib中so文件,然后我测试用的手机是红米k30su,架构是arm64,所以就选择arm64-v8a文件夹下面的so文件

之后通过ida打开这个文件,查找名称为check的函数

在这里插入图片描述

大概就可以判断出check是进行判断的函数,只要对这个进行修改就可以了:

然后观察代码的样子,(这是我做完题目后又回过头写博客的,所以跟原版有点不一样,就是v7=strcmp(v6,v5) == 0可能本来是1来着)

在这里插入图片描述

我的第一个想法就是修改v7的判断,但实际上这种修改是有点问题

strcmp 返回 1 并不等于“不相等”这么简单,它只是在字典顺序上 str1 > str2 的情况下才返回 1。

查看汇编代码会发现实际上是这样的:

在这里插入图片描述

W22会保存最终的返回值,只要这个返回值永远是true就可以了,说干就干

在这里插入图片描述

选中CSET 然后点击上图中的Changebyte

在这里插入图片描述

这就是16进制的字节码,然后复制到这个网站

https://armconverter.com/

这个网站是字节码转汇编的网站

在这里插入图片描述

之后修改这个代码,将cset w22,eq转化称mov w22,#1,就可以永远返回为真,这时候有变出现ARM64的字节码,然后复制这个字节码,粘贴回去

在这里插入图片描述

粘贴回去就会发现代码变了:

在这里插入图片描述

在这里插入图片描述

然后保存打包就可以了

保存就是ctrl+s

打包就是点击下面的apply

在这里插入图片描述

在这里插入图片描述

然后通过逆向的重打包功能就可以重新运行:

右键apktool.yml然后选择APKLab:Rebuild and Install the APK,就可以重新安装了

在这里插入图片描述

最后的效果就是这样,点击就可以显示进入密界了(为了好玩我把图片换成了虎哥一眼万年的图片)

在这里插入图片描述

http://www.xdnf.cn/news/6175.html

相关文章:

  • 为什么要选择七彩喜数字康养平台?加盟后有何优势?
  • 计算机网络:手机和基站之间的通信原理是什么?
  • 高德地图在Vue3中的使用方法
  • ACM算法
  • ubuntu清除缓存
  • rhel8.1 无法安装应用(提示需要注册系统)
  • 【Ansys 2023 R2 Icepak】 风扇位置优化
  • 作业帮Android面试题及参考答案
  • 第5章 运算符、表达式和语句
  • 下载的旧版的jenkins,为什么没有旧版的插件
  • 【面试 · 四】vue2、vue3、react区别
  • 高防ip支持哪些网络协议
  • 【 Java开发枚举值规范】
  • 打卡DAY25
  • whonix系统详解
  • select、poll、epoll
  • GPUGeek携手ComfyUI :低成本文生图的高效解决方案
  • linux下conda环境的完全导出与导入,主要讲离线模式
  • 智能手表项目风险评估与应对计划书
  • 鸿蒙5.0项目开发——鸿蒙天气项目的实现(欢迎页)
  • React构建组件
  • Android学习总结之Glide自定义三级缓存(面试篇)
  • 网络实验-GRE
  • QT-1.信号与槽
  • HarmonyOS NEXT~React Native在鸿蒙系统(HarmonyOS)上的适配现状与技术展望
  • 【论文阅读】UNIT: Backdoor Mitigation via Automated Neural Distribution Tightening
  • CMD(Command Prompt)和 Anaconda 的不同
  • Mathematics-2025《Semi-Supervised Clustering via Constraints Self-Learning》
  • 查询电脑伪装IP,网络安全速查攻略!
  • 入门OpenTelemetry——可观测性与链路追踪介绍