欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

[NPUCTF2020]你好sao啊

发布时间:2025/3/21 编程问答 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 [NPUCTF2020]你好sao啊 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

    • 拖进ida
    • RxEncode(&s, 33)
    • strcmp
    • 分析过程
      • 脚本

拖进ida


找到关键函数RxEncode(&s, 33)

RxEncode(&s, 33)

void *__fastcall RxEncode(const char *a1, int a2) {void *result; // raxint v3; // [rsp+18h] [rbp-38h]signed int v4; // [rsp+1Ch] [rbp-34h]int v5; // [rsp+20h] [rbp-30h]signed int v6; // [rsp+24h] [rbp-2Ch]int v7; // [rsp+28h] [rbp-28h]int v8; // [rsp+28h] [rbp-28h]signed int i; // [rsp+2Ch] [rbp-24h]_BYTE *v10; // [rsp+30h] [rbp-20h]void *s; // [rsp+38h] [rbp-18h]v3 = 3 * (a2 / 4);v4 = 0;v5 = 0;if ( a1[a2 - 1] == '=' )v4 = 1;if ( a1[a2 - 2] == '=' )++v4;if ( a1[a2 - 3] == '=' )++v4;if ( v4 == 3 ){v3 += 2;}else if ( v4 <= 3 ){if ( v4 == 2 ){v3 += 3;}else if ( v4 <= 2 ){if ( v4 ){if ( v4 == 1 )v3 += 4;}else{v3 += 4;}}}s = malloc(v3);if ( s ){memset(s, 0, v3);v10 = s;while ( v5 < a2 - v4 ){v6 = 0;v7 = 0;while ( v6 <= 3 && v5 < a2 - v4 ){v7 = (v7 << 6) | (char)find_pos(a1[v5]);++v6;++v5;}v8 = v7 << 6 * (4 - v6);for ( i = 0; i <= 2 && i != v6; ++i )*v10++ = v8 >> 8 * (2 - i);}*v10 = 0;result = s;}else{puts("No enough memory.");result = 0LL;}return result; }

看到了find_pos函数

strcmp

strcmp(s1, s2) unsigned char s2[] = {0x9E, 0x9B, 0x9C, 0xB5, 0xFE, 0x70, 0xD3, 0x0F, 0xB2, 0xD1, 0x4F, 0x9C, 0x02, 0x7F, 0xAB, 0xDE, 0x59, 0x65, 0x63, 0xE7, 0x40, 0x9D, 0xCD, 0xFA };

分析过程

一眼看上去,有点像关于base64的一些操作,仔细一看不是(以为又可以动用工具进行一系列操作。。)然后看了一下大佬的wp,他们直接玩爆破。。。。。

脚本

table="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234{}789+/=" c="9E9B9C B5FE70 D30FB2 D14F9C 027FAB DE5965 63E740 9DCDFA" c=c.split() for i in range(len(c)):c[i]=eval("0x"+c[i])print(c) for x in c:t=0for i in range(len(table)):for j in range(len(table)):for k in range(len(table)):for l in range(len(table)):t=(0<<6)|it=(t<<6)|jt=(t<<6)|kt=(t<<6)|lif(t==x):print(table[i]+table[j]+table[k]+table[l])


把带有=的删掉,剩下的拼接起来就是flag

npuctf{w0w+y0U+cAn+r3lllY+dAnc3}

总结

以上是生活随笔为你收集整理的[NPUCTF2020]你好sao啊的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。