ISCC之Re2
硬核rust逆向
首先去学了一天rust。。。我TMD
IDA打开,跟踪主函数

看一下伪代码,发现有一串密文

跟进去发现一串数据,猜测有可能是flag的加密数据,于是回头去分析算法

发现一个关键点
if ( v16 == v24 )
break;
v2 = ((*(_DWORD *)(v33 + 4 * v25) >> 2) ^ 0xA) == *(_DWORD *)(v16 + 4 * v25);
++v25;
v26 += v2;
v24 -= 4LL;
这段被加密过的字符串解密方式为(data[i] >> 2) ^ 0xA,data是uint32_t类型的数组,解密之后的字符串即为flag,然后会拿来和自己输入的字符串作比较。
于是我们可以根据上面的密文构造payload
#!-*-coding:utf-8 -*-
flag=[0x154,0x180,0x1FC,0x1E4,
0x1F8,0x154,0x190,0x1BC,
0x1BC,0x1B8,0x154,0x1F8,
0x194,0x154,0x1B4,0x1BC,
0x1F8,0x154,0x1F4,0x188,
0x1AC,0x1F8,0x154,0x18C,
0x1E4,0x154,0x190,0x1BC,
0x1BC,0x1B8,0x1BC,0x1B8,0x22,0x000,0x220]
decript=''
for i in flag:
																																																																																	decript += chr(( i >> 2) ^0xA)
print (decript)
最后getflag,但是算出来的flag有乱码,于是一路穷举,最后两位猜出来是下划线和点号

Flag: _just_need_to_get_what_is_needed_.
ISCC之Re2的更多相关文章
- 从Google开源RE2库学习到的C++测试方案
		最近因为科研需求,一直在研究Google的开源RE2库(正则表达式识别库),库源码体积庞大,用C++写的,对于我这个以前专供Java的人来说真的是一件很痛苦的事,每天只能啃一点点.今天研究了下里面用到 ... 
- ISCC 2018 Writeup
		题解部分:Misc(除misc500).Web(除Only Admin.Only admin can see flag.有种你来绕.试试看).Reverse.Pwn.Mobile Misc( Auth ... 
- ISCC 2018(数字密文)
		做过iscc 2018之后有了很多的感触,也有更多的了解自己的不足之处,整理了一下web的wp, 为了保证各位小伙伴的阅读质量,我将会把wp以每一道题一个博文的形式写出来,希望能够帮助到你们 其中的步 ... 
- ISCC 2018 (Please give me username and password)
		做过iscc 2018之后有了很多的感触,也有更多的了解自己的不足之处,整理了一下web的wp, 为了保证各位小伙伴的阅读质量,我将会把wp以每一道题一个博文的形式写出来,希望能够帮助到你们 其中的步 ... 
- ISCC的 Misc——WP
		比赛已经结束了,自己做出来的题也不是很多,跟大家分享一下 Misc 第一题:What is that? 下载链接; 打开 解压 是一个图片 因为分值很少所以题和简单 观察图片是一个向下指的手 说明fl ... 
- ISCC 2018——write up
		WEB Web1-比较数字大小 直接修改input 标签里的maxlength 为999突破长度限制,使得能输入大于999 的数,然后随便输一个数字就行了 或者post修改值 Web2-Web01 s ... 
- ISCC 2018线上赛 writeup
		今天有机会去ISCC2018参加了比赛,个人的感受是比赛题目整体难度不高,就是脑洞特别大,flag形式不明确,拿到flag后也要猜测flag格式,贼坑 废话不多说,以下是本人的解题思路 MISC 0x ... 
- ISCC之Re1
		IDA打开,调试选ELF,跟踪main函数 发现有一个not_the_flag函数,跟进去 这里判断了一下a1的值是否为42,大致判断引号里面的有可能是flag,直接放到Linux下运行 提交不要有任 ... 
- ISCC之msc1(签到题)
		V2VsbCBkb25lIQoKIEZsYWc6IElTQ0N7TjBfMG5lX2Nhbl9zdDBwX3kwdX0K Flag: ISCC{N0_0ne_can_st0p_y0u} 签到题 八进制 ... 
随机推荐
- [Bayes] Concept Search and PLSA
			[Topic Model]主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis) 感觉LDA在实践中的优势其实不大,学好pLSA才是重点 阅读笔记 ... 
- (转载)PyTorch代码规范最佳实践和样式指南
			A PyTorch Tools, best practices & Styleguide 中文版:PyTorch代码规范最佳实践和样式指南 This is not an official st ... 
- smb文件共享
			一.服务端: #安装 yum install samba samba-common samba-client -y systemctl start smb ##开启samba服务 systemctl ... 
- Kubernetes StatefulSet
			StatefulSet 简介 在Kubernetes中,Pod的管理对象RC.Deployment.DaemonSet和Job都是面向无状态的服务.但现实中有很多服务是有状态的,特别是一些复杂的中间件 ... 
- Python微服务实践-集成Consul配置中心
			A litmus test for whether an app has all config correctly factored out of the code is whether the co ... 
- 【视频开发】【计算机视觉】doppia编译之四:安装其他库、编译和运行doppia
			(与本节内容无关///////////////////////////保存图片参数为--gui.save_all_screenshots true////////////////////) 在我们安 ... 
- Eureka学习笔记
			解决: 自我保护: 消费端的调用: Euraka的集群: 
- Markdown 测试用例
			标题 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 字体 *斜体文本* ... 
- Linux06  文件的打包和压缩(gzip/gunzip、tar、bzip2)
			一.gzip/gunzip 这是用于压缩和解压单个文件的工具,且使用方法比较简单 gzip 文件名 gunzip 文件名 二.tar(用的比较多) 不仅可以用于打包文件,还可以将整个目录中的全部文 ... 
- 函数的学习2——返回值&传递列表——参考Python编程从入门到实践
			返回值 函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值.函数的返回值被称为返回值. 1. 简单的返回值 def get_formatted_name(first_name, l ... 
