-
-
[原创]看雪CTF.TSRC 2018 团队赛-第五题 交响曲
-
发表于:
2018-12-9 22:02
3894
-
[原创]看雪CTF.TSRC 2018 团队赛-第五题 交响曲
先说一下做题思路(大佬忽略),这是我做看雪题很重要的一个经验,现在分享给你们,且不可外传到其他地方。
if ( 风神做题时间)/3600 >= 3:
print "mo mo chi gua 2 tian , kan write up jiu gou le!!!!"
else:
print "ha ha you xi wang!"
嘻嘻!
题目说的安卓8正常运行,实际测试下在应该往后面进行了兼容了的,在我Android5.1的手机上也没问题(ps:作者真是好人啊,没有Android8的我刚好可以玩玩!)
将程序拖入到jeb中找到OnCreate方法
可以明显的看到一个明显的匿名内部类的单击事件!
继续跟进到CrackMe的a方法中
继续跟进
继续看try中的GetText1(这是我命名的,实际方法名我也忘了!)
可以明显的看出是对输入字符串的处理,这里我命名的s_0_3表示取serial序列号的0到第3个字符,其他的s_4_5同理。
简单的分析一下,可以看出函数判断前4个字符是不是0-189,1983-2007,
s_4_5
是不是1-12,
s_6_7是不是1-31
如果不是均将其赋为0.,其实从1983 和 2007这两个数和1-12 1-31 我们就可以粗略的判断作者将输入的序列号分为三段年月日。
继续看这个函数
简单看一下就知道是对输入3段的进行判断赋值处理然后在赋值给deal_0_3,
deal_4_5 ,
deal_6_7
最后看最后的一个处理函数
可以看出是将4个返回值放入print函数的参数中
可以看出这是利用处理过的三个段进行索引然后简单的求出返回值
为什么这里会用try catch这是因为索引值有可能大于数组的长度,当大于数组长度的时候就会返回0,而且也会显示错误的字符串,具体的跟一下就知道了。
GetText2处理后续的序列号
简单化简一下
(5)安装apk
输入am start -D cn.kwaiching.crackme/cn.kwaiching.crackme.CrackMe
使程序进入等待等待调试状态
命令行启动调试模式,adb shell am start -D -n packagename/ MainActivity
packagename为进程名,MainActivity为首页Activity
启动调试app,通过adb shell dumpsys activity top | grep --color=always ACTIVITY在终端获取包名和页面信息。
执行adb shell ps | grep packagename获取进程pid
执行adb forward tcp:8700 jdwp:pid 建立端口转发
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2019-3-7 17:10
被大帅锅编辑
,原因: