我是谁


先运行APP


关键信息你根本不知道什么叫爱
定位到关键代码

查看check函数

按照要求输入后

出题人下边就没了。。。。

看代码发现

20667 25105 26159 36924才是关键问题。该数字为10进制,转换为unicode后为傻我是逼由于是经过大小排序的所以原来的字符顺序被打乱了,真正的顺序无从而知。

但是盲猜作者给了他自己一个很明确的提示

于是重新排列成10进制

flag{25105261592066736924}

ok



APK逆向

直接把jeb反编译的相关代码拿出来,填个输出就结束了。。。

public class hehe {public static void main(String args[]) {time10("Tenshine");}public static void time10(String username){MessageDigest digest = null;try {digest = MessageDigest.getInstance("MD5");} catch (NoSuchAlgorithmException e) {e.printStackTrace();}digest.reset();digest.update(username.getBytes());String hexstr = toHexString(digest.digest(), "");StringBuilder sb = new StringBuilder();int i;for(i = 0; i < hexstr.length(); i += 2) {sb.append(((char)hexstr.charAt(i)));}System.out.println(sb.toString());}private static String toHexString(byte[] arg8, String arg9) {StringBuilder hexString = new StringBuilder();int i$;for(i$ = 0; i$ < arg8.length; ++i$) {String hex = Integer.toHexString(arg8[i$] & 0xFF);if(hex.length() == 1) {hexString.append('0');}hexString.append(hex).append(arg9);}return hexString.toString();}
}

人民的名义-抓捕赵德汉1-200

这个题我是看的比较蒙
虽然是个jar包但是光看代码的话放到JEB中也是没有问题的


在这里看到了checkpassword函数,跟进该函数发现有MD5加密,对其解密

得到了password,侥幸的输入进去发现于是这个题就结束了。
但是还有一些其他的函数对道jar包中的ClassEnc文件进行了解密操作。也不知道ClassEnc文件用来干嘛。。。。


基础Android

这个题完全不用代码
从刚开始的mainactivity中可以看到:如果password为真启动mainactivity2
进入mainactivity2

发现启动广播,查看reciver

进入getandchange

发现启动了nextcontent,进去看到关键函数change()

发现它的流程是读如timg_2.zip的二进制流,最后显示到屏幕上
解压该app

timg_2.zip在assets文件夹里,改后缀名为jpg,查看该图片

flag就出来了。。。。


android 2.0

把APK拖进JEB找到入口函数


将用户的输入通过JNI.getResult方法返回result,给show方法传入该result

如果该result为 0 则失败,为 1则成功
关键函数还是在JNI.getResult继续深入,发现该方法调用的是JNI函数

将apk用Apktool解压

java -jar apktool.jar d xxx.apk -o xxx

找到其中的so库放入IDA中,找到该函数的声明

及实现


f5看伪C(能力不够)
init函数
first函数

对用户的输入处理也是很好看的,就不多细说。看不懂可以看我脚本反着推,(实在不行请留言,我细贴分析)
下面是我的脚本

def re_v3():a1 = "LN^dl"re_v3 = ""for i in a1[0:4]:i = ord(i) ^ 0x80i = i / 2# print(chr(int(i)))re_v3 = re_v3 + chr(int(i))re_v3 = re_v3 + "l"return re_v3def re_v4():# a3 = "LN^dl"a3 = ["L", "N", "^", "d"]en_v4 = [0x20, 0x35, 0x2d, 0x16]re_a_v4 = ""for i in range(0, 4):each_re_a = ord(a3[i]) ^ en_v4[i]re_a_v4 = re_a_v4 + chr(each_re_a)re_a_v4 = re_a_v4 + "a"return re_a_v4def re_v5():en_v4 = [0x20, 0x35, 0x2d, 0x16]en_a5 = ["A", "F", "B", "o"]re_a_v5 = ""for i in range(0, 4):each_re_a = ord(en_a5[i]) ^ en_v4[i]re_a_v5 = re_a_v5 + chr(each_re_a)re_a_v5 = re_a_v5 + "}"return re_a_v5def re_init():re_a_v3 = re_v3()re_a_v4 = re_v4()re_a_v5 = re_v5()flag = ""print(re_a_v3)print(re_a_v4)print(re_a_v5)flag = ''for i in range(0,5):flag += re_a_v3[i] + re_a_v4[i] + re_a_v5[i]print(flag)re_init()


boomshakalaka-3

这个没做出来,感觉有点玄学的意味。。。贴一篇比较让人能信服的帖子

https://www.52pojie.cn/forum.php?mod=viewthread&tid=554099

攻防世界_moile相关推荐

  1. 【攻防世界001】Guess-the-Number

    攻防世界之前刷了几十题了,没写wp,感觉很简单没啥意思.后来参加了几次比赛,发现有点干不动,决定还是老老实实刷题好了.这是第一篇wp,这题很简单,是个jar,用jd-gui可以得到java源码. 原来 ...

  2. 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制

    ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护 ...

  3. 攻防世界(Pwn) forgot---栈溢出;(方法二)

    攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...

  4. 攻防世界(Pwn) forgot---栈溢出;(方法一)

    攻防世界(Pwn) forgot-栈溢出:(方法二) 介绍 这道题表面看起来有点复杂,其实很简单,有两种方法可以来做这一道题; 方法一(精确打击) 文件运行流程是: 1.先输入名字 2. 输入一串字符 ...

  5. 攻防世界misc新手_[攻防世界]mobile新手练习区easy-apk

    [攻防世界]mobile新手练习区easy-apk easy-apk最佳Writeup由129师386旅独立团 • devi1提供 难度系数: 7.0 题目来源: 暂无 题目描述:无 题目场景: 暂无 ...

  6. 攻防世界 ——crypto

    目录 新手区部分题解: 1,easy_RSA 2,Normal_RSA 3, 幂数加密 4,easy_ECC 高手进阶区部分题题解 5, ENC 6,告诉你个秘密 7,Easy-one 8,说我作弊需 ...

  7. 攻防世界———MISC 高手区题解

    目录 1,base64stego 2,easycap 3,Avatar 4,What-is-this 5,签到题 6,Training-Stegano-1 7,Excaliflag 8,Get-the ...

  8. 攻防世界 web(二)

    这周接着刷攻防世界的web题( ̄︶ ̄)↗ 1.command_execution 看提示这题为命令执行漏洞(command_execution),关于命令执行漏洞,我前面有篇博客详细介绍了,大家不了解 ...

  9. misc高阶 攻防世界_攻防世界 Misc 进阶题(一)

    攻防世界 Misc 进阶题(一) 关于隐写术的思路或方法 转载: https://blog.csdn.net/a_small_rabbit/article/details/79644078     隐 ...

  10. [攻防世界 pwn]——pwn1(内涵peak小知识)

    [攻防世界 pwn]--pwn1 题目地址:https://adworld.xctf.org.cn/ 题目: peak小知识 这道题目的关键就是泄露canary,通常我们泄露canary有两种方法,遇 ...

最新文章

  1. .net 文件服务器系统,File-service基于ASP.NET Core的可伸缩、通用的文件服务器
  2. session开启慢的原因及解决办法
  3. VTK:AngleWidget2D用法实战
  4. module_param 在内核编程中的作用
  5. nodejs 进阶:图片缩小
  6. Mysql的高可用方案及主从详细配置
  7. Redis面试 - redis 的并发竞争问题是什么?
  8. 预告|CVPR 2021 论文分享会日程公布!与计算机视觉领域学者一起收获“立体”参会体验...
  9. AURIX Development Studio 使用指北(不定时更新)
  10. MOSS2007匿名调查列表使用分页符导致的错误分析
  11. node.js源码安装
  12. macOS图像文件不能正常显示缩略图预览怎么办?
  13. JS点击按钮复制文本
  14. 树莓派安装Selenium+Chromium浏览器
  15. 错误:Mixed Content: The page at ‘https://XXX’ was loaded over HTTPS, but requested an insecure.......
  16. 查看linux磁盘信息,linux下查看硬盘型号等信息
  17. Vue中的SEO优化
  18. 2020最新as项目中添加jni---------静态注册
  19. [有感而发]与刺客独行
  20. 如何编辑程序(一个简单的程序)

热门文章

  1. 河南省周口市安吉软件测试培训中心第一次软件测试课程-计算机基础理论论篇
  2. hardfault常见原因_stm32 HardFault_Handler调试及问题查找方法
  3. 如何写一份优秀的投资计划书
  4. 基础知识(三),OSI七层协议、数据传输过程、数据的封装与解封装、IP抓包分析、交换机、路由器、ARP协议、TRUNK中继、VLAN、DHCP中继、ICMP协议、三层交换机
  5. Java:求两个正整数的最大公约数和最小公倍数
  6. Xubuntu22.04增加快捷键
  7. 医学图像自适应计算图像窗宽窗位技巧
  8. iOS Weak底层详解
  9. Android 私有权限白名单
  10. Android布局总汇篇(XXXLayout)