X-CTF(REVERSE高级) Reversing-x64Elf-100

逻辑很简单,如果sub_4006FD函数返回假则返回Nice!


图1

进入sub_4006FD函数,加密过程也很简单,这里值得注意的有两点

一、8*(i%3)是二维数组的第一个参数,这里是取v3的地址所以*8的是数组长度,不是选择8倍于它的数组。换成python里直接写用数组时,就可以把这个*8省略了

二、a1是传入的字符串地址,所以i+a1是从第1个到第12个字符的意思,求s不用再减i了


图2

解密代码思路很好理解,比如x-y=1,那么y=x-1一样

这里使用了int转换是为了除数后取整,python不支持除数取整,c支持

附代码:

1     v3=["Dufhbmf","pG`imos","ewUglpt"]
2 
3     s=''
4 
5     for i in range(12):
6 
7         s+=chr(ord(v3[i % 3][2*int(i / 3)])-1)
8 
9     print(s)
原文地址:https://www.cnblogs.com/blackicelisa/p/12263631.html