flag:afctf{A5m_1s_N0t_d1ff1cvLT}
32位exe,无壳,直接拖入ida,有一处花指令,最常见的0xEB,转换为数据在转换为代码即可
动调找到加密代码,左移、右移四位,再进行与运算,但是这里是al和ah,只有8位
这里我犯了一个弱智错误,我以为2的8次方是128,结果是256,导致我最开始没写出解密脚本。
arr=[22, 102, 54, 71, 102, 183, 20, 83, 214, 245, 19, 55, 245, 228, 3, 71, 245, 70, 19, 102, 102, 19, 54, 103, 196, 69, 215] def enc(i): a=i b=i return ((a>>4)|((b<<4)))%256 for i in range(len(arr)): a = [] for j in range(0,128): if enc(j)==arr[i]: print(chr(j),end='')