当前位置:   article > 正文

蓝桥杯ctf2024 部分wp

蓝桥杯ctf2024 部分wp
数据分析
1. packet

密码破解
1. cc

逆向分析
1. 欢乐时光

XXTEA

  1. #include<stdio.h>
  2. #include<stdint.h>
  3. #define DELTA 0x9e3779b9
  4. #define MX (((z>>5^y<<2)+(y>>3^z<<4))^((sum^y)+(key[(p&3)^e]^z)))
  5. void btea(unsigned int* v, int n, unsigned int const key[4])
  6. {
  7. unsigned int y, z, sum;
  8. unsigned p, rounds, e;
  9. if (n > 1)
  10. {
  11. rounds = 32; //这里可以说是预定义值,n=2是rounds=32
  12. sum = 0;
  13. z = v[n - 1];
  14. do
  15. {
  16. sum += DELTA;
  17. e = (sum >> 2) & 3;
  18. for (p = 0; p < n - 1; p++) //注意这里的p是从0~n-1
  19. {
  20. y = v[p + 1];
  21. z = v[p] += MX;
  22. }
  23. y = v[0];
  24. z = v[n - 1] += MX; //这里的MX中传入的p=n-1
  25. } while (--rounds);
  26. }
  27. else if (n < -1)
  28. {
  29. n = -n;
  30. rounds = 415 / n + 114;
  31. sum = rounds * DELTA;
  32. y = v[0];
  33. do
  34. {
  35. e = (sum >> 2) & 3;
  36. for (p = n - 1; p > 0; p--) //注意这里的p是从n-1~0,和上面是反过来的
  37. {
  38. z = v[p - 1];
  39. y = v[p] -= MX;
  40. }
  41. z = v[n - 1];
  42. y = v[0] -= MX; //这里的MX中传入的 p=0
  43. sum -= DELTA;
  44. } while (--rounds);
  45. }
  46. }
  47. int main()
  48. {
  49. int enc[] = { 0x480AC20C, 0xCE9037F2, 0x8C212018, 0x0E92A18D, 0xA4035274, 0x2473AAB1, 0xA9EFDB58, 0xA52CC5C8,
  50. 0xE432CB51, 0xD04E9223, 0x6FD07093, 0 };
  51. int key[4] = {
  52. 0x79696755, 0x67346F6C, 0x69231231, 0x5F674231
  53. };
  54. int n = 11;
  55. btea(enc,-n, key);
  56. printf("%s", enc);
  57. return 0;
  58. }

2. rc4

动调得到

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/511326
推荐阅读
相关标签
  

闽ICP备14008679号