CTF Reverse fantasy.apk解题思路

  • 一、文件分析
  • 二、解题思路

一、文件分析

  1. 文件和解题脚本看这里
  2. 动态运行界面提示输入信息进行check
  3. chec按钮点击后出出现一个Toast,提示无效!
  4. 由此可以判断这个apk文件应该是个flag checker。

二、解题思路

  1. jeb中打卡该apk查看源码,,,还好,程序只有一个MainActivity,从button_click函数中可知flag总长度为38位,去掉flag{},还剩32位。然后调用了check()。
  2. 我的屏幕就这么大,装不下后面的数据显示啦~~~
  3. check()很简单,传入输入的editText()内容,经过四层for循环,然后有个if语句进行判断,判断成功则return 1.
  4. 这里给出了两个数组,分别是v1和ahhhh,其中v1.shape=(32, 32),ahhhh.shape=(1,32)
  5. 我们来看四层for循环,,前面两层没啥好讲的,0x20=32,就是遍历32行32列的数组,然后在第三层for中,so<v1[i][j],我们可以认为so遍历了v1[i][j]次,
  6. 第四层for循环中,由于awesome<its,所以该层是遍历了its次,,而its是我们输入的字符转成了整型数字。
  7. 这就好理解啦,,第3,4层for循环使得
    thats=v1[i][j]∗its[j]thats = v1[i][j] * its[j]thats=v1[i][j]∗its[j];
  8. 然额,在第二层循环中,遍历了32次,得到
    thats=∑j=032v1[i][j]∗its[j]thats=\sum_{j=0}^{32} v1[i][j] * its[j]thats=∑j=032​v1[i][j]∗its[j]
    这不就是求和表达式吗,,
  9. 接下来往下分析if语句,,
if((114514 - Math.sqrt(((double)ehhh) - 4 * ((double)(1919810 - ahhhhh[ohh][0])))) / 2 + (Math.sqrt(((double)ehhh) - 4 * ((double)(1919810 - thats))) + 114514) / 2 == 114514)
  1. 细心地小伙伴对这行语句进行化简就得到thats = ahhhh[i][0]。
    那也就是说
    ahhhh[i][0]=∑j=032v1[i][j]∗its[j]ahhhh[i][0]=\sum_{j=0}^{32} v1[i][j] * its[j]ahhhh[i][0]=∑j=032​v1[i][j]∗its[j]
  2. 看着复杂,但是你把its[i]its[i]its[i]设为未知数xxx,,,这不就是32元一次方程嘛,,,嘎嘎
  3. 然后在第一次for循环中,,刚好凑齐32个表达式
  4. 哈哈,,,是不是很简单。。。
  5. 然后贴上脚本进行逆向,,,代码拙劣,,,勿喷~~~
import numpy as np
import math
def loadtxt(file):if file =='array1.txt':v1 = np.zeros((32, 32))else:v1 = np.zeros((1, 32))with open(file, 'r')as thisfile:i = 0for line in thisfile.readlines():line = line.strip().split(',')j = 0for l in line:if l.find('0x') >= 0:l = int(l, 16)v1[i][j] = lelse:v1[i][j] = lj += 1i += 1return v1
array1 = loadtxt('array1.txt')
array2 = loadtxt('array2.txt')x=np.array(array1)
y=np.array(array2[0])res = np.linalg.solve(x,y)
result = np.loadtxt('res.txt', dtype=int)
s=''
for i in range(len(result)):result[i] = int(result[i])s+=((chr(result[i])))
print("flag{"+s+"}")
  1. FLAG——>flag{fd954d994c4955f5e9c0901460b38aee}
  2. 完美结束~~~

CTF Reverse fantasy.apk解题思路相关推荐

  1. CTF中RSA常见解题思路

    1. 直接分解模数N 直接分解模数N是最直接的攻击方法,也是最困难的方法.具体的解析同上RSA安全性分析. 如果n小于256bit,可以使用本地工具进行暴力分解,列入windows平台的RSATool ...

  2. “百度杯”CTF比赛 九月场 Upload解题思路

    Hello,大家好,我是锘锘鸡. 今天分享给大家的是百度杯CTF比赛的Upload解题思路. 先看下题目 提示flag就在flag.php中. 进入答题链接 发现是文件上传,于是好奇的锘锘鸡开始了他的 ...

  3. 网络安全ctf比赛/学习资源整理,解题工具、比赛时间、解题思路、实战靶场、学习路线,推荐收藏!...

    对于想学习或者参加CTF比赛的朋友来说,CTF工具.练习靶场必不可少,今天给大家分享自己收藏的CTF资源,希望能对各位有所帮助. CTF在线工具 首先给大家推荐我自己常用的3个CTF在线工具网站,内容 ...

  4. CTF学习-密码学解题思路

    CTF学习-密码学解题思路 密码学持续更新 密码学概述 密码学的发展 第一个阶段是从古代到19世纪末-古典密码 (classical cryptography) 第二个阶段从20世纪初到1949年-近 ...

  5. CTF学习-逆向解题思路

    CTF学习-逆向解题思路 持续更新 一.通用过程 通过file命令查看文件类型,判断是ELF还是PE,32位还是64位. 通过strings并重定向标准输出,然后搜索大括号 { ,看看是否能直接得到f ...

  6. CTF|pwn栈溢出入门题level3解题思路及个人总结

    CTF|pwn栈溢出入门题level3解题思路及个人总结 解题思路 拿到题目将文件下载下来拖入ubuntu 发现这一次的文件比较特殊:是一个linux环境下的压缩包,自然而然想到的是解压它 通过命令行 ...

  7. 【学习总结】ctf隐写初阶解题思路与方法

    作为ctf中相对较为简单的题目,隐写题更适合初学者上手和提高初学者的兴趣.本人也对隐写术很感兴趣,于是尝试着对自己目前所学的隐写解题思路和工具的使用做一个总结.由于水平有限,总结可能会有错误的地方,希 ...

  8. 2020年11月份某kh比赛部分CTF赛题求大佬解题思路

    2020年11月份某kh比赛部分CTF赛题求大佬解题思路 只down下来misc和密码两类题 麻烦大佬们搞一搞这四道题 只down下来misc和密码两类题 百度网盘赛题分享 链接: https://p ...

  9. [xueqi]ISCC 2019 writeup 信息安全与对抗-解题思路xueqi

    ISCC 2019 writeup-全国大学生信息安全与对抗技术竞赛 解题思路xueqi WEB Web1 题目地址: http://39.100.83.188:8001 <?php error ...

最新文章

  1. 数据库选型绕不开“CAP定理”是什么
  2. 【Leetcode】376. Wiggle Subsequence
  3. 神经网络最优化方法比较(代码理解)
  4. linux mysql UNSIGNED,关于mysql:MySqlint10-与-int-unsigned-之前的区别
  5. 邮箱验证 ——ACM
  6. 虚拟机linux中怎样打开qt,虚拟机中在Centos 4.7中安装qt-x11-opensource-4.4.3
  7. Windows下Subversion配置管理员指南
  8. cocos2dx Action动作解析(1)
  9. 嵌套访问_利用Idea重构功能及Java8语法特性——优化深层嵌套代码
  10. a73*2+a53*2指的是什么_篮球内外线是什么意思?篮球外线是什么位置-百科-
  11. 分位数回归的R语言实现
  12. python excel公式计算_excel公式函数
  13. 通信系统、基本原理概念
  14. 第三章 教育法律法规
  15. Android手机开发课程设计之记事本
  16. Python Computer Vision Programming学习笔记(二)——基本的图像操作与处理
  17. 关于内推、简历、面试,我有一些想说的
  18. 什么是深度学习? 模仿人脑的算法
  19. 5G工作原理详解(解释图解)
  20. docker安装kong和konga详细说明

热门文章

  1. 蔡康永的情商课-笔记
  2. 为什么你写了一万小时的代码,却没能成为架构师?
  3. 数据可视化 六种基本图标
  4. 物联网之路由器和交换机篇
  5. 工作方式需要主心骨、承载人
  6. 《H打飞机》技術支持網址
  7. Android 实现uc浏览器一样的菜单
  8. Docker自定义镜像上传阿里云
  9. javascript实现小米搜索框
  10. 中学学生成绩管理系统