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)相关推荐

  1. Android逆向与病毒分析

    本文由同程旅游安全团队对内移动安全培训的PPT整理而来,面向对象为对移动安全感兴趣的研发同事,所以讲的有些宽泛.介绍了入门Android逆向需要掌握的一些知识点, 通过简单的几个案例讲解Android ...

  2. 安卓逆向_14 --- 单机和弱联网游戏内购 突破口 和 思路

    From:https://www.bilibili.com/video/BV1UE411A7rW?p=41 Android 逆向资源收集( apk ):https://blog.csdn.net/qq ...

  3. [安全攻防进阶篇] 二.如何学好逆向分析、逆向路线推荐及吕布传游戏逆向案例

    从2019年7月开始,我来到了一个陌生的专业--网络空间安全.初入安全领域,是非常痛苦和难受的,要学的东西太多.涉及面太广,但好在自己通过分享100篇"网络安全自学"系列文章,艰难 ...

  4. 大脸猫讲逆向之ARM汇编中PC寄存器详解

    i春秋作家:v4ever 近日,在研究一些开源native层hook方案的实现方式,并据此对ARM汇编层中容易出问题的一些地方做了整理,以便后来人能有从中有所收获并应用于现实问题中.当然,文中许多介绍 ...

  5. 旅行青蛙逆向破解的自我实践之旅

    本文作者:aaaasss 来自纯新手的手把手实践经验分享,初次接触逆向,简单记录一下心路历程及一些自认为有趣的东西,大佬们可绕过或者多多指教.== 这里用的是1.04版本,1.01版本基本雷同 == ...

  6. 正向最大匹配 和逆向最大匹配对比比较

    正向最大匹配法 &逆向最大匹配法 原理对比 下面介绍的分词算法中最简单的正向最大匹配和反向最大匹配. 这种两种方法都是机械分词方法,它是按照一定的策略将待分析的汉字串与一个"充分大的 ...

  7. 同向逆向、多车道线检测

    同向逆向.多车道线检测 输入输出接口 Input: (1)左右两个摄像头采集的实时图像视频分辨率(整型int) (2)左右两个摄像头采集的实时图像视频格式 (RGB,YUV,MP4等) (3)摄像头标 ...

  8. asp.net webform 复制窗体代码_逆向分析流氓软件自我复制以及防御思路

    一.前言 好长时间没有投稿了,之前被发布的稿件,也收到了Freebuf的现金奖励,同时陆陆续续收到好多圈类人士的夸奖,备受鼓舞,觉得自己应该坚持投稿,为安全事业略尽绵薄之力!最近任务不重,正好有时间投 ...

  9. iOS逆向(1)——利用ipa重签名,3分钟iPhone安装多个微信

    本文要达成如图效果,在一台iPhone上安装第二个微信: 准备: Xcode 微信ipa(可通过iTool进行下载) 重签名脚本 步骤 打开Xcode,新建Single View App项目,名字可以 ...

最新文章

  1. 在eclipse里配置Android ndk环境 适用于windows mac 和linux[转]
  2. oracle control file文件 详解
  3. 微课与计算机技术的论文,微课在高校计算机教学的运用论文
  4. java控制台输出百分比进度条示例
  5. 诺拉公司2.6一亿元天价罚款侵权 宅男心中的入侵
  6. 物联管家PDA 无缝对接网店管家云端 电商erp 实现电商条码无线仓储
  7. rest_framework学习之序列化(Serializer)
  8. 什么是双线双IP,什么叫双线双IP
  9. 初探大规模GBDT训练
  10. IPFS 深入浅出:从《黑镜》说起
  11. Hibernate延迟加载-by宋迪
  12. STM32用ST-link下载程序
  13. mysql数据库修改密码
  14. JQuery的iCheck插件使用方法
  15. linux常用命令 cp命令的使用和介绍
  16. 创建gushi.txt文件,并写入一首古诗。
  17. uniapp聊天室动画加载新消息
  18. Cesium加载局部地区单张图片底图
  19. Git 错误 Unable to create 'E:/xxx/.git/index.lock': File exists.的解决办法
  20. 授权dns(CloudXNS)的学习使用

热门文章

  1. 科学计算机怎么算锥度,如何计算锥度值?比如说1:20等于多少度?请说说具体步骤!-锥度的计算公式-数学-贾儆刹同学...
  2. PHP Warning: ‘ vcruntime140.dll‘ 14.0 is not compatible with this PHP build linked with 14.16 in Unk
  3. 如何下载tomcat历史版本
  4. 树莓派 天猫精灵智能灯泡_智能灯泡即使在关闭时也会用完电吗?
  5. 参加这些国际学术会议:还怕发不了SCI论文?
  6. @keyup.enter.native
  7. 继电器rc吸收电路取值_RC吸收电路的参数选取
  8. VUE3.X——获取dom元素
  9. FHQ大战Splay
  10. 会员管理小程序实战开发教程-消费记录功能