CTF逆向 re1-e7e4ad1a.apk

2024-02-07 21:08
文章标签 ctf 逆向 apk re1 e7e4ad1a

本文主要是介绍CTF逆向 re1-e7e4ad1a.apk,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里分析一下2016ctf的一道逆向题,apk包:re1-e7e4ad1a.apk。

首先使用adb将apk文件发送到真机模拟器中(模拟器根据自己,也可以使用电脑上的模拟器,这里我使用的是真机模拟器)。界面如下:

从这个APP的界面可以看到需要输入编号和密码,然后单击sign。在这里我们要做的就是寻找到这个编号和密码。

使用jeb打开re1-e7e4ad1a.apk文件,看一下整体的结构不是很乱

在这里看到了onCreate,光标移到此处,点击q键查看C代码,

在这里发现两个按钮,分别是sign和exit。点开b可以看到一个非常关键的判断语句:

可以看到前半句是来判断编号的,后半句是来判断密码的。那么就先看看前半句:

(Seclreg.c(this.a).equals(this.a.getResources().getString(2131034119)))

可以看到getString的值为2131034119,将其转换为十六进制为7f050007,然后在public.xml中找到7f050007,可以看到username,然后在string.xml中找到username,这样我们就找到了编号。

 

找到了编号就继续分析后半句:

(Seclreg.f(this.a).getpl(Seclreg.e(this.a), Seclreg.d(this.a))))

这里可以看到getpl,找到它发现了native,

看到这里就应该知道这里需要分析so文件

将在jeb里看到的so文件拖到ida进行静态分析:

在窗口exports可以看到我们想要找的getpl,双击进去,转换成C代码发现了关键函数getpl

双击进去查看。因为我们的目的是找到最终的flag,所以不需要每条代码都进行分析,只要找到关键的语句就可以,一般情况都会在最后,果然在最后面可以看到:

这就是关键的判断语句。首先可以看到if ( v11 == 39 )语句,很明显就是告诉我们密码的长度是39位,这里需要修改判断语句将其改为相反的结果。往下看可以看到一个比较函数,将p1和s2进行比较,s2是我们需要输入的密码,那么p1就是我们需要找到的flag了。

回到汇编图形窗口,找到这个关键代码:

在00007FEE处找到了关键代码,BNE代表的是不为0 跳转,与之相对应的是BEQ,两个相对应的机器码分别是D1和D0,

下面要进行ida动态调试:

首先启动android_server,命令:

adb devices

adb push  android_server的目录  /data/local/tmp/android_server

adb shell

我在操作的时候遇到了一些错误,大家自己操作时多多注意就好了。

然后重新打开一个cmd进行端口转发:adb forward tcp:23946 tcp:23946

在真机模拟器中打开APP,将要调试的so文件载入ida选择Debugger---Remote ARMLinux/Android debugger 单击OK即可。

Debugger-->Attach to process找到com.ssctf.seclreg,点击OK即可。

下面需要确定断点的位置,偏移地址是7CEC,要需要找到基地址就可以了edit---segments---rebase program即可找到基地址EEE1F000。所以需要下断点的位置就是EEE1F000+7CEC =EEE26CEC ,快捷键G跳转转EEE26CEC ,下断点,然后运行:

然后需要在真机模拟器中填写正确的编号,随便写一个密码,点击sign,程序就会运行到这里,然后我们要找到前面分析过的重要的一个跳转:

找到后点击View--Open subviews--Hex dump,利用F2将D0改为D1,保存即可。

下断点,点击运行进行调试:

在hex view中右键点击Synchronize with选择R0,然后单步调试就可以看到flag了。也看到了前面分析过的P1。

Flag就是:SSCTF{oty3eaP$g986iwhw32j%OJ)g0o7J.CG:}

这篇关于CTF逆向 re1-e7e4ad1a.apk的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/688938

相关文章

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

转:android ro.debuggable属性调试修改(mprop逆向)

android ro属性调试修改(mprop逆向)      大家都知道如果需要调试android 的程序,以下两个条件满足一个就行。第一是apk的配置文件内的AndroidManifest.xml的 android:debuggable=”true”,第二就是/default.prop中ro.debuggable=1。两种方式第一种通常是解包添加属性再打包,随着加壳软件以及apk校验等,容易出

内置带so的APK为系统APK方法

(1)若内置为可卸载的APK,可以无需解压出lib直接编译就可以 具体参考http://blog.csdn.net/a462533587/article/details/46380795 (2)若内置为system APP,上述blog也有两种方式: 方法一:   如下例,在Android.mk中添加并配置变量(注意路径对应): LOCAL_PREBUILT_JNI_LIBS = \

某里227逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解阿里227版本滑块参数n的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有需要可联系我。 一

apk反编译修改教程系列-----修改apk 解除软件限制功能 实例操作步骤解析_6【二十五】

目前很多软件都需要票票才可以使用完全的功能。纯免费的功能性app已经很少见了。 今天继续以一款app为大家来演示如何去除软件的限制功能。教程的目的主要是学习反编译的基础修改方法,了解app的修改步骤以及基础的入门修改常识。每个使用修改方法不一定适用于所有app。只是给你另外的思路与步骤参考。 反编译工具:MT**绿色版 演示apk;**清单 app

【MyBatis学习14】MyBatis的逆向工程生成代码

1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。 2. 使用逆向工程 使用mybatis的逆向工程,需要导入逆向

js逆向--cai招网

js逆向--cai招网 一、寻找加密入口1、抓包2、关键字搜索寻找加密入口 二、调试js三、python代码实现 一、寻找加密入口 1、抓包 目标数据来源网址为:https://search.bidcenter.com.cn/search?keywords=%E5%85%AC%E5%85%B1%E4%BD%8F%E5%AE%85,打开开发者工具进行抓包。 目标响应数据被加密。

NRF51822 小黄车智能锁 逆向工程

笔者在夜跑时发现有人将拆下的小黄车智能锁丢弃在花园角落,于是萌生了拆解的想法。 拆开外壳后发现MCU 是NRF51822 ,并且预留了Jlink 调试接口,更萌生了逆向这个电路板的想法 下面是 各个智能锁厂家提供的方案: 摩拜单车:STM32F1+GSM+GPS 使用芯片 STM32F401 + NRF51802(BLE)+TD1030 泰斗定位芯片+BQ25895(充电管理)+C3Hx(

某城user_dun,js逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解某城ly headers中参数userdun的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有