babymips(XCTF 4th-QCTF-2018)
一月 11, 2020
mips的题,对mips指令不了解,边查边做弄了好久才弄出来。
32位mips架构elf文件无壳,ida打开查字符串找到主函数sub4009A8
,先输入一个长度为32的字符串放在0x48+var_2C
后将0x48+var_30
置零:
之后用置零的0x48+var_30
作为下标i
遍历整个字符串进行加密,加密后取前5位与已知字符串比较:
加密部分逻辑如下:
1 | for i in range(0x20): |
判断前5位之后再调用sub_4007F0
函数继续判断,逻辑与上层函数相似,下标遍历从第6位到最后一位,分奇偶数进行不同的加密,最后与已知字符串比较:
加密部分逻辑如下:
1 | for i in range(5,0x20): |
最后脚本如下:
1 | key = [0x51, 0x7c, 0x6a, 0x7b, 0x67, 0x52, 0xFD, 0x16, 0xA4, 0x89, 0xBD, 0x92, 0x80, 0x13, 0x41, 0x54, |
查看评论