[GWCTF 2019]babyvm
简单vm题,甚至可以直接对着字节码写handle
提示是vm题
打开修复下符号,确实是vm题
进去修复下结构体,结构还是很明显的
修完后基本知道在干什么了,直接去看text段,指令有五百多个byte,写个脚本解析
1 | i = 0 |
这题有个很恶心的地方,他text段有两段逻辑,并不是rip到0xF4就停止了,前一段是假flag,要用类似栈溢出的方法去第二段逻辑
最后手动逆出真正的加密逻辑如下
1 | for i 1 ~ 5 input[i] ^= [i+1] |
直接逆即可
注意到密文也是假的,真正的密文在一个没有交叉引用的函数里
1 | sec = [0x69, 0x45, 0x2A, 0x37, 0x09, 0x17, 0xC5, 0x0B, 0x5C, 0x72, |
[GWCTF 2019]babyvm