日常破解---XCTF_APP1获取flag记录
日常破解---XCTF_APP1获取flag记录
一、题目来源
来源:XCTF社区安卓题目app1
二、解题记录
1、首先安装到模拟器中运行一下,如下图所示,点击一下按钮,弹出提示年轻人不要耍小聪明哦
2、将APK文件拖进AndroidKiller中反编译,直接搜索关键字年轻人
以确定按钮触发的事件位置,搜索结果如下图所示:
3、偷懒不看smali代码了,直接将apk拖进jeb中查看java代码(别问我为啥不要AndroidKiller,jeb转换出的java确实准确一些),java代码如下,分析代码可发现:程序首先获取输入框的值放进变量v1中,然后获取app的版本名称放进变量v3中,获取app的版本号放进变量v4中,接着在一个while循环中,将变量v3中每一个字符与变量v4进行异或操作,然后与变量v1(就是我们输入的flag)每一个字符相比较,若全部相等,则跳出循环,在循环外面又判断了一次我们输入的flag长度与变量v3长度是否相等,若不等,则弹出年轻人不要耍小聪明哦
,若相等,则弹出恭喜开启闯关之门!
。分析到这里,flag可以很明显看出来就是app的版本名称每一个字符与版本号异或之后组成的字符串就是flag!!!
4、获取版本号这些可以直接在smali中log就行了,但感觉太烦了,就直接使用Android studio动态调试smali直接查看寄存器的值获取,怎么动态调试就不说了,下图是动态调试获取的版本名与版本号
5、获取版本名称信息后,写个python脚本跑出flag如下,提交显示恭喜开启闯关之门!
三、总结
一道很基础的题,不知道总结啥了,就这样吧!!!!
附上python脚本:
str1 = 'X<cP[?PHNB<P?aj'
for i in str1:
m = ord(i) ^ 15
print(chr(m),end='')
PS:再次吐槽一波markdown粘贴python代码得把每行代码都tab才好看,需要跑脚本的把第一行第二行的缩进删除就行!!!!!
最新文章
- 为.NET Core项目定义Item Template
- Unity3D游戏开发初探—1.跨平台的游戏引擎让.NET程序员新生
- linux修改时区为中国时区(北京)
- iOS-动画效果(首尾式动画,代码快动画,核心动画,序列帧动画)
- ASP.NTE 5 Target framework dnx451 and dnxcore50(转)原文:http://www.cnblogs.com/xishuai/p/aspnet5-target-framework-dnx451-and-dnxcore50.html
- lnmp一键安装包删除添加的域名
- ERROR: JDWP Unable to get JNI 1.2 environment, jvm->;GetEnv() return code = -2 JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):
- poj 1062 昂贵的聘礼(最短路 dijk+枚举)
- hunnu 小明的烦恼——找字符串
- python——lambda
- spring的校验框架 @Validated &; BindingResult
- Python学习--15 日期和时间
- springaop问题——Cannot subclass final class org.springframework.boot.autoconfigure.AutoConfigurationPackages$BasePackages
- JSP运行过程 JSP脚本 静态动态包含 jsp指令 jsp内置对象jsp四大作用域 jsp动作元素 EL表达式 JSTL 设计模式 JSP开发模式 EL内置对象
- Android Studio教程11-RecycleView的使用
- DeepCTR专题:DeepFM论文学习和实现及感悟
- 谈谈 final finally finalize 区别
- Educational Codeforces Round 8 B. New Skateboard
- java编程感悟01
- chain33 区块链开发框架诞生记
热门文章
- Linux 杀死进程方法大全(kill,killall)
- Tomcat爆出严重漏洞,附影响版本及解决方案
- 关于使用MyEclipse自动生成Hibernate和Struts出现的jar不兼容的问题(antlr.collections.AST.getLine()I)
- iOS路由详解
- JavaScript创建函数的方式
- Iterator迭代器解决[为何禁止在foreach内增删]
- linux系统开机静态分配ip地址
- SHELL小练习
- UAC table
- Lua 学习 chapter30 编写c函数的技巧 - Jow的博客