alexander_# 发表于 2025-7-14 14:33:46

findit 解题思路

将程序放入jdgui,查看oncreate函数。是正向加密运算。第一部分,是对17位长的x数组变换。这个不知道干啥的,因为数组长是38位的,第二个变换就是38位长,所以对其逆运算。贴上c++代码:

#include <iostream>
#include <vector>
#include <cmath>
#include <iomanip>

// 基类:图形
char b[] = {'p', 'v', 'k', 'q', '{', 'm', '1', '6', '4', '6', '7', '5', '2', '6', '2', '0', '3', '3', 'l', '4', 'm', '4', '9', 'l', 'n', 'p', '7', 'p', '9', 'm', 'n', 'k', '2', '8', 'k', '7', '5', '}'};
int main() {
    char c={'\0'};
    for(int i=0;i<38;i++)
    {
      if (b >= 'A' && b <= 'Z')
      {       // 处理大写字母
            if (b >= 'A' && b <= 'P')
            {   // 对应原始字符 K-Z
                c = (char)(b + 10);
            } else
            {                      // 对应原始字符 A-J
                c = (char)(b - 16);
            }
      }
      else if (b >= 'a' && b <= 'z')
      { // 处理小写字母
            if (b >= 'a' && b <= 'p')
            {    // 对应原始字符 k-z
                c = (char)(b + 10);
            }
            else
            {                     // 对应原始字符 a-j
                c = (char)(b - 16);
            }
      }
      else
      {                        // 非字母直接复制
            c = b;
      }
    }   
      
    for(int i=0;i<38;i++)
    {
      printf("%c",c);
    }
    return 0;
} ;运行得到 “zfua{w164675262033v4w49vxz7z9wxu28u75}”。一看z和f是6个偏移。就凯撒解密即可。

页: [1]
查看完整版本: findit 解题思路