[GDOUCTF 2023]Tea

阅读: 评论:0

[GDOUCTF 2023]Tea

[GDOUCTF 2023]Tea

首先下载,拖进exe查看

 发现为64位,拖进ida64,快捷键shift+f12到字符串然后ctrl+f搜索关键词flag

双击flag跟进 ,找到调用函数sub_140016230,点进去查看函数关键代码。

双击sub_140011339(v7)跟进,然后跟进sub_1400117D0(a1)函数,

 可知v7为key,且被更改为{2233,4455,6677,8899},双击 sub_1400112B7(v8, v7),跟进sub_140011900(a1, a2)函数,

可知其为tea加密,然后再双击sub_140011352(v8),跟进sub_140011B60(a1)函数,

上述为加密后的数据,接下来就是写脚本

#include <stdio.h>int main() 
{int key[] = {2233, 4455, 6677, 8899};unsigned int value[10];value[0] = 0x1A800BDA;value[1] = 0xF7A6219B;value[2] = 0x491811D8;value[3] = 0xF2013328;value[4] = 0x156C365B;value[5] = 0x3C6EAAD8;value[6] = 0x84D4BF28;value[7] = 0xF11A7EE7;value[8] = 0x3313B252;value[9] = 0xDD9FE279;int dalte = 0xF462900;int i = 0;int wheel;int sum = 0;// 逆算法for(i=8; i>=0; i--){// 轮数wheel = 33;sum = dalte * (i+wheel);while(wheel--){sum -= dalte;value[i+1] -= (sum + key[(sum >> 11) & 3]) ^ (value[i] + ((value[i] >> 5) ^ (16 * value[i])));value[i] -= sum ^ (value[i+1] + ((value[i+1] >> 5) ^ (16 * value[i+1]))) ^ (sum + key[sum&3]);}}for(i=0;i<=9;i++){printf("%x", value[i]);}return 0;
}

 

 将结果借助在线工具转换成文本字符串就可以了

故结果为,NSSCTF{hzCtf_94_re666fingcry5641qq}。

本文发布于:2024-02-05 09:27:46,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170728692465295.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:GDOUCTF   Tea
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23