ais3_crackme 踩坑解析
2019独角兽企业重金招聘Python工程师标准>>>
终于走上正轨,也只能回来做题了,继续我的Whal CTF之旅。
这个题目很简单,只是有几个坑点而已。
- [rbp+var_10]放置argv指针,[rbp+var_18]+8=argv[1],即获取到传入程序的参数指针
- 这几个指令操作数,全涉及到寄存器的最低八位,所以计算的结果需要进行处理,即python代码中将计算结果进行 result & 255操作,同时也要注意sar是算术右移,shl是逻辑左移,此处并没有针对逻辑位移和算术位移操作符的坑,所以可以忽略他们的差别。
- 最终Python解码,我还是愚笨的采用了穷举,如有他法,敬请赐教。
def verify(src_byte, index, dst_byte):mov_l_bits = ((index ^ 9) & 3) & 255mov_r_bits = (8 - ((index ^ 9) & 3)) & 255tmp_byte = (src_byte ^ index) & 255result1 = tmp_byte << mov_l_bitsresult2 = tmp_byte >> mov_r_bitsresult3 = ((result1 | result2) & 255) + 8result3 = result3 & 255if dst_byte == result3:return 1else:return 0def decode(dst_str):for i in range(len(dst_str)):for j in range(0, 255, 1):if 1 == verify(j, i, ord(dst_str[i])):print(chr(j), end='')breakprint('\n')encrypted_str = '\xca\x70\x93\xc8\x06\x54\xd2\xd5\xda\x6a\xd1\x59\xde\x45\xf9\xb5\xa6\x87\x19\xa5\x56\x6e\x63' decode(encrypted_str)
转载于:https://my.oschina.net/u/3281747/blog/1834528
ais3_crackme 踩坑解析相关推荐
- STM32使用ADC+DMA进行多通道模拟量采集 (踩坑及傻瓜式解析)
STM32使用ADC+DMA进行多通道模拟量采集 (踩坑及通俗解析) 利用STM32的片上外设可采集多个模拟量(如传感器数值),并在嵌入式程序中使用.如果只使用了一个通道,用时令ADC转换而后读取 ...
- Android Kotlin Gson解析踩坑记录
一.背景 一般我们在进行网络请求拿到返回结果之后,我们期望能够转化成对应的Java实体类,在这个转化过程中,可以使用自动解析的方式,也可以使用三方提供的工具类,比如Gson.FastJson等. 针对 ...
- 一次 Scan 竟耗时上百秒?Redis Scan 原理解析与踩坑
来自:指月 https://www.lixueduan.com 原文:https://www.lixueduan.com/post/redis/redis-scan/ 主要分析了 Redis Scan ...
- 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)
目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...
- 【Vue】Vue1.0+Webpack1+Gulp项目升级构建方案的踩坑路
最近半年在维护公司的一个管理后台项目,搭建之初的技术栈比较混乱,构建方案采用了Gulp中调用Webpack的方式,Gulp负责处理.html文件,Webpack负责加载.vue..js等.而在这一套构 ...
- Antd Vue range-picker 日期初始值设置 与 重置日期踩坑总结
一.业务场景: 1.用form表单包裹,用的是 Antd Vue range-picker链接 2.创建时间初始值设置为当天的 00:00:00-23:59:59:如下截图: 2.日期选择器如下截图: ...
- cannot resolve symbol r_64位ret2_dl_runtime_resolve模版题以及踩坑记录
什么是ret2dl攻击 当程序在第一次加载某个函数的时候,got表中对应的表项还没有写入真实的地址(因为是第一次调用),所以这个时候就需要调用_dl_runtime_resolve函数将真实的地址写入 ...
- python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...
原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...
- java用毫秒数做日期计算的一个踩坑记录
错误示例: Date today = new Date(); Date nextMonth = new Date(today.getTime() + 30* 1000*60*60*24); print ...
最新文章
- SpringMVC整合fastdfs-client-java实现web文件上传下载
- 自动化测试,从入门到放弃
- ReentrantLock实现原理深入探究
- 【Linux】一步一步学Linux——perl命令(264)
- Value Investment
- gensim中文处理
- php无法创建cookie,php-curl cookie无法成功创建
- 存储器间接寻址方式_8086中的数据存储器寻址模式
- inventor如何钣金出弧面_Inventor教程之钣金多规则
- 数据开放 数据集_您可以使用开放数据做什么?
- 【华为云技术分享】《跟唐老师学习云网络》—我的网络概念
- 接手线上Mysql服务器,我们需要做什么?
- frame边框阴影html,CSS阴影效果的比较之drop-Shadow与box-Shadow
- Python 显示实时时间方法
- 解决tomcat中文乱码问题的方案
- ue4-材质编辑器material
- VCC、 VDD、VSS、VEE 电压符号的解释
- gym:Problem A Artwork(并查集思维题)
- 在php中 var什么意思,php关键字”var”的作用是什么?
- 一个软件开发者的历史 走在法律的边缘