[GXYCTF2019]luck_guy


64位IDA打开

F5打开主函数

// local variable allocation has failed, the output may be wrong!
int __cdecl main(int argc, const char **argv, const char **envp)
{int result; // eax@1__int64 v4; // rdx@1unsigned int v5; // [sp+14h] [bp-Ch]@1__int64 v6; // [sp+18h] [bp-8h]@1v6 = *MK_FP(__FS__, 40LL);welcome(*(_QWORD *)&argc, argv, envp);puts("_________________");puts("try to patch me and find flag");v5 = 0;puts("please input a lucky number");__isoc99_scanf("%d", &v5);patch_me(v5);puts("OK,see you again");result = 0;v4 = *MK_FP(__FS__, 40LL) ^ v6;return result;
}

读程序
继续,打开patch_me()

int __fastcall patch_me(int a1)
{int result; // eax@2if ( ((((unsigned int)((unsigned __int64)a1 >> 32) >> 31) + (_BYTE)a1) & 1)- ((unsigned int)((unsigned __int64)a1 >> 32) >> 31) == 1 )result = puts("just finished");elseresult = get_flag();return result;
}

继续,get_flag()

__int64 get_flag()
{unsigned int v0; // eax@1signed int i; // [sp+4h] [bp-3Ch]@1signed int j; // [sp+8h] [bp-38h]@7__int64 s; // [sp+10h] [bp-30h]@3char v5; // [sp+18h] [bp-28h]@6__int64 v6; // [sp+38h] [bp-8h]@1v6 = *MK_FP(__FS__, 40LL);v0 = time(0LL);srand(v0);for ( i = 0; i <= 4; ++i ){switch ( rand() % 200 ){case 1:puts("OK, it's flag:");memset(&s, 0, 0x28uLL);strcat((char *)&s, f1);strcat((char *)&s, &f2);printf("%s", &s);break;case 2:printf("Solar not like you");break;case 3:printf("Solar want a girlfriend");break;case 4:v5 = 0;s = 9180147350284624745LL;strcat(&f2, (const char *)&s);break;case 5:for ( j = 0; j <= 7; ++j ){if ( ((((unsigned int)((unsigned __int64)j >> 32) >> 31) + (_BYTE)j) & 1)- ((unsigned int)((unsigned __int64)j >> 32) >> 31) == 1 )*(&f2 + j) -= 2;else--*(&f2 + j);}break;default:puts("emmm,you can't find flag 23333");break;}}return *MK_FP(__FS__, 40LL) ^ v6;
}

读程序,发现flag是由f1和f2连起来的
f1已知是GXY{do_not_
f2初始值在case4中给了出来

然后case5对这个值进行了处理最后才连到flag上面

首先将0775463366014735261551LL转为十六进制数字,然后将case5中的循环逆过去
参考代码

flag = 'GXY{do_not_'
f2 = [0x7F, 0x66, 0x6F, 0x60, 0x67, 0x75, 0x63, 0x69][::-1]
s = ''
for i in range(8):if i % 2 == 1:s = chr(int(f2[i]) - 2)else:s = chr(int(f2[i]) - 1)flag += s
print(flag)

运行得到:GXY{do_not_hate_me}

2022-02-07相关推荐

  1. LeetCode-链表-面试题 02.07. 链表相交

    描述 02.07. 链表相交 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表没有交点,返回 null . 图示两个链表在节点 c1 开始相交 ...

  2. 洛谷 深基 第1部分 语言入门 第4章 循环结构程序设计(2022.02.14)

    P5718 [深基4.例2]找最小值 [深基4.例2]找最小值 - 洛谷 P5718 [深基4.例2]找最小值(python3实现)-2022.02.01 P5718 [深基4.例2]找最小值(pyt ...

  3. P5706 【深基2.例8】再分肥宅水--2022.02.13

    [深基2.例8]再分肥宅水 - 洛谷 C++代码: /* P5706 [深基2.例8]再分肥宅水--2022.02.13 https://www.luogu.com.cn/problem/P5706 ...

  4. P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题(2022.02.02) --- python3实现

    [NOIP2001 普及组] 最大公约数和最小公倍数问题 - 洛谷 """P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题(2022.02.02) h ...

  5. P1009 [NOIP1998 普及组] 阶乘之和-2022.02.01(python3实现)

    [NOIP1998 普及组] 阶乘之和 - 洛谷 """P1009 [NOIP1998 普及组] 阶乘之和-2022.02.01(python3实现) https://w ...

  6. [2017.02.07] Lua入门学习记录

    #!/home/auss/Projects/Qt/annotated/lua -- 这是第一次系统学习Lua语言 --[[ 参考资料: 1. [Lua简明教程](http://coolshell.cn ...

  7. 面试题02.07.链表相交

    面试题02.07链表相交 public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode hea ...

  8. [LeetCode] 面试题 02.07. 链表相交

    LeetCode 面试题 02.07.链表相交 思路 题目的本意其实就是求两个链表相交处结点的指针,并返回该结点指针 步骤: Step1.分别用两个指针curA.curB指向两个链表A.B的头结点 S ...

  9. 2023.02.07草图大师SU模型渲染- 效果图之加深颜色的色调

    2023.02.07草图大师SU模型渲染- 效果图之加深颜色的色调

  10. OpenCV ERROE **: 02:07:27.741:GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the ...

    OpenCV ERROE **: 02:07:27.741:GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same proce ...

最新文章

  1. Python3多线程threading介绍(转载)
  2. Python将DataFrame的某一列作为index
  3. 图片浏览器每次只能打开一张图片_导出阿里国际站图片银行中的图片到电脑
  4. mysql mysql_set_charset_SQL注入攻击之 mysql_set_charset [转]
  5. 道德沦丧的电商推广app开发②
  6. 【torch】pytorch label的one-hot转化
  7. 拿来即用的 Python 时间范围判断方法
  8. 快讯丨阿里云洛神云网络论文再次入选全球顶会SIGCOMM
  9. HDX RealTime 避免回音
  10. Java读写excel文件代码
  11. Web Api 接口文档制作
  12. 技术岗的职业规划_技术型员工职业生涯规划
  13. android 休眠任务不执行_Android休眠机制
  14. 搭建邮件群发服务器费用,自建邮件群发服务器优缺点分析
  15. 嵌入式Linux毕业论文题目,嵌入式毕业设计题目.doc
  16. windows下hadoop安装时出现error Couldn‘t find a package.json file in “D:\\hadoop\hadoop-2.7.7\\sbin“问题
  17. 【自建分布式数据库详细指南】(四)设计:CITUS分布式数据仓库OLAP/OLTP的架构选择及PG数据库优化方法策略
  18. 惠普电脑收购货源Autonomy此起彼伏前质疑声
  19. 鼎湖山html css实验,鼎湖山游记
  20. svg symbol css,Vue项目使用symbol的方式引入svg图标

热门文章

  1. html会在哪里显示,CSS如何显示 HTML元素
  2. 时间周期 java_周期和持续时间 / Period and Duration
  3. DL之LSTM:基于《wonderland爱丽丝梦游仙境记》小说数据集利用LSTM算法(层加深,基于keras)对单个character字符预测
  4. 成功解决NVIDIA安装程序无法继续  Ths OCH driver package is not conmtibIe with the currently uistalled version of
  5. ML之LiR2PolyR:使用线性回归LiR、二次多项式回归2PolyR模型在披萨数据集上拟合(train)、价格回归预测(test)
  6. 成功解决pillow模块内生成的非UTF-8格式(比如label中有汉字时)
  7. ML之SVM:基于Js代码利用SVM算法的实现根据Kaggle数据集预测泰坦尼克号生存人员
  8. CV之SR:超分辨率(Super resolution)的简介、使用方法、案例应用之详细攻略
  9. 数据科学-通过数据探索了解我们的特征
  10. Python常用扩展包