小伙伴发了一道安卓的CTF题目,有空就看了下:

首先,这次就先不装了,开个模拟器卡的一P,androidkiller、gda等无法打开,jeb正常打开(当然dex2jar打开dex文件,再用jd-gui打开jar文件也是可以滴~),定位到mainactivity如下:

来到onCrate下的onclick,当函数checkSN()不成立,界面会显示0x7F06001E位置的字符,我们可以先不用管具体的值是多少,因为app装上以后点击按钮会有消息,不过我们可以大概知道是失败的意思:

反之则成功:

checkSN()函数在onCrate中被调用,所以接下来需要研究一下checkSN()函数:

可以清楚的看见,其实flag{}中的值就是v5,那么我们就分析一下v5的值如何得来,首先checkSN()函数有两个参数,第一个参数arg11满足不为空且长度不等于0,第二个参数arg12满足不为空且长度等于22(后面可以看到其实就是用户的输入),v1的值为第一个参数MD5后的值,v3其实就是v1通过函数toHexString()后的值(16位):

v4是一个循环变量,值为0,2,4...这样一直循环到小于v3的长度为止,v5的值,也就是flag{}中的内容就比较清晰了,就是取出v3的值的第0,2,4...位字符。

思路明确,就是需要v3的值,v3又v1通过函数toHexString()处理后的值,所以定位到toHexString()函数,自定义的toHexString()函数其实就是使用系统的Integer.toHexString进行&0xFF,Integer.toHexString的参数是int,如果不进行&0xff,那么当一个byte会转换成int时,对于负数,会做位扩展。

跟踪一波参数,v1的是将checkSN()的第一个参数,也就是this.edit_userName.trim(),即值为"Tenshine"。

将字符串"Tenshine"进行MD5加密,取偶数位:

所以flag为:flag{bc72f242a6af3857}

over~

转载于:https://www.cnblogs.com/Rakjong/p/11003017.html

安卓逆向从入门到嗝屁之另一道CTF题目相关推荐

  1. 安卓逆向从入门到嗝屁之突破签名验证

    最近在跟着网上的教程学习android逆向,就用教程里的demo,跟着教程研究一下demo中的签名验证,操练起来~. 反编译之,可以看出签名验证check函数写在libJniTest.so中: IDA ...

  2. 安卓逆向从入门到嗝屁之一道入门级的CTF题目

    首先当然是安装上,界面如下: gda打开,定位到关键位置MainActivity下的checkPassword,如下: java代码还是比较清晰的,但是本着学习smail的原则我们还是来看smail代 ...

  3. native层 安卓_安卓逆向学习入门之过反调试(一)

    前面有篇文章讲了 smail代码的简单修改,其实它有3个apk可以用来练手,今天来讲第二个apk,也是比较简单,大佬请飘过. 样本地址: https://github.com/wyhuan/owasp ...

  4. 什么是Android逆向?如何学习安卓逆向?Android逆向自学笔记入门到实战

    简单地来说,安卓逆向是对已经打包好的APP进行反编译.源码分析了解APP实现逻辑的一门技术.我们可以把安卓安装时用到的APK文件看作一个加密后的压缩包,逆向就是要最大程序地还原出APK打包之前的源码. ...

  5. 切水果安卓APP逆向过程报告----安卓逆向入门

    一.准备工作 下载切水果大战原版.apk. 链接:https://pan.baidu.com/s/18N_Lg8C4O5D1J7cbt99W6Q?pwd=p625 提取码:p625 开始游戏 找找有什 ...

  6. 安卓逆向-入门笔记、相关知识点总结及思路

    文章目录 安卓逆向思路: 1.查壳 2.未加固 2.1 工具 2.2方法 3 .第一代加固 3.1 工具 3.2 方法 3.3 材料准备 3.4 实例 补充知识: 一.Android 1.加密原则: ...

  7. 安卓逆向_24( 一 ) --- Hook 框架 frida( Hook Java层 和 so层) )

    From:Hook 神器家族的 Frida 工具使用详解:https://blog.csdn.net/FlyPigYe/article/details/90258758 详解 Hook 框架 frid ...

  8. 安卓逆向_1 --- 逆向环境配置、APK 文件结构、APK 打包流程

    哔哩哔哩:https://www.bilibili.com/video/BV1UE411A7rW?p=1 Android 逆向工程师系统培训‹第九期›( 课程目录 ):https://ke.yijin ...

  9. 跟我一起从零学习安卓逆向分析

    随着国家对信息安全的重视,兴起了各大CTF的赛事,其中逆向板块的安卓平台题目不断涌现.在这个互联网+的时代,移动互联网的APP犹如滚雪球一般的增长,随之而来的则是移动业务安全如风险控制.反外挂.安全合 ...

最新文章

  1. Linux RAR 安装和使用
  2. Tracer Druid 记录sql 以及参数
  3. Python学习—基础数据结构之列表
  4. easyui数据请求两个url_jQuery Easyui datagrid连续发送两次请求问题
  5. DHTML【9】--Javascript
  6. Linux之部分shell脚本练习(二)
  7. 计算机关闭远程桌面 共享功能,win7旗舰版系统优化禁止用远程桌面共享的解决方法...
  8. 【动态规划】状压dp:蓝桥2020补给(旅行商问题)
  9. Mac数据库可视化工具,workbench完全替代Navicat和PowerDesigner,Oracle官方免费可视化工具workbench!!
  10. linux查询文件重复记录,Linux 查询文件内容重复数 uniq
  11. 中国邮箱品牌使用情况调研——TOM邮箱
  12. 苹果手机电池健康怎么看_电池的循环次数怎么看?关系到手机电池寿命
  13. “落子无悔,抉择本身就是向前”——2022年度总结
  14. 13.2.3 VAM服务器的配置步骤及示例(2)
  15. Linux内核与编程
  16. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之五布局方法点击响应!
  17. A NEW HYPERSPECTRAL BAND SELECTION APPROACH BASED ON CONVOLUTIONAL NEURAL NETWORK文章笔记
  18. 关于飞机材料阻燃测试标准ABD 0031
  19. 求两个文件的交集、并集和差集 sort和uniq
  20. powerlink介绍

热门文章

  1. stm32 多通道AD和单通道AD的差别
  2. qt客户端显示服务器发送的图片,qt客户端显示服务器发送的图片
  3. oracle 云服务免费申请
  4. 计算机网络-快速搞懂HTTP和HTTPS
  5. Google Guava 中文指南
  6. 2018年举办区块链峰会_2015年开放硬件峰会开放接受注册,征求建议
  7. Fetion(飞信) 2010版本协议分析
  8. Spark-Shell 及 Spark-Submit
  9. java的tey语句return了_java中try-catch-finally中的return语句
  10. Flutter布局中的松约束、紧约束