浙江省省赛2025初赛wp
Reverse
DontDebugMe
删去反调试,401000函数产生固定值v5,分别调试得到异或和加的值
两位一组提取数据然后写逆向脚本
1 | |
BasicLoader-1
main先会对格式进行判断
如果符合格式就传入StartAddress作为子线程入口,主线程会被阻塞,直到 StartAddress 执行完毕
直接运行程序发现有不一样的输出
去看函数列表发现有明显的tls,断点处有反调试,直接绕过或者patch都行,之后StartAddress会被赋值为特定字节
分析第一部分会跳转到新的地址
跟踪过去发现来到step2
下面是标准rc4加密
比赛调试总会遇到异常,赛后才调出来,主要问题是下载了ntdll.pdb文件导致会出现很多异常
加密后会把得到的密文当成字节码作为一个函数对输入进行处理并判断
如果可以调试就可以直接看
按照题目描述和免杀常见思路,另一种方式是直接rc4解密后把明文作为文件导出
1 | |
导出后放入ida也能看到加密
a1是输入,直接异或求得flag
1 | |
也可以用idapython批量修改字节
1 | |
然后按照花指令的方式修复,稍麻烦,需要一直undefine然后强制识别
最终效果差不多
Pwn
rop-1
输入输出都有整数溢出的问题
atoll会把s中的数字提出来放到栈上,输入一个16进制数得到10进制数
output会在输出内容后将该位置内容重新设置为0
通过output泄露基址,然后ret2libc
1 | |
v2等于9的时候刚好覆盖到count,也可以通过覆盖count来决定下次写入的位置
1 | |
或者直接检查条件打one_gadget
1 | |
Crypto
RSA_Common_Attack
直接共模攻击
1 | |
ez_stream
标准rc4,直接解密
1 | |
SimpleLWE-1
看c里面的每个元素最后一个只会是112和622,其它相同,112对应0,622对应1,然后把这个二进制序列转成bytes就出了
1 | |
标准解密脚本
1 | |
数据安全
dsEnData
加密为先xor再base64,大厨测试发现能正确解密
直接按照这个思路写脚本就行
生成解密后的文件,提交到平台获取flag
1 | |