2015移动安全挑战赛(第二届)将于今晚20:00正式结束,感谢大家这三天的努力和坚持,希望大家都已经有了属于自己的收获。
纵观3天赛程,两个赛区的进展都不尽如人意,Android的第4题和第5题,iOS的第4题都还处于锁定状态,没人拿到题目。相信大家未来都会有更多的反思,是题目太难还是我们的水平需要提高。
根据赛前制定的比赛规则,经过writeup审核以后iOS赛区可以按照名次正常发奖。而Android赛区可能会出现无人做出第3题的局面,就是说大家都没有资格领取奖项(赛前公布的获奖规则是:Android精英奖获得者总分不得低于7分,iOS至尊奖获得者总分不得低于3分),奖金多达6.5万元。然而我们观察到在整个赛程中不断的有人做题和提交答案,大家都在默默努力没有放弃,也许有的人距离成功只差一步之遥。为了鼓励大家在这3天中的坚持与付出,经主办方商议,我们决定无论结果如何都会将预先设定的奖金一分不少的发出去。
主办方对于Android和iOS赛区发奖事宜作如下说明。
Android赛区
如果有人能在比赛结束前提交第3题的正确答案,那么我们就取消先前对于分数的限制,审核writeup之后按照名次发奖。
如果比赛结束时无人提交第3题的正确答案,而规则又要求做出第3题才有奖,那么我们会根据大家对于第3题的理解程度和做题进展来排名发奖,具体方式如下:
1.请所有安卓参赛者于10月18日晚上24点之前(今天晚上12点之前),在
《 2015第二届移动安全挑战赛分析文章提交区 》 提交第三题的writeup,并请在10月21日晚20:00点前提交Android赛题第1题和第2题的writeup。主办方将会认真阅读评判每一份writeup,根据参赛者理解的深度和做题的进展来排名。所有获奖者的writeup和主办方的评语都会公开。
为了能更准确的对参赛者排名,除了详细的writeup,希望参赛者尽量回答以下的问题:
a. java层 check方法对应的so中的jni函数的地址(RVA,相对so开头(基址)的地址)。说明你是如何获取的并截图开头的指令和地址。
b.上面so中这个jni方法使用了哪些保护机制?你如果找到了真实的指令,请逐一说明原理并截图证明。
c.上面的jni函数调用了真正的算法函数。请说出这个算法函数的地址(RVA)。
d.答案的字符长度是多少?请说出判断依据。
e.运行过程中so抛出了几个异常?分别是哪几个(类似 SIGHUP SIGINT)?以异常的触发顺序列举。
f.请找到异常处理函数的地址(RVA),这个函数的作用有哪些(即参与哪些工作)?
g.此题算法有个key, 请说出它的长度和十六进制内容。截图说明它在so中的开始位置。
h.尽量写出题目的大致思路。使用了一个什么样的算法?类似现有通用的什么算法?依据是什么?
2.主办方将根据其第三题writeup来最终裁决获奖排名,writeup越接近正确答案者排名靠前,若两个writeup难分高下,则先提交第三题writeup者排名靠前,如果在写writeup的过程中得到了答案,请立刻写入writeup并提交。而当前排行榜中已有的Android排名将仅作为参考。
3. 主办方将在赛事结束后72小时内公布最终Android排名,赛事官网将根据需要对当前排行榜进行调整。
4. 其他规则不变,请参看赛事官网规则页中说明。
iOS赛区
1. 请所有iOS参赛者在10月21日晚20:00点前,在看雪论坛专区http://bbs.pediy.com/forumdisplay.php?f=122提交所有iOS赛题的writeup。
2. 主办方将根据iOS答题是否合规,最终确定iOS排行榜及获奖用户,并在官网公布。
以上说明的最终解释权归主办方所有。
主办单位: 看雪论坛 阿里巴巴安全部
2015/10/18
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)