[2020meractf]Virtual Tree.zip

通过 字符串 定位到函数输入位置

大致 2个 函数处理 输入长度为 16

首先一个异或函数 因为 flag 输入保存在 全局变量所以所有函数我们都要去看看

这个函数 别修改了函数的调用地址,所有 动态调试和 静态分析的函数不一样

函数中只进行了 异或处理 且是对单个字符进行的,所以我们可以对出来的数据再次异或得到 异或的值

然后进入关键加密函数 因为每个函数存在 花指令 所以看汇编加动态调试 分析

Xor func

Add func

Subabs func

加密完后 进行比较

cmp_data = [23, 99, 119, 3, 82, 46, 74, 40, 82, 27, 23, 18, 58, 10, 108, 98]

写出脚本

因为 subabs 不好确定得到的值 所以我们分成两种情况来看