第九届中国海洋大学信息安全竞赛-WP
第九届中国海洋大学信息安全竞赛-WP by Rweb
虽然校外组 24
Reverse
一.钩子
顾名思义,盲猜是一手hook api的题,无壳,载入ida之后直接找一手真正的加密逻辑,先shift+f12看一手字符串。
看到假flag之后直接接着这个假的判断逻辑函数接着往上溯源,选中函数sub_7FF71CC712C0摁x,然后往回逆
继续选中StartAddress,摁x往回逆,然后到最后发现就是在装载主程序之前有先创建一个StartAddress的线程的操作,对于真正的加密逻辑进行了一个勾取
步入StartAddress,进入下图的RC4中(此处函数我已重命名)
然后就经典RC4魔改,取出密文,直接解密
贴出解密脚本如下:
1 | key=[ 136, 227, 238, 17, 198, 73, 116, 165, 221, 152, |
二.xor++
签到题,没啥好说的,直接贴出脚本如下:
1 | data = [37,40, 36,33, 60, 42, 60, 30, 20, 40, 36, 40, 41,97, 50, 39, 63, 32, 12, 9, 32,104, 55, 46, 4, 63, 53,106,17, 7, 4, 61, 14,17, 38, 14, 26] |
三.睡_Lite
上手给了个hex文件,嘶,有点难受,没逆过单片机,确实不知道该咋分析,开始一直以为是arm架构,但是拖进 ida 之后好像有地址错误,嘶,卡了很久,最后还下载了个单片机的烧录软件,寻思烧录出来看看,但是后面才知道好像只知道hex文件是烧录不了的,最后回到最开始的起点,拿hex文件问了一下gpt才知道,这居然是个avr架构。。。。。。
然后转bin直接拖进ida选择avr架构,反编译成功,爽了。。。
题目说flag给的比较直接,然后看了最长的这个函数,有疑似flag的字符,应该就是直接提取
flag开头的几个字符,将字符传个r24寄存器之后都有一个call sub_48的操作,盲猜应该就是类似输出的操作,所以只需要把所有有call sub_48这个操作的字符提取出来即可。flag{dEl4y_n0_MoR3}
Pwn
一.摩登Pwn
运行显示,输入负数可以获取flag,看程序
stroul把输入转换成无符号整数,输入2147483648
flag{292be5d2-3a2f-4a03-ae34-c9a649c19d27}
Crypto
一.Base64*rot13
flag{ezez3zeze2ezEz}
二.模!
题目分析
1 | from math import factorial |
既然每次是先左移8位/乘256,然后再求字符ASCII的阶乘并模233(巧的是,table里的字符的阶乘的模没有重复的)
那样我们可以倒着求,先除256,然后得到的余数就是字符ASCII的阶乘并模233的结果,然后结果逆置,匹配,即为结果
1 | from math import factorial |
flag{dalaodalaohaolihai}
三.NeXT RSA
原题分析
1 | import sympy |
根据脚本看,p和q十分接近,那就可以开n的平方,求到在p、q之间的数字,然后向下/向上遍历,找到p和q,然后解RSA
结题脚本:
1 | import math |
flag{n0t_s3Cure_4t_aIl}
Misc
一.帕鲁服务器#1
打开虚拟机
抓包试试
flag{Ur_s3rVer_1s_n0w_mY_p4l}
二.一眼盯帧
得到一个理塘王的视频,放的时候发现有异常图片闪过,既然盯帧了都,直接下载下来拆个帧,每一帧一拆,六千来张,直接按大小排个序,整合一下异常图片。
得到62个表达式图片,思路清晰了,直接把表达式拿出来z3一把嗦了,一开始用uTools的OCR一个个识别,最后z3没嗦出来,心态炸了,最后又重新弄了一遍,找了个在线网站https://web.baimiaoapp.com/,一次最多识别放50张,分两次把62张放进去,还挺好用的
贴出解密脚本如下:
1 | from z3 import * |
Web
一.ezphp
1 | GET: |
这道题我是傻波一,第二个想半天,最后还以为是哈希扩展攻击,结果是白给
二.菜狗工具#1
题目骂我,我是菜狗:cry:,没啥好说的
@Welcome
填个问卷吧!
我们就爱这种题
签到
也爱!!!