深育杯
@TOC
press
类似brainfuck的一个解释器
主要的函数逻辑都在sub_40094b里
经过动态调试后,可以发现逻辑如下
1 str=str+0xa0
2 str=str-flag[i]
3 str*=5
4str+=2
同时前一位的输出作为下一位的输入(str)
写爆破脚本
1 | #include<stdio.h> |
base64解密即可
Lithops
函数逻辑十分简单,甚至最后是一个没有参数印象的字符串比较,只需要把我们的字符串考出来写脚本即可
1 | a=b'\xE4\xB8\x8D\xE5\x81\x9A\xE4\xBC\x9F\xE5\xA4\xA7\xE6\x97\xB6\xE4\xBB\xA3\xE7\x9A\x84\xE6\x97\x81\xE8\xA7\x82\xE8\x80\x85' |
这里有个新知识点就是
api hashing
通过把api经过hash等一些列操作,隐藏他在导入表里的符号,使我们不能很快的发现他
解决办法:动态调试可以解决一切
xor
控制流平坦化 上脚本
去除后 存在虚假控制流 用脚本除,除不掉,结合动态调试,硬分析
(自从上次那个l3h的比赛,见识到了大师傅门硬肝混淆的题 ,我觉得我也不怕了)
分析了一波 大概就是不停的乘2,当时还想着试试爆破,后来跑去看别的题了,
结束看wp发现是crc64 (真看不出来)
果然没有除不干净 分析很费劲
说的那个ida插件我也没有用过 坐等一波
找到一个师傅写的脚本 比官方的简洁易懂
1 | cmp = [0x32E9A65483CC9671, 0xEC92A986A4AF329C, 0x96C8259BC2AC4673, |
不过说明我当时想的是对的,当时唯一没想出来的是溢出问题,
现在明白了 右移一位 再补上最高位(9*9<20)
生瓜蛋子
通过比赛学梗
(md 我还以为这段话有什么深意 是我见识短了
逻辑很简单 比较md5值(肯定出不来
然后搜索字符串发现一堆md5值 试了一下逐字节爆破 不对
然后我以为是分析md5算法问题
wp说有虚拟机 我还真没发现
看不懂 溜溜球 等一篇好文章出来
Hideit
湖湘杯就做了这么一道题
稍等更新
(更):
简单说一下好了,调用了一段shellcode,加载了一个dll
运用了xxtea和chacha20算法,通过动态调试可以拿到相关数据
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 yaoxixixi's blog!