结果

决赛最终是拿到了安卓方向第四名。获得了1500q币和腾讯的面试绿色通道

image-20230419011442002

image-20230419003154236

过程

获奖是用电话通知的,当天刚好公司给团建费,leader带我们去吃饭。全程也没咋看手机一直在聊天吃饭,手机因为习惯也开着是静音,吃完准备走人的时候看了一眼手机才发现,20分钟前有个腾讯的未接来电。当时就有种预感了,问了一下赛事负责人,那边重新又打了一遍电话,我才意识到,卧槽,真拿奖了。告知了名次是第四,问了实习意向。不记得当时啥感觉了,和做梦一样。

讲实话,我做的时候完全不觉得自己会拿奖。首先是去年前三都在,还见到好几个打ctf的时候见到过的很厉害的师傅。学安卓还不到一年,这架势直接给看傻了。决赛拿到题的时候发现和初赛是一个模板,以为又是虚拟机分析,用frida尝试hook后发现有反调试需要绕过,心直接凉了半截——初赛的反调试我都没完全绕过,决赛的咋整。

想着不管会不会都做三天,实在没结果之后面试也有东西说。于是真的就在电脑前坐了三天逆了三天,啥别的没干。本身是要去参加广东省省赛,我也直接拒掉了,这里还是有点对不起二队的大哥们,因为决赛分刚好和前一名差5分,前进一名就是一等奖,如果我在的话应该是有可能一等奖的。

前两天真的是在坐牢,不停的ida调试,看汇编找反调,找到指令,patch,重打包签名运行然后接着调,如此循环往复,现在想想还是比较佩服当时的自己能坚持下来。

总而言之,在第三天的凌晨我才真正把反调试过干净了,当时发现能ida调试了,给我激动的,突然就感觉说不定有希望。然后就是通宵调试,一晚上只睡了半小时。还发了个pyq

image-20230419004935148

调试到9点左右吧,大概逻辑就都调出来了。前两天的毫无进展,到了第三天一看全是铺垫,笑死。然后就是编写解密脚本,最后逆了几小时token虚拟机发现完全不懂在干啥,就写好文档交了。

image-20230419010259418

决赛三天基本上就这样,交完之后直接如释重负,拿出好久未碰的switch猎到0点,还点了杯奶茶,犒劳自己。

总结

实在要总结一下的话,就是相信自己的实力吧。但凡前两天没有坚持下来而是开摆了,我也没办法在第三天的凌晨把反调试过掉从而进入真正的算法逆向流程。

不足之处还有很多,混淆去除不算熟练,模拟执行也不算熟练,用frida打印虚拟机log也不是很会,过一阵子加强一下训练。

想起去年的腾讯游戏安全,我还是个只会pc的大二的弟弟,最终也是倒在了r0,决赛连交都没交,随后因为各种原因选择了入门安卓,没想到真就圆了去年的梦,还蛮感慨的

image-20230419011004148

image-20230419011008414

明年还有一年,虽然希望比较小,但是还是想整个前三。加油吧。