整体策略
trace指令找到判定条件,根据ida分析的函数参数找有用代码,猜
Check 1
多次尝试输入后发现是对输入base64解码后,取最后4字节与前面的CRC32比较
Check 2
截取base64解码后的字节[4:5],作为长度值,(再跳过了2字节,代码中用的是word ptr,造成多解),读取数据
跳过4字节,重复上次操作,再次读取
整体的数据结构如下:
Check 3
计算两个式子
(32069 * A1) % 0x346f8717 == 1
(55057 * B1) % 0x729969FF == 1
Check 4
大数运算,先对输入进行xor加密(输入全00得到xor密文),进行和Check 3相同的运算
计算CRC32
转成base64
附:构造的一个多解
KmJTMUoABib1UMTRG+iFRaF+30mmANMCEqF3YPgU8FTyUvX6yePJFbEZXZ8tUvO70stWkJgshd+8oMQQITLP8l5HQPPJxxF0gCxZp/r5ja68Up2kckNKAGImVESbyOlxOm8t5prM6tsrtV9VApTX9NiH1WHIWMEtdKohjkV2bQeZORqMYX9eP7AP1JlenlB3EAchhYJhoiP7R3NzbOYCcnXnqewz8eZx
更多【KCTF 2023 第五题 争分夺秒】相关视频教程:www.yxfzedu.com