【wp】2021绿城杯
终于良心发现回来水wp的博客了= =
做完RE以后跑去做Misc结果到比赛结束都没做出来,早知道就提早下班了(bushi,有LSB隐写的wp请速dd我T.T
Reverse
easy_re
一个魔改RC4的签到题。
显然有花指令,xor eax, eax
以后zf标志位为1,所以jz相当于直接jmp,可以将之间的指令都patch成nop
。
就是这些垃圾指令,直接nop掉就好(
然后能看到逻辑,就是一个简单的RC4,但是有一点点魔改。
RC4 init(多了一个xor 0x37):
RC4加密过程:
密钥是tallmewhy
最后的密文存在v19开头这里:
动态调一下就能直接拿到密文。
最后exp(拿自己之前写的RC4实现改的):
把666c61677b63356530663566362d663739652d356239622d393838662d3238663034363131373830327d
unhex一下有:
flag{c5e0f5f6-f79e-5b9b-988f-28f046117802}
抛石机
没有花指令,逻辑很清晰。
这里是将输入丢进循环中,如果v15[i] = 'x'
,那么只要sub_1155(v4)>=0
就能过check,并将对应字符存入数组v16
中。
后面就是把之前存的v16
两个一组丢进sub_1198
中,并把结果保存进对应的新的数组里。
(有一点乱序存储的感觉,内存里依次是byte_4048
、byte_4050
、byte_4058
、byte_4060
)
调的时候会发现保存在高四字节中,低四字节默认是零:
sub_1155
明显是一个单个字母的十六进制转换,而sub_1198
就是一个将类似1f
转成0x1f
的unhex操作。
最终check就是这个浮点数的check,解一个一元二次方程得到两个解,相对大小确定,需要控制一下精度就行:
用sage解一下
然后用这四个浮点数输出几个uint64,然后在十六进制数的基础上调一下精度。
exp:
再拿b1~b4的输出丢进python里按顺序组装回去:
flag{454af13f-f84c-1140-1ee4-debf58a4ff3f}
babyvxworks
VxWorks不会,瞎逆。
后来听出题人说调起来就行了(逃
去掉花指令,可以看到关键加密代码
上面是已知数组,下面可能进行了什么操作,但主操作是xor 0x22和+3,并且循环次数是这个已知数组的长度。
写exp有:
flag{helo_w0rld_W3lcome_70_R3}
__EOF__

本文链接:https://www.cnblogs.com/c10udlnk/p/15846183.html
关于博主:欢迎关注我的个人博客-> https://c10udlnk.top/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了