You are good at IDA
附件拖入ida。比较简单
UPX mini
upx壳,无魔改,直接脱。脱完拖入ida。比较简单
Ez Xor
附件拖入ida
比较简单。脚本
ez_maze
附件拖入ida
一个宽为15的迷宫
BasePlus
附件拖入ida。变表base64再异或0xE
签个到吧
nc连上即得
echo
nc连上,发现常用命令基本上都没有,只有echo能用,稍微一搜索,就能找到输出办法
Ret2text
附件拖入ida
比较简单。脚本
我把她丢了
附件拖入ida
read函数处进行栈溢出
脚本
shellcode_level0
附件拖入ida
比较简单。脚本
UPX
魔改UPX壳,把小写改为大写即可脱壳
附件拖入ida。换表base64。赛博厨子可解,但是有个点,就是它会把字母表也正则处理,导致直接复制过去-[]的内容被解析,出现长度不一样,在-前加个转义字符即可
lk
运行一下,好家伙,二次元
附件拖入ida
简单的验证。脚本
喝杯下午茶
附件拖入ida
非常经典的xtea加密,好像无魔改。脚本
RivestCipher
go语言写的,ida8.3可以加载出符号。附件拖入ida
进入main函数,稍微向下翻就能发现rc4。动调取出密钥,解密即可
Ezpy
pyinstaller打包的exe。直接用对应版本的python解包
再反编译pyc文件。简单的RC4后再异或
还有个Key,也要反编译
最简单的编码
附件拖入ida
换表魔改base64。数组[1,2,3,4]参与base64编码过程。脚本
neuro爱数学
附件拖入ida
可以看到,有非常多的反调试,无所谓,先静态分析。输入了九个数,然后构造了result=a[0]+a[1]*x^1+a[2]*x^2+...+a[8]*x^8一些等式(x即i,a[0-8]即输入的九个数),在特定情况下result需要等于0。什么特定情况?就是bittest部分,初看以为是按位与,但实际上是判断特定bit位是否为1。所以当v5的bit位为1时对应的i所在的等式结果需要为0,由此可以得到8个等式,又因为后面部分所有输入都除以了最后一个数所以最后一个数为1。到此,八个未知数八个线性等式,直接z3求解。脚本。这里有个点,不能用BitVec,哪怕指定位数为32,校验过是能过,但会得到部分字符错误的结果
Dont-debug-me
附件拖入ida
正常逻辑应该是走这个ex1t函数。直接修改rip,然后就能输出flag
世界上最简单的题目
附件用文本编辑器打开
有轻微的混淆,快速替换一下
比较简单。脚本
出题人已疯
NET程序,拖入dnSpy
一个简单异或,提取出数据就好了。脚本
ezAndroid
附件拖入jadx
关键的Base64encode在native层,解包,找到so拖入ida。同时也可在asset文件夹下找到加密后的flag。对a1转换类型之后还是非常清晰的。就是那个数组的取值好像不太正常,大胆猜测是求余取值
BaseRE
附件拖入ida
main函数上下看看。下面好像才是主逻辑
main上面是Tls回调函数,而且后面也跟着像是主逻辑的大段红区
下断点,发现果然断在这。这里修改base64的表
然后是反调试,直接跳过
F9运行,发现就进入main函数了。大胆猜测是换表base64
尾语
玩服务器,找dk盾
首先,感谢各位师傅的出题,大部分题目确实很友好,非常适合入门。也没做出多少题,好像也不应该多做评价。但是——这仅仅是来自我个人的观点,凡事总会有但是,对不对自有后人评说——可能是因为出题人非常得多,然后出题人里的氛围可能比较喜欢搞抽象,题目好像不是很正经。该说不说,聊天可以玩抽象(谁还不是一个乐子人呢),但是该专业的地方还是得专业。也不说多,还是那句话,仅仅我个人观点个人感受,一切解释归出题人所有,希望所有出题人是带着分享知识的目的去出题