首页 > 其他分享 >攻防世界 reverse 666及其知识点

攻防世界 reverse 666及其知识点

时间:2022-12-04 18:24:20浏览次数:38  
标签:知识点 加密 reverse 666 flag 异或 key encode enflag

攻防世界 reverse  666

 

用ida64打开:

 

 

 

 

 

双击main函数打开.

 

 

 

汇编语言看不懂,直接按f5进行反编译.

得到c语言主函数:

 

 

 

意思是定义名为s和v5两个字符型数组.

为s申请内存存放,大小为0x1E,代表30字节.

输入的字符串定义给v5.

将v5和s放入encode函数中运行.encode表示加密,可得这是个加密函数.

经过encode函数后,如果v5的字符长度与key(一个数字,暂时未知)不相等,程序return 0(结束).如果相等,则判断s和enflag是否相等.如果不相等则输出You are Right.否则输出flag{This_1s_f4cker_flag}.

 

可以看出解flag的关键在encode函数中.

 

 

 

 

在右侧打开encode函数

 

 

 

意思是定义字符型数组v3,定义数字v4和i

如果a1(即v5)的字符串长度与key不一样,输出Your Length is Wrong.

For循环,i从0开始,每过一次循环i=i+3.当i不小于key时结束.

^是二进制按位异或的意思

LL代表long long,加数据类型是为了防止数据越界。

按照for循环中的公式对a2(即s)进行修改,最后return a2;即输出a2.

 

到这里发现key和enflag依然是未知的.直接双击图中的key.

 

 

 

 

得到enflag,是18位的字符串.联系上文可以得到加密后不得与enflag相等,那么enflag就是加密后的flag了

For循环加密是每3个字符为一轮.而enflag是18位.可得一共加密了6轮.

即key=6.

所有数据都知道了,开始解密.

 

 

 

对照encode函数用c语言写了个解密脚本.所谓解密就是倒着来,例如加密是明文先加6再与key异或,那么解密就先让密文与key异或,再减6.

字符的异或是先把字符换算成ascii码,再把ascii码换成二进制异或,异或结束再复原.c语言中不需要手动转换.

 

 

 

运行后得到flag.

总结:这道题相对逆向来说比较基础,主要考的还是对c语言是否熟悉.关于逆向的知识只有ida的基本使用.但是却帮助复习了些c语言的知识.也明白了解相关题的步骤.

标签:知识点,加密,reverse,666,flag,异或,key,encode,enflag
From: https://www.cnblogs.com/i6288/p/16950330.html

相关文章

  • MySQL知识点
    目录一、存取数据的演变史1、文本文件2、软件开发目录规范3、数据库服务(重点)1.数据库管理软件的由来①程序所有的组件就不可能运行在一台机器上②数据安全问题③并发总结......
  • 【React自学笔记07】一些必备知识点
    一、样式设置1.内联样式...2.外部样式表...3.模块化css使用步骤:创建一个xxx.module.css在组件中引入cssimportclassesfrom'./App.module.css';通过cl......
  • 关于分类任务的一些知识点
    对于业务用户来说,希望技术团队完成的是正确分类,区别无分是分成两类还是多类,是一个级别的分类还是多个级别的分类,然后要求准一点。那么什么是准一点呢?也许用户还没有意识到......
  • Docker Compose 知识点
    docker-compose.yml中文件格式版本version,与DockerEngine兼容性:https://docs.docker.com/compose/compose-file/compose-versioning/#compatibility-matrix......
  • MySQL 常问知识点(简略)
    前言稍微整理一下吧,因为平时关注这方面不多,所以不会很深入事务隔离级别事务中可能遇到的问题脏读同一时间有两个事务A和B,A对某条数据进行修改或增加,在B......
  • 新变化新营销 这些知识点你得 Get!(文末有 PPT 福利首次放送)
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群在刚刚结束的第7期火山引擎数智平台VeDI「增长课堂」上,火山引擎数智平台VeDI零售......
  • vue3新增知识点(组合式API、ref和reactive、响应式原理、setup、watch和watchEffect)持
    1.组合式API和声明式API的区别,组合式API的优点2.Vue3的响应式原理通过Proxy(代理):拦截对象中任意属性的变化:包括:属性值的读写、属性的添加、属性的删除等。通过reflect(反射):......
  • 转 vue3讲义 知识点 整理文档PPT
      vue3自学理论笔记 vue3讲义  知识点  整理文档PPT项目不忙时就学习新内容,知识不全。 1.vue2使用es5中的object.definedPropert对数据进行双向绑定......
  • 今天很开心,get了3个知识点
    1、首先搞懂了bindtap和bindinput的区别;bindinput在input标签里面,输入框的每次输入都会触发bindinput绑定的方法;bindtap在其他标签,比如button。button的每次点击都会出发......
  • python-练习(知识点到逻辑运算符)
    1.在终端中显示古诗"登高"print("登高")print("作者:杜甫")print("风急天高猿啸哀,渚清沙白鸟飞回。")print("无边落木萧萧下,不尽长江滚滚来。")pr......