BugkuCTF-Reverse题easy-100(LCTF)

下载附件,得到apk文件
一道安卓逆向题,JEB反编译,查看 MainActivity
在这里插入图片描述
在这里插入图片描述
分析可得,主函数会先执行 p 函数,创建了一个按钮监听事件在 classs d 里,class d 里的 onclick 函数,当我们点击安卓的按钮,触发函数。
在这里插入图片描述
在这里插入图片描述
if 条件判断正确就显示 flag,并且调用了 main 里的 a 函数,其里第一个参数是句柄,第二个参数是调用了 a 函数(另外一个a)返回一个字符串,第三个参数是我们输入的字符串。
于是我们查看 a 函数(此部分在MainActivity):
在这里插入图片描述
通过调用 a 函数,返回 main 函数里的字符串 v,而字符串 v 的初始操作在 main 里的 p 函数里进行
在这里插入图片描述
p 函数的作用就是读取一张图片的二进制数据取出这张图片 byte[144:144+16] 的数据保存在 v 字符串里。
至此,我们回去继续分析 if 判断语句,上面说了 if 语句调用了 main 的 a 函数(三个参数)
在这里插入图片描述
可以看出 a 函数(三个参数)调用了 a 函数(两个参数),而 a 函数(两个参数)调用 c 的 a 函数(两个参数),计算完后和后面的字节比较,如果相等就显示flag
看看c函数:
在这里插入图片描述
在这里插入图片描述
可以看到 c 函数里还会用到 a 函数,我们不妨先看一下 a 函数:
在这里插入图片描述
在这里插入图片描述
两部分一起分析
arg5 是从图片里获取的字符串,arg6是我们输入的
后面代码主要就是 AES 加密,将 arg5 经过变换后的字符串当做密码,将输入的字符串进行 AES 加密后和后面给出的字符串比较,如果相等得到 flag
那我们就可以直接解密 AES 就可以得到 flag 了

from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex#equals比较的字节数组
byteArray =[21, -93, -68, -94, 86, 117, -19, -68, -92, 33,50, 118, 16, 13, 1, -15, -13, 3, 4, 103, -18,81, 30, 68, 54, -93, 44, -23, 93, 98, 5, 59]
#读取图片
with open('url.png','rb') as f:p =f.read()
str1 =p[144:144+16]
print("字节数组:" , str1)
# 字节数组转字符串
byte2str = str1.decode()
print("图片[144:144+16]字符串:"+ byte2str)# 前后两个字符一组,互换位置,密钥字符串
str2 =""
for i in range(0,len(str1),2):str2 += chr(str1[i+1])str2 += chr(str1[i])
print("返回互换位置后的图片字符串:" + str2)# 把密文字节数组转换为16进制字符串
str3 =""
for i in byteArray:s=str(hex((i+256)%256))if len(s) <4:s = s[0:2]+'0'+s[2:]print(s)str3+=s[2:]
print(str3)# AES算法解密,ECB的工作模式,PKCS5Padding 的填充
# 去掉 PKCS5Padding 的填充
unpad = lambda s: s[:-ord(s[len(s) - 1:])]
# 通过 密钥,工作模式ECB 进行初始操作密码器
cipher = AES.new(str2.encode(), AES.MODE_ECB)
# a2b_hex()16进制转字符串,之后密码器解密字符串,再用unpad表达式去掉 PKCS5Padding 的填充,最后指定utf8的编码格式将bytes解码成字符串str
data_response = unpad(cipher.decrypt(a2b_hex(str3))).decode('utf8')
print("解密得到的明文密码flag:"+data_response)

在这里插入图片描述
得到密码的16进制,然后解密AES解密得到flag
LCTF{1t’s_rea1ly_an_ea3y_ap4}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cloud一分钟 | 成本大增致谷歌财报蒙尘;Gartner发数据库魔力象限:阿里云成为黑马...

Hello&#xff0c;everyone&#xff1a;10月31日早&#xff0c;星期三&#xff0c;祝大家万圣节快乐&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云计算学…

Python实现AES加密进行PKCS5Padding的填充

Python实现AES加密进行PKCS5Padding的填充 &#xff08;1&#xff09;Python 需要导入的模块 &#xff08;2&#xff09;AES加密代码 &#xff08;3&#xff09;AES解密代码 &#xff08;4&#xff09;测试代码 &#xff08;5&#xff09;测试结果

Cloud一分钟 | 马云发表致股东的公开信;5G算什么?中国已着手研究6G相关工作...

Hello&#xff0c;everyone&#xff1a;11月01日早&#xff0c;星期四&#xff0c;新的一天祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云…

BugkuCTF-Reverse题First_Mobile(xman)

知识点 1.getByte() 功能&#xff1a;返回字符的ascii码值 2.equals() 功能&#xff1a;用于将字符串与指定的对象比较。 结果&#xff1a;相等时返回true,反之返回false 下载apk文件 使用jeb3打开反编译代码 分析&#xff0c;程序将editText里的内容进行一次encode.check检…

马云、张小龙、雷军缅怀金庸:江湖路远,侠义长存!

金庸走了&#xff01;这个秋天&#xff0c;我们告别了太多公众人物。有网友说&#xff0c;“切切实实地感受到&#xff0c;一个时代过去了”。而成年的我们&#xff0c;注定要面临更多的失去。然而&#xff0c;一代兴起&#xff0c;一代离开&#xff0c;又是一种必然。斯人已去…

BugkuCTF-Reverse题LoopAndLoop(阿里CTF)

下载apk文件 先解压安装下看看什么情况 打开文件&#xff0c;得到一个LoopAndLoop的apk,打开进去&#xff0c;让输密码&#xff0c;点击按钮&#xff0c;可以看到Not Right!或者Not a valid integer number的提示&#xff0c;显然&#xff0c;只要找到密码&#xff0c;找到flag…

Cloud一分钟 | 腾讯打造云启商学院,马化腾将担任荣誉院长;阿里巴巴:2018财年云计算收入同比增长101%...

Hello&#xff0c;everyone&#xff1a;11月02日早&#xff0c;星期五&#xff0c;新的一天祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云…

BugkuCTF-Crypto题easy_crypto

下载文件file.zip 解压得到010.txt 打开为摩尔斯电码 通过ctf.ssleye.com/morse.html解码 得到flag%u7bm0rse_code_1s_interest1n9!%u7d 去掉%u7b与%u7d

GitHub服务中断24小时11分钟事故分析报告

来源 | The GitHub Blog译者 | 无明UTC 时间 10 月 21 日 22:52&#xff0c;为了更换发生故障的 100G 光纤设备&#xff0c;美国东海岸网络中心与美国东海岸数据中心之间的连接被断开。连接在 43 秒后恢复&#xff0c;但这次短暂的中断引发了一系列事故&#xff0c;导致 24 小时…

BugkuCTF-Crypto题MathEnglish

题目hint:口语需要读出来&#xff1f; 下载文件&#xff0c;打开 得到一些数字&#xff1a; 21 33 1 22 3 44 54 5 1 35 54 3 35 41 52 13 出题人给了hint2&#xff0c;让我们往元音上想 然后找到了一篇元音密码的文章 简单替换一下得到flag&#xff1a;bugku{yuanyinpwd}

Cloud一分钟|茅台4.5亿入股云上贵州大数据,后者已接管苹果中国iCloud; 阿里云进入印度市场,增长速度远超当地平均水平...

Hello&#xff0c;everyone&#xff1a;11月05日早&#xff0c;星期一&#xff0c;新的一天祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云…

BugkuCTF-WEB题文件包含

1.打开网页&#xff0c;点击click me? no链接 URL栏里显示&#xff1a;http://114.67.246.176:15077/index.php?fileshow.php&#xff0c;可能存在文件包含漏洞 这里介绍一下&#xff1a;php:// 协议 条件&#xff1a; allow_url_fopen:off/on allow_url_include :仅php:…

Python 进程池 multiprocessing.Pool - Python零基础入门教程

目录 一.Python 进程池 multiprocessing.Pool 介绍二.Python 进程池 multiprocessing.Pool 使用三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Python 进程池 Pool 和前面讲解的** Python 线程池** 类似&#xff0c;虽然使用多进程能提…

Cloud一分钟 | Facebook隐私泄露事件继续发酵,黑客明码标价出售聊天信息

Hello&#xff0c;everyone&#xff1a;11月06日早&#xff0c;星期二&#xff0c;新的一天祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云…

php:// 协议

这里介绍一下&#xff1a;php:// 协议 条件&#xff1a; allow_url_fopen:off/on allow_url_include :仅php://input php://stdin php://memory php://temp 需要on 作用&#xff1a; php:// 访问各个输入/输出流&#xff08;I/O streams&#xff09;&#xff0c;在CTF里经常…

Python GIL 锁 - Python零基础入门教程

目录 一.并行和并发二.GIL 锁 案例一&#xff1a;单核多线程案例二&#xff1a;单核多线程案例三&#xff1a;双核多线程 三.如何解决 GIL 锁问题四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Python 中除了线程互斥锁 Lock 还有 GIL …

Facebook隐私泄露事件继续发酵,黑客明码标价出售聊天信息

2018年对于Facebook来说&#xff0c;是命运多舛的一年&#xff0c;此前曝光的隐私泄露事件如今又在持续发酵。据BBC近日报道&#xff0c;有黑客宣称其已经窃取1.2亿个Facebook用户账号的私人信息&#xff0c;并试图以每个账户10美分的价格在网站上出售&#xff0c;目前也公布了…

BugkuCTF-WEB题好像需要密码

一个五位数密码 老实说burp跑的话能跑一天 89999次 burp真的太慢了 这次用python脚本 顺便学一学requests库 输入密码&#xff0c;得到flag

为了释放AI在边缘计算的力量 英特尔又出手了

无论是现在还是未来&#xff0c;生活中AI的影子都无处不在&#xff0c;智能机器人会为你安排行程、提供可行性方案&#xff1b;智能医疗可以帮助人们提升医疗技术水平&#xff0c;改善就医条件和环境&#xff1b;在自然灾害发生时处理海量信息&#xff1b;购物认证时&#xff0…

Python print 函数- Python零基础入门教程

目录 一.Python print 函数简介二.Python print 函数语法三.Python print 函数使用 1.objects 参数2.sep 参数3.end 参数4.flush 参数 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.Python print 函数简介 Python 中内置函数我们使…