当前位置: 首页 > news >正文

Buuctf之SimpleRev做法

首先,查个壳,64bit,那就丢进ida64中进行反编译进来之后,我们进入main函数,发现里面没什么东西,那就shift+f12搜索字符串,找到关键字符串,双击进入然后再选中该字符串,ctrl+x进入应用该字符串的函数,如下图然后,边分析,边在旁边打上注释,在阐述里面的逻辑之前,我们先了解一个小知识点,我们都知道,两个十六进制数,由1个字节构成,也就是8个01代码,通常类型为8位的,就是正向读取,而一般64位的或者更大的,都要进行逆向读取,此处的src和v9[0]就大于64位,要进行逆向读取,这段代码的主逻辑大概就是,先进行一些字符串的复制和连接,然后将key中的大写字母转换为小写字母,然后getchar读取字符(该字符的范围在a~z和A~Z之间),再根据输入的字符对某段字符串进行处理,最后比对一下,相同则正确, str2[v2] = (v1 - 39 - key[v3 % v5] + 97) % 26 + 97;  此处的str2为下方的text(已知),key也为已知,采取爆破遍历算法,得到v1,即为flag,上代码


#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{char key[] = "adsfkndcls";char text[] = "killshadow";for (int i = 0; i < 10; i++)   //10代表的是key的长度{for (int j = 65; j <= 122; j++){//依次遍历爆破,把控好j的取值if (j >= 'A' && j <= 'Z' || j >= 'a' && j <= 'z'){if (text[i] == (j - 39 - key[i ] + 97) % 26 + 97){printf("%c", j);break;}}}}return 0;
}

得到结果flag{KLDQCUDFZO},提交即可

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何处理 PostgreSQL 中由于表连接顺序不当导致的性能问题?
  • 汽车电子工程师入门系列——AUTOSAR通信服务框架(下)
  • nginx(三)—从Nginx配置熟悉Nginx功能
  • react native优质开源项目
  • 【C++:默认成员函数初始化列表】
  • 论文回顾 | CVPR 2021 | How to Calibrate Your Event Camera | 基于图像重建的事件相机校准新方法
  • python转文本为语音并播放
  • Shell编程类-网站检测
  • 云端AI大模型群体智慧后台架构思考
  • 数据结构-线性表的应用
  • 【Kafka】记录一次Kafka消费者重复消费问题
  • 日志自动分析-Web---360星图GoaccessALBAnolog
  • ABB PP825控制器 处理器 模块
  • 第8篇 智能合约的商业应用场景解析
  • 华为仓颉可以取代 Java 吗?
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • HashMap ConcurrentHashMap
  • JavaScript设计模式系列一:工厂模式
  • Java读取Properties文件的六种方法
  • Linux链接文件
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • MySQL用户中的%到底包不包括localhost?
  • SpringBoot 实战 (三) | 配置文件详解
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • vue学习系列(二)vue-cli
  • 多线程事务回滚
  • 构建工具 - 收藏集 - 掘金
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 使用 5W1H 写出高可读的 Git Commit Message
  • PostgreSQL之连接数修改
  • # 数据结构
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #知识分享#笔记#学习方法
  • (04)odoo视图操作
  • (剑指Offer)面试题34:丑数
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一)Docker基本介绍
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)jdk与jre的区别
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .bat文件调用java类的main方法
  • .NET Core中的时区转换问题
  • .net dataexcel winform控件 更新 日志
  • .net Stream篇(六)
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET下ASPX编程的几个小问题
  • .net项目IIS、VS 附加进程调试