BugkuCTF-Reverse题LoopAndLoop(阿里CTF)

下载apk文件
先解压安装下看看什么情况
打开文件,得到一个LoopAndLoop的apk,打开进去,让输密码,点击按钮,可以看到Not Right!或者Not a valid integer number的提示,显然,只要找到密码,找到flag就快了
在这里插入图片描述
接着直接··载入JEB
双击MainActivity
在这里插入图片描述
右键->解析
下面我把文件保存下来,看得舒服一点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其里包含两个原生函数,chec和stringFromJNI2。根据oncreate的setOnClickListener里得到的逻辑可知,通过一个整数,调用chec与一个magic number 1835996258比较,如果比较成功,通过这个整数,代入stringFromJNI2得到flag。

再关注以下3个check函数,循环的执行结果是可以预测到的,分别是从1加到100,从1加到1000,从1加到10000,显然可以换为常数的加减。

经过分析可知重要的chec和stringFromJNI2都在native层

再关注原生层:
Android里的so文件是动态链接库,是二进制文件,即ELF文件。多用于NDK开发里。
IDA打开libs/armaebi/liblhm.so,找到chec(因为如果chec能过,那么这个整数代入stringFromJNI2就可以得到FLAG了)
那么就需要将liblhm.so文件载入IDA进行分析啦
在这里插入图片描述
载入后直接shift+F12搜索字符串
双击MainActivity进入
在这里插入图片描述
接着双击“蓝色向上的小箭头“ 找到引用
在这里插入图片描述
再按F5就可以将chec反汇编成伪代码了
在这里插入图片描述
_JNIEnv::GetMethodID:
GetFieldID是得到java类里的参数ID,GetMethodID得到java类里方法的ID,它们只能调用类里声明为 public的参数或方法。

_JNIEnv::CallIntMethod:
得到java类里Int类型的方法

经过分析,可以知道chec方法根据第二个参数乘2对3取模的结果调用Java层的三个check函数对我们的输入进行处理

def getinput():target = 1835996258for i in range(2,100):if 2 * i % 3 == 0:target = check1(target,i - 1)elif 2 * i % 3 == 1:target = check2(target,i - 1)else:target = check3(target,i - 1)print(target)
def check1(input,loopNum):t = inputfor i in range(1,100):t = t - ireturn tdef check3(input,loopNum):t = inputfor i in range(1,10000):t = t - ireturn tdef check2(input, loopNum):t = inputif loopNum % 2 == 0:for i in range(1,1000):t -= ireturn tfor i in range(1,1000):t += ireturn tif __name__ == '__main__':getinput()

运行脚本,得到一个值,输入到输入框里,得到flag
成功截图
在这里插入图片描述

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

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

相关文章

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

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

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,为了更换发生故障的 100G 光纤设备,美国东海岸网络中心与美国东海岸数据中心之间的连接被断开。连接在 43 秒后恢复,但这次短暂的中断引发了一系列事故,导致 24 小时…

BugkuCTF-Crypto题MathEnglish

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

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

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

BugkuCTF-WEB题文件包含

1.打开网页,点击click me? no链接 URL栏里显示:http://114.67.246.176:15077/index.php?fileshow.php,可能存在文件包含漏洞 这里介绍一下:php:// 协议 条件: 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 线程池** 类似,虽然使用多进程能提…

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

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

php:// 协议

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

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

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

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

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

BugkuCTF-WEB题好像需要密码

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

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

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

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

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

BugkuCTF-Crypto题python_jail

题目可通过nc远程连接 输入nc建立连接 测试发现最多只能输入10个字符,要想有输出,需要print() (7个字符) 若print(flag)则有11个字符,超出限制,报错 可利用python里help()函数,借报错信息带出f…

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

目录 一.format 函数简介 1.format 函数不设置下标2.format 函数设置下标 二.format 函数实战三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.format 函数简介 format 函数主要是用来构造字符串,基本语法是通过 {} 符号操…

Cloud一分钟 | 北京13部门召开座谈会,要求阿里京东等平台规范开展双11促销活动...

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

BugkuCTF-Reverse题love

下载附件 先查壳 发现没加壳 再拖进 IDA 分析 按shiftF12查找字符串,可以看到如下 Base64 加密的痕迹,可判断基本是一个反解 flag 的题目 找到主函数按F5查看伪代码,如下: 可以发现这样的一个关键函数,也就是会将 …

技术争鸣!七大主题报告,四大技术专题,AI开发者大会首日议程全回顾

技术争鸣,座无虚席!11 月 8 日,北京诺金酒店,2018 AI开发者大会(AI NEXTCon)第一天议程圆满结束,这是值得铭记的一天。上午 9 点,由中国 IT 社区 CSDN 与硅谷 AI 社区 AICamp 联合出…

BugkuCTF-Reverse题Timer(阿里CTF)

知识点 JEB相当于Windows平台上的IDA smali代码:双击Bytecode,出现smali代码;相较于C之汇编,那么smali之于Java onCreate: 一个activity启动回调的第一个函数就是onCreate,这个函数主要做这个activity启动的一些需要的初始操作的工作。 onCreate之后调用了还有onRestart()和o…