下载附件
先查壳

发现没加壳

再拖进 IDA 分析
按shift+F12查找字符串,可以看到如下 Base64 加密的痕迹,可判断基本是一个反解 flag 的题目

找到主函数按F5查看伪代码,如下:

可以发现这样的一个关键函数,也就是会将 Destination 与 Str2 进行比较,如果正确为right
分析可知:将输入的串Str1先进行base64加密 再与串Str2比较 若相等 则输出"right flag"
由此,我们只需将Str2也就是"e3nifIH9b_C@n@dH"进行解密即可

将str2和Dest相比较,而Dest为取V4的前长度0x28u的字符
V4的值来自sub_4110BE
Sub_4110BE取自sub_411AB0
Dest由v4而来,v4会通过base64加密,然后对Dest做了第2次的加密,v11为Dest的长度

而 Destination 是通过对输入的内容进行一连串变化之后得到的,str2是给出的
首先输入的东西通过 sub_4110BE 这个函数进行加密,得到初步的结果,跟进看看这个函数
点开加密函数:

关键语句就在这里 我们可以看到是算输入的字符按三个一组能分为几组 然后将这个数字乘上4
我们很容易想到是base64加密 因为和base64加密的过程太像了
看一下它的变换数组:

完整函数:



关键部分:

aAbcdefghijklmn 即:

可见输入内容先经过 sub_4110BE 这个函数进行 base64 加密,然后各位加上下标本身,再与 str2 比较
而str2的值为 “e3nifIH9b_C@n@dH”

编写解密脚本

import base64
str = "e3nifIH9b_C@n@dH"
f = ''
flag = ''
for i in range(len(str)):f += chr(ord(str[i])-i)
flag = base64.b64decode(f)
print(flag)


得到flag

BugkuCTF-Reverse题love相关推荐

  1. BugkuCTF刷题 pwn

    唉,觉得自己TCL,栈溢出知识点差不多都会了,可是题目做不出来啊啊啊啊!缺少锻炼吧,这两天把BugkuCTF上面的pwn题做一下吧... pwn1 只给了连接 第一次,才50分,想来不会太难,连上去 ...

  2. 符号执行:利用Angr进行简单CTF逆向分析

    一.符号执行概括 简单的来说,符号执行就是在运行程序时,用符号来替代真实值.符号执行相较于真实值执行的优点在于,当使用真实值执行程序时,我们能够遍历的程序路径只有一条,而使用符号进行执行时,由于符号是 ...

  3. 强网杯2021 ctf线上赛ezmath wp(#超详细,带逆向新手走过一个又一个小坑)

    文章目录 引言 一.分析文件类型 二.初步分析 1 运行情况 2 IDA初步分析 三.详细分析 1 sub_13F3函数分析 2 查找蛛丝马迹 (1)mprotect (2)重写unk_2010 3 ...

  4. CTF逆向-[MRCTF2020]VirtualTree-恒成立的jz花指令去除及smc变换原执行流程在二叉树上的应用,通过逆向思维编写脚本以解决

    CTF逆向-[MRCTF2020]VirtualTree-恒成立的jz花指令去除及smc变换原执行流程在二叉树上的应用,通过逆向思维编写脚本以解决 来源:https://buuoj.cn/ 内容: 附 ...

  5. ctf(夺旗赛)的竞赛模式以及题目类型

    一.解题模式(Jeopardy)在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛.信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名, ...

  6. CTF逆向-[b01lers2020]little_engine-cpp基本函数用法和byte类型要点

    CTF逆向-[b01lers2020]little_engine-cpp基本函数用法和byte类型要点 来源:https://buuoj.cn/ 内容: 附件:https://pan.baidu.co ...

  7. LeetCode 92. Reverse Linked List II--Python 解法--反转部分链表--笔试算法题

    题目地址:Reverse Linked List II - LeetCode Reverse a linked list from position m to n. Do it in one-pass ...

  8. Java黑皮书课后题第7章:*7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置。改写方法将参数中传递的数组倒置,并返回该数组。编写一个测试程序,输入10个数字,倒置它们并显示

    7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置.改写方法将参数中传递的数组倒置,并返回该数组.编写一个测试程序,输入10个数字,倒置它们并显示 题目 题目描述 破题 代码 ...

  9. Java黑皮书课后题第6章:*6.4(反序显示一个整数)使用下面的方法体编写方法,反序显示一个整数…例如reverse(3456)返回6543,编写一个测试程序,提示用户输入一个整数,然后显示它的反序

    *6.4(反序显示一个整数)使用下面的方法体编写方法,反序显示一个整数-例如reverse(3456)返回6543,编写一个测试程序,提示用户输入一个整数,然后显示它的反序 题目 题目概述 破题 代码 ...

  10. Java黑皮书课后题第6章:**6.3(回文整数)使用下面的方法头编写两个方法:……使用reverse方法实现isPalindrome。如果一个数字的逆序数和它自身相等,这个数就称为回文数。

    6.3(回文整数)使用下面的方法头编写两个方法:--使用reverse方法实现isPalindrome.如果一个数字的逆序数和它自身相等,这个数就称为回文数. 题目 题目概述 破题:假设没有提示语句( ...

最新文章

  1. Hibernate缓存
  2. 自定义Android菜单背景
  3. 开始我的c++学习之路
  4. WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?
  5. sublime配置python编译环境及代码补全功能
  6. 【ResNet】ResNet到底在解决一个什么问题呢?
  7. 上周热点回顾(8.26-9.1)
  8. LaTeX插入Visio绘图,文字模糊
  9. 什么是IPS?如何对其进行调整?
  10. qt开发资料下载网址
  11. mysql题 以下1-7_mysql练习题
  12. NSURLSession htpps证书设置
  13. 张一鸣应该接过张近东的枪
  14. 二维数组的定义和访问
  15. 台式计算机硬件组装步骤,电脑硬件组装详细步骤有哪些
  16. Linux正确删除软链接
  17. es使用教程之_score(评分)介绍
  18. 大数据2--hive--hive介绍
  19. STM32中的RCC是什么意思
  20. 【华为云技术分享】基于华为云IOT及无线RFID技术的智慧仓储解决方案最佳实践系列一

热门文章

  1. 不要低估AI面临的困境
  2. 【双11】阿里云边缘节点ENS助力淘宝构建音视频通信网络
  3. 使用PyTorch从零开始构建Elman循环神经网络
  4. 披荆斩棘的北森,乘风破浪的HR SaaS
  5. 专访百度集团副总裁袁佛玉:科技创新对普惠金融正在充分发挥“乘数效应”
  6. 亚马逊云科技中国线上峰会开幕,发力汽车产业链、少年人工智能等
  7. 如何使用 Mybatis 实现数据库 CURD 操作?
  8. 数据科学家常见的5个SQL面试问题
  9. OpenStack精华问答 | NOVA计算服务
  10. 华为发布智简全光网战略,携手上下游重新定义光产业