nss:3323
这个需要我们来去除花指令,基于常见花指令,我们直接就可以去除了
然后我们直接观看后面的函数,我们看出来这应该是一个对比函数,我们直接提取后面那个字符
这函数里面就是取地址然后,一位一位的去比较,就是偏移。
unsigned char ida_chars[] = { 0xCD, 0x4D, 0x8C, 0x7D, 0xAD, 0x1E, 0xBE, 0x4A, 0x8A, 0x7D, 0xBC, 0x7C, 0xFC, 0x2E, 0x2A, 0x79, 0x9D, 0x6A, 0x1A, 0xCC, 0x3D, 0x4A, 0xF8, 0x3C, 0x79, 0x69, 0x39, 0xD9, 0xDD, 0x9D, 0xA9, 0x69, 0x4C, 0x8C, 0xDD, 0x59, 0xE9, 0xD7 };
那么我们现在需要求的就是v4这个的加密过程,然后反过来,我们就可以解决掉这个题了。
以下是第一个加密的内容,这个我也想了半天才解决
记住,这里有个坑,他把a2的长度减一说明循环少了一个次,所以我们写代码要从36为开始倒着写。
最后这是我们的源代码
moectf{p4tch_pr0gr4m_t0_d3c0mpi1e_it!}