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

re题(21)BUUCTF—findit

BUUCTF在线评测 (buuoj.cn)

 

用APK-IDE打开,然后进入到smali -> com -> findit -> MainActivity.smali

 把这两个字符串输出以下

array_0 = [0x54, 0x68, 0x69, 0x73, 0x49, 0x73, 0x54, 0x68, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x6f, 0x6d, 0x65]
array_1 = [0x70, 0x76, 0x6b, 0x71, 0x7b, 0x6d, 0x31, 0x36, 0x34, 0x36, 0x37, 0x35, 0x32, 0x36, 0x32, 0x30, 0x33, 0x33, 0x6c, 0x34, 0x6d, 0x34, 0x39, 0x6c, 0x6e, 0x70, 0x37, 0x70, 0x39, 0x6d, 0x6e, 0x6b, 0x32, 0x38, 0x6b, 0x37, 0x35, 0x7d]ciph = ""
for i in array_0:ciph += chr(i)print(ciph)ciph = ""
for i in array_1:ciph += chr(i)print(ciph)

 ok,也是得到类似flag的字符串

ThisIsTheFlagHome

pvkq{m164675262033l4m49lnp7p9mnk28k75}

 

 其实直接用jadx打开能看到反汇编的代码,这里是一个移位的凯撒加密

fdd353147ca849fa8450e3ccbbc3de33.png

 ,

所以这我们还需要将得到的字符串进行一次凯撒加密

 我们可以直接爆破

#凯撒密码爆破def decode_Caesar(s,key):#定义凯撒解密函数letters=''#用于存放所用字符集合for i in range(ord('a'),ord('z')+1):#遍历a-z所有字符letters+=chr(i)#将这些字符存入字符集合letters=list(letters)#将这个字符集合转为列表for j in s:#遍历密文字符集合if j.islower():#如果密文字符是小写字符flag=1#标志为1else:#如果密文字符不是小写字符flag=0#标志为0j=j.lower()#并把密文字符先转换为小写字符if j in letters:#如果密文字符在加密字符集中k=letters.index(j)-key#将这个密文字符前移密钥个位数k=k%len(letters)#保证位数不被移出去if flag==1:#如果标志为1(原来密文字符是小写字符)print(letters[k],end='')#输出解密后的字符else:#如果标志不为1(原来密文字符不是小写)print(letters[k].upper(),end='')#将解密后的字符先转为大写在输出else:#如果密文字符不在加密字符集合print(j,end='')#直接输出def break_Caesar(s):#定义爆破函数for k in range(1,27):#遍历密钥所有可能值print('\n当key =',k,'时',end='\t解密结果为:')decode_Caesar(s,k)#调用解密函数if __name__ == "__main__":#主函数s=input("输入密文:\n")#先需要输入密文break_Caesar(s)#调用爆破函数

也可以看第二串字符,可以猜一下

仔细观察pvkq,发现f——>p移10位,l——>v移10位,a——>k移10位,g——>q移10位

flag{c164675262033b4c49bdf7f9cda28a75}

本题是安卓逆向,用到了凯撒加密,靠猜简单一些,爆破保准一些


http://www.mrgr.cn/news/28326.html

相关文章:

  • [Admin] Dashboard Filter for Mix Report Types
  • 使用 Python 和 OpenCV 实现摄像头人脸检测并截图
  • 自顶向下逐步求精解决LeetCode第3307题找出第K个字符II题
  • JDBC-Mysql 时区问题详解
  • 解决Anaconda出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url
  • 【日志】力扣11.盛水最多的容器
  • 除了C# 、C++,C++ cli 、还有一个Java版的 db
  • 面试官问:请描述一次你成功解决问题的经历?
  • c++ #include <cmath>介绍
  • centos更改静态ip
  • 面试官问:你在团队中的角色是什么?
  • Vue3+Element Plus:使用el-dialog,对话框可拖动,且对话框弹出时仍然能够在背景页(对话框外部的页面部分)上进行滚动以及输入框输入信息
  • 一个有趣的“苦无”测试探针笔的设计
  • Python Pyvis库创建交互式网络图 高级功能详解
  • 【Python基础】Python 装饰器(优雅的代码增强工具)
  • STM32之FMC—扩展外部 SDRAM
  • SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue
  • Java读取寄存器数据的方法
  • 53. 最大子数组和
  • 微信视频号导出视频软件
  • Python 课程12-Python 自动化应用
  • 【思博伦】史上最详细思博伦测试仪使用教程精讲(三)!图解超赞超详细!!!
  • 二叉树OJ题——另一棵树的子树
  • 【Linux篇】TCP/IP协议(笔记)
  • asp.net core调用wps实现word转pdf的方法
  • A+B P1001 A+B Problem