news 2026/4/17 0:28:37

安卓逆向从入门到入土之一道入门级的CTF题目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
安卓逆向从入门到入土之一道入门级的CTF题目

首先当然是安装上,界面如下:

gda打开,定位到关键位置MainActivity下的checkPassword,如下:

java代码还是比较清晰的,但是本着学习smail的原则我们还是来看smail代码吧,首先开头不用多说:

.class:Lre/sdnisc2018/sdnisc_apk1/MainActivity; .method@3c5e public checkPassword(Ljava/lang/String;)V .prologue .insnsSize 45 (16-bit) .registers 5 [ v0 v1 v2 v3 v4 ]

通过getflag()函数,结果保存在v0:

invoke-direct {v3}, method@3c61 // Lre/sdnisc2018/sdnisc_apk1/MainActivity;->getFlag()Ljava/lang/String; move-result-object v0

通过StringBuffer类的reverse()方法对上面的结果进行处理,即对结果进行反转取代:

new-instance v1, class@0726 // Ljava/lang/StringBuffer; invoke-direct {v1, v0}, method@3b3a // Ljava/lang/StringBuffer;-><init>(Ljava/lang/String;)V invoke-virtual {v1}, method@3b3b // Ljava/lang/StringBuffer;->reverse()Ljava/lang/StringBuffer; move-result-object v0

然后再对结果进行base64解码:

new-instance v1, class@0725 // Ljava/lang/String; invoke-virtual {v0}, method@3b3c // Ljava/lang/StringBuffer;->toString()Ljava/lang/String; move-result-object v0 const/4 v2, #int 0 // #0 invoke-static {v0, v2}, method@3458 // Landroid/util/Base64;->decode(Ljava/lang/String;I)[B move-result-object v0

然后和输入进行比较,结果放在v4:

invoke-direct {v1, v0}, method@3b1b // Ljava/lang/String;-><init>([B)V invoke-virtual {v4, v1}, method@3b22 // Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v4

如果相等,congratulation,不等则跳转,显示try again:

所以,我们要关注的是getflag()后的结果,定位到代码:

getflag()比较简单,就是获取0x7f0b0020位置的字符串:

得到字符串以后先反转,再base64解密,即可得到flag:

over~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:09:43

如何高效启动Qwen3-VL?使用Qwen3-VL-WEBUI镜像实现免下载即用体验

如何高效启动Qwen3-VL&#xff1f;使用Qwen3-VL-WEBUI镜像实现免下载即用体验 在多模态大模型快速演进的今天&#xff0c;Qwen3-VL 作为通义千问系列中最强的视觉-语言模型&#xff0c;正逐步从“看图说话”迈向真正的智能代理。它不仅能理解图像与文本&#xff0c;还能执行GU…

作者头像 李华
网站建设 2026/4/16 11:03:43

MiDaS模型优化技巧:提升深度估计精度

MiDaS模型优化技巧&#xff1a;提升深度估计精度 1. 引言&#xff1a;AI 单目深度估计的挑战与机遇 1.1 行业背景与技术痛点 在计算机视觉领域&#xff0c;单目深度估计&#xff08;Monocular Depth Estimation&#xff09;是一项极具挑战性的任务。与双目视觉或激光雷达不同…

作者头像 李华
网站建设 2026/4/16 11:05:20

单目视觉测距系统搭建:MiDaS模型完整部署教程

单目视觉测距系统搭建&#xff1a;MiDaS模型完整部署教程 1. 引言&#xff1a;AI 单目深度估计的现实意义 在自动驾驶、机器人导航、AR/VR 和智能安防等前沿领域&#xff0c;三维空间感知能力是实现环境理解的核心基础。传统方案依赖双目立体视觉或多线激光雷达&#xff08;L…

作者头像 李华
网站建设 2026/4/16 16:12:15

AI万能分类器数据闭环:自动标注+主动学习方案

AI万能分类器数据闭环&#xff1a;自动标注主动学习方案 引言 在AI模型开发过程中&#xff0c;数据标注一直是个让人头疼的问题。传统的人工标注不仅耗时费力&#xff0c;成本高昂&#xff0c;而且随着数据量的增加&#xff0c;标注质量往往难以保证。想象一下&#xff0c;你…

作者头像 李华
网站建设 2026/4/16 12:27:35

AI万能分类器新手指南:没显卡也能10分钟入门

AI万能分类器新手指南&#xff1a;没显卡也能10分钟入门 引言&#xff1a;退休教师的植物相册困境 张老师退休后最大的爱好就是拍摄各种植物照片&#xff0c;十年间积累了上万张图片。当她尝试用MacBook整理这些照片时&#xff0c;发现电脑卡顿严重&#xff0c;连基础的图片分…

作者头像 李华
网站建设 2026/4/16 10:39:49

Spring中的定时任务怎么用?

一、定时任务怎么用&#xff1f; 1️⃣ 开启定时任务 SpringBootApplication EnableScheduling public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} }2️⃣ 编写定时任务 Component public class OrderTask…

作者头像 李华