首页
社区
课程
招聘
[原创]看雪CTF.TSRC 2018 团队赛-第五题 交响曲
发表于: 2018-12-9 22:02 3893

[原创]看雪CTF.TSRC 2018 团队赛-第五题 交响曲

2018-12-9 22:02
3893

先说一下做题思路(大佬忽略),这是我做看雪题很重要的一个经验,现在分享给你们,且不可外传到其他地方。


       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 被大帅锅编辑 ,原因:
上传的附件:
收藏
免费 3
支持
分享
最新回复 (3)
雪    币: 365
活跃值: (864)
能力值: ( LV9,RANK:186 )
在线值:
发帖
回帖
粉丝
2
雲南的卡密碼也簡單,妳生日加兩個數
2018-12-11 19:51
0
雪    币: 16506
活跃值: (6392)
能力值: ( LV13,RANK:923 )
在线值:
发帖
回帖
粉丝
3
2018-12-11 20:20
0
雪    币: 16506
活跃值: (6392)
能力值: ( LV13,RANK:923 )
在线值:
发帖
回帖
粉丝
4
KwaiChing 雲南的[em_19]卡密碼也簡單,妳生日加兩個數[em_10]
2018-12-11 20:21
0
游客
登录 | 注册 方可回帖
返回
//