羊城杯re总结
@TOC
这次的羊城杯出的题挺好的,对于我的学习还是有很大的帮助,赛后也是把6个题都复现了一遍,除了oddcode留下了一个问题外,其他的都跟着过了一遍,这里不写wp了,简单复述一下,并记录学到的知识点
smc
这个题虽然说做出来了,但是用的时间比较长,smc不算是难点,但是我在对于base64的算法分析上花费了点时间,被程序那么长的代码误解了
deltx
这个就是个数学题,用自己的指令实现了乘法和减法,静态分析会比较困难,通过构造简单的输入,动调后,就可以知道程序在干什么
android
我不是很会做安卓,没学过java,jeb的调试和hook当时也没搞出来(后面再去学习)
这个题还算是比较简单,就用jeb硬分析就行,多看看java代码就熟悉了
Babyvm
典型的vm题,我做这种题做的少,不过套路都是一样的,对着代码一个一个字节的过,还是比较考研耐心的,下次比赛出了多尝试尝试
SafeBox
这个题之前在mrctf的时候见过一次,这次又出现了,一模一样,调试器代码里有smc,用idaoython还原代码,之后分析就行,主要的是学习了这个双进程保护,我对着文档还是过了一遍,收获还挺大(api多)
oddcode
这个题的主要知识点在于32位和64位的切换,第一次学
远跳的时候会改变段寄存器的值
cs=0x33 64位
cs=0x23 32位
这样模式改变后就不能动调分析了,加上后面有大量花指令,会十分恶心人
这里有两种方法,一种是把源程序考下来,重新用64位编译,分析,一种是用unicorn模拟执行,找到关键代码的位置
不过这两种我都没有实现出来,前面是因为没有找见和wp一样的字节,后面是对unicorn的不熟,虽说我前面学过一次
前者wp:
后者wp:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 yaoxixixi's blog!