180128 逆向-ichunqiu(Nonstandard)
1625-5 王子昂 总结《2018年1月28日》 【连续第485天总结】
A. ichunqiu-Nonstandard
B.
强网杯100dt的GF要了我的命,150dt的这题却这么简单……OTZ
运行看到是很直接的CUI程序,欣喜若狂拖入IDA
从main函数往下走,都是很明显的接受输入、校验长度
然后在核心函数中对输入进行变换,再与一个硬编码字符串比较
核心函数之前进行了一些准备工作,然后每次循环取5个字符
关键操作为以下内容
其实仅看这一行就能猜到了
v16 = ((v26 & 0xFFFFFFF8) << 8) + (v21 & 0xFFFFFFC0 | ((v26 & 7) << 8)) + (v21 & 0x3E);
将v26左移8位,与v21拼起来
PAIR是IDA的宏,意思也是按位拼接
还有最后的取值
v27[1] = byte_403020[(v20 >> 30) & 0x1F];v27[2] = byte_403020[(v20 >> 25) & 0x1F];v27[3] = byte_403020[(v20 >> 20) & 0x1F];
很明显,每次拿出v20的5个位作为下标来取byte_403020的值,再赋给结果
这个操作方法是不是很熟悉?
每次取5个比特,分别赋给8个值,每个值5个位
就是base32的改呀
那么只需要找到结果字符串,每8个值反查下标后合成五个比特即可咯
注意这里的表在sub_401000中还进行了变换
分别是
1. 偶数下标转小数
2. 逆序
3. 结尾添加“765321”6个数字
一共26+6个值
脚本
s = "nAdtxA66nbbdxA71tUAE2AOlnnbtrAp1nQzGtAQGtrjC7==="
table = "zYxWvUtSrQpOnMlKjIhGfEdCbA765321"def find(x):if(x=='='):return 0return table.index(x)for i in range(len(s)//8):p = s[i*8:i*8+8]t = 0for j in p:t = t<<5t += find(j)for j in range(5):print(chr((t&0xff00000000)>>32), end='')t = t<<8
轻松得到flag
C. 明日计划
所以说那个100dt的GF该怎么做啊……OTZ
180128 逆向-ichunqiu(Nonstandard)相关推荐
- Android逆向与病毒分析
本文由同程旅游安全团队对内移动安全培训的PPT整理而来,面向对象为对移动安全感兴趣的研发同事,所以讲的有些宽泛.介绍了入门Android逆向需要掌握的一些知识点, 通过简单的几个案例讲解Android ...
- 安卓逆向_14 --- 单机和弱联网游戏内购 突破口 和 思路
From:https://www.bilibili.com/video/BV1UE411A7rW?p=41 Android 逆向资源收集( apk ):https://blog.csdn.net/qq ...
- [安全攻防进阶篇] 二.如何学好逆向分析、逆向路线推荐及吕布传游戏逆向案例
从2019年7月开始,我来到了一个陌生的专业--网络空间安全.初入安全领域,是非常痛苦和难受的,要学的东西太多.涉及面太广,但好在自己通过分享100篇"网络安全自学"系列文章,艰难 ...
- 大脸猫讲逆向之ARM汇编中PC寄存器详解
i春秋作家:v4ever 近日,在研究一些开源native层hook方案的实现方式,并据此对ARM汇编层中容易出问题的一些地方做了整理,以便后来人能有从中有所收获并应用于现实问题中.当然,文中许多介绍 ...
- 旅行青蛙逆向破解的自我实践之旅
本文作者:aaaasss 来自纯新手的手把手实践经验分享,初次接触逆向,简单记录一下心路历程及一些自认为有趣的东西,大佬们可绕过或者多多指教.== 这里用的是1.04版本,1.01版本基本雷同 == ...
- 正向最大匹配 和逆向最大匹配对比比较
正向最大匹配法 &逆向最大匹配法 原理对比 下面介绍的分词算法中最简单的正向最大匹配和反向最大匹配. 这种两种方法都是机械分词方法,它是按照一定的策略将待分析的汉字串与一个"充分大的 ...
- 同向逆向、多车道线检测
同向逆向.多车道线检测 输入输出接口 Input: (1)左右两个摄像头采集的实时图像视频分辨率(整型int) (2)左右两个摄像头采集的实时图像视频格式 (RGB,YUV,MP4等) (3)摄像头标 ...
- asp.net webform 复制窗体代码_逆向分析流氓软件自我复制以及防御思路
一.前言 好长时间没有投稿了,之前被发布的稿件,也收到了Freebuf的现金奖励,同时陆陆续续收到好多圈类人士的夸奖,备受鼓舞,觉得自己应该坚持投稿,为安全事业略尽绵薄之力!最近任务不重,正好有时间投 ...
- iOS逆向(1)——利用ipa重签名,3分钟iPhone安装多个微信
本文要达成如图效果,在一台iPhone上安装第二个微信: 准备: Xcode 微信ipa(可通过iTool进行下载) 重签名脚本 步骤 打开Xcode,新建Single View App项目,名字可以 ...
最新文章
- 在eclipse里配置Android ndk环境 适用于windows mac 和linux[转]
- oracle control file文件 详解
- 微课与计算机技术的论文,微课在高校计算机教学的运用论文
- java控制台输出百分比进度条示例
- 诺拉公司2.6一亿元天价罚款侵权 宅男心中的入侵
- 物联管家PDA 无缝对接网店管家云端 电商erp 实现电商条码无线仓储
- rest_framework学习之序列化(Serializer)
- 什么是双线双IP,什么叫双线双IP
- 初探大规模GBDT训练
- IPFS 深入浅出:从《黑镜》说起
- Hibernate延迟加载-by宋迪
- STM32用ST-link下载程序
- mysql数据库修改密码
- JQuery的iCheck插件使用方法
- linux常用命令 cp命令的使用和介绍
- 创建gushi.txt文件,并写入一首古诗。
- uniapp聊天室动画加载新消息
- Cesium加载局部地区单张图片底图
- Git 错误 Unable to create 'E:/xxx/.git/index.lock': File exists.的解决办法
- 授权dns(CloudXNS)的学习使用
热门文章
- 科学计算机怎么算锥度,如何计算锥度值?比如说1:20等于多少度?请说说具体步骤!-锥度的计算公式-数学-贾儆刹同学...
- PHP Warning: ‘ vcruntime140.dll‘ 14.0 is not compatible with this PHP build linked with 14.16 in Unk
- 如何下载tomcat历史版本
- 树莓派 天猫精灵智能灯泡_智能灯泡即使在关闭时也会用完电吗?
- 参加这些国际学术会议:还怕发不了SCI论文?
- @keyup.enter.native
- 继电器rc吸收电路取值_RC吸收电路的参数选取
- VUE3.X——获取dom元素
- FHQ大战Splay
- 会员管理小程序实战开发教程-消费记录功能