日常破解---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才好看,需要跑脚本的把第一行第二行的缩进删除就行!!!!!

日常破解---XCTF_APP1获取flag记录的更多相关文章

  1. 初学JDBC,获取插入记录的主键、执行批量操作

    一.获取插入记录主键值 在创建语句的地方使用Statement.RETURN_GENERATED_KEYS标识一下,然后通过getGeneratedKeys方法获得 preparedStatement ...

  2. group by 获取总记录数

    sql中有group buy 后如何获取总记录的条数,来生成分页 当然一般情况下我是不推荐这样的分页,如果你真的需要应该是你表结构设计有问题 1.适用于所有情况 $db = new PDO(DSN.. ...

  3. 回车,根据编码获取相应记录,然后再将这录绑定到AutoList

    问题描述: 回车后,根据编码获取相应记录,然后再将这录绑定到AutoList(我们自定义控件,其实就是下拉列表),回车事件是用jquery ajax实现,这样在后台给AutoList绑定数据源,如果不 ...

  4. SQL 去除重复、获取最新记录

    应用中常会有需要去除重复的记录,或者获取某些最新记录(如:每个用户可以答题多次,每次答题时间不同,现在要获取所有用户的最新答题记录,即每个用户取最新的一条) 使用group 和max 即可实现上述功能 ...

  5. Oracle数据库获取一行记录中某几个字段的最大值/最小值函数

    在数据库的开发过程中,我们可能会遇到这样的需求,获取一行记录中某几个字段的最大值或者是最小值,oracle给我们提供了解决这种需求的函数,如下所示:   greatest(col1, col2, co ...

  6. MyBatis 获取插入记录的 id

    现在的项目改用 Guns 了,也是一个很不错的框架,用起来也感觉很不错,上手也挺方便的.毕竟对于只是应用层面的知识,也基本上就是看看手册,熟悉熟悉就可以轻松上手了.如果是想要深入,或者刨根问底,那么就 ...

  7. pikachu练习平台(XSS-漏洞测试案例(cookie的窃取和利用、钓鱼攻击、XSS获取键盘记录))

    XSS-漏洞测试案例 xss案例 1.cookie的窃取和利用 2.钓鱼攻击 3.XSS获取键盘记录 在进行案例之前首先要搭建xss后台 搭建xss后台 1.在pikachu文件夹下面,把pkxss单 ...

  8. MyBatis获取插入记录的自增长字段值

    在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名! <insert id=" ...

  9. iOS程序破解——class-dump获取头文件

    原文在此:http://www.cnblogs.com/mddblog/p/4942894.html 一.简述 class-dump顾名思义,是用来dump目标对象class信息的工具.它根据oc的r ...

随机推荐

  1. OneDrive for Business

    一.界面介绍 1.在Office 365主页 点击“OneDrive”登陆 2.进入OneDrive,可对文档进行存储.同步并共享文档. 3.点击,可对文档进行编辑.分享.重命名等操作 二.文档同步 ...

  2. Yii框架的学习指南(策码秀才篇)1-2 一步步学习yii framework

    我也是新手,不过之前学习了tp和ci框架,所以尝鲜想看看yii到底有多强大. 如何新建一个webapp(网站应用)呢,下面是2个步骤: 1. cmd 切换到htdocs下面的yii目录下的framew ...

  3. [LC] 426. Convert Binary Search Tree to Sorted Doubly Linked List

    Convert a BST to a sorted circular doubly-linked list in-place. Think of the left and right pointers ...

  4. OpenAL介绍

    OpenAL(Open Audio Library)是自由软件界的跨平台音效API,由Loki Software,使用在Windows.Linux 系统上,用在音效缓冲和收听中编码. OpenAL设计 ...

  5. algorithm-question

    主键都相同,选择排序和插入排序谁快 选择排序:比较N*(N-1)/2,交换0:插入排序:比较N-1,交换0:插入排序更 大专栏  algorithm-question快 逆序数组,插入排序与选择排序 ...

  6. 初级string

    标准库string类型 string对象初始化 string s1; string s2(s1); string s3("value"); string s4(n,'c'); st ...

  7. 千万不要在module里扩展较多逻辑,很容易引起项目异常。

    NOP项目 为保持紧跟NOP更新,项目组坚持不改NOP源码. 以触发器,插件化开发为拓展模式 NOP自定义好的接口或完全独立的新拓展功能很容易插件化. 但部分功能要在NOP原项目上扩展修改在不改源码的 ...

  8. [洛谷P3391] 文艺平衡树 (Splay模板)

    初识splay 学splay有一段时间了,一直没写...... 本题是splay模板题,维护一个1~n的序列,支持区间翻转(比如1 2 3 4 5 6变成1 2 3 6 5 4),最后输出结果序列. ...

  9. 浅谈javascript函数执行过程

    javascript函数执行过程: 1. 为函数创建一个执行环境 2. 复制函数的 [[scopes]] 属性中的对象构建起执行环境的作用链域 3. 创建函数活动对象并推入执行环境作用链域的前端 4. ...

  10. vscode写react有warning

    [js] Experimental support for decorators is a feature that is subject to change in a future release. ...