华为杯第三届中国研究生网络安全创新大赛实网对抗赛初赛部分题目题解
3 道 RE 和 3 道 misc 题。
RE1 ezhtml
用 wasm2c
将 ez.wasm
逆向成 C 代码 ,注意到关键函数为 w2c_ez_f7
,将 C 代码编译后用 IDA
再反编译,会更容易看懂,代码如下:
1 | __int64 __fastcall w2c_ez_f7(__int64 a1) |
代码的逻辑是从前往后每一位都用后一位的值做异或,反过来从后往前退即可。
1 | a = list('EBPGRM|VE9B]Q5Sb4vJ^2|ZoU[t?SiDf9Cx') |
RE2 Blackjack
分析程序发现blackjack赢了之后会输出flag,但是要连续赢10次,把cmp汇编的立即数改成0,然后玩一局即可。
RE3 Downcity
从符号表可以看出是一个虚拟机题,虚拟机要执行的代码在vm_init()
的指针里面,vm
函数即为虚拟机的逻辑。
用python模拟,因为没写跳转,只考虑了顺序执行的指令,所以只解了一半。
1 | instr = [0x07,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x45,0x00,0x00,0x01,0x08,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x43,0x00,0x00,0x01,0x13,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x56,0x00,0x00,0x01,0x1E,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x44,0x00,0x00,0x01,0x29,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x56,0x00,0x00,0x01,0x34,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x49,0x00,0x00,0x01,0x3F,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x01,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x01,0x7B,0x00,0x01,0x4B,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x01,0x02,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x02,0x68,0x00,0x01,0x57,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x01,0x03,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x03,0x31,0x00,0x01,0x63,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x01,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x01,0x44,0x00,0x01,0x6F,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x01,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x01,0x65,0x00,0x01,0x7B,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x01,0x02,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x02,0x6E,0x00,0x01,0x87,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x01,0x03,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x03,0x5F,0x00,0x01,0x93,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x57,0x00,0x00,0x01,0x9E,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x6F,0x00,0x00,0x01,0xA9,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x62,0x00,0x00,0x01,0xB4,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x4A,0x00,0x00,0x01,0xBF,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x35,0x00,0x00,0x01,0xCA,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x62,0x00,0x00,0x01,0xD5,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x55,0x00,0x00,0x01,0xE0,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x01,0xDE,0x00,0x00,0x01,0xEA,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x01,0xBC,0x01,0x00,0x01,0xF4,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x01,0x80,0x01,0x00,0x01,0xFE,0x00,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x01,0x01,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x01,0x5F,0x00,0x01,0x0A,0x01,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x01,0x02,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x02,0x46,0x00,0x01,0x16,0x01,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x01,0x03,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x03,0x75,0x00,0x01,0x22,0x01,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x01,0xDC,0x00,0x00,0x01,0x2C,0x01,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x01,0x7C,0x01,0x00,0x01,0x36,0x01,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x05,0x03,0x00,0x00,0x01,0x08,0x01,0x00,0x01,0x40,0x01,0x00,0x0A,0x00,0x00,0x00,0x01,0x70,0x01,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x07] |
misc1 Seethroughallnetwork
题目给了一个 goerli 网络的地址,查看 transaction 的 data 发现有一个 ipfs 地址,是一个flag.psd 文件,文件的两个图层即为flag的二维码。
misc2 广为人知的秘密
将题面转成钱包私钥地址,查看 transaction。
misc4 Secret of the Varied Gif
压缩包里有一个gif,一个加密文件,gif中可以binwalk出一个压缩包,解压得到一个文本。
搜索可以发现这是svg的路径,用 <path>
可以还原这个svg。
是一个猪圈密码,解出来是acadesvc
,无语的是正确的密码应该是acadesvg
,这个错题只能脑洞一下或者爆破出来了。