文章目录

  • 拖进ida
  • RxEncode(&s, 33)
  • strcmp
  • 分析过程
    • 脚本

拖进ida


找到关键函数RxEncode(&s, 33)

RxEncode(&s, 33)

void *__fastcall RxEncode(const char *a1, int a2)
{void *result; // raxint v3; // [rsp+18h] [rbp-38h]signed int v4; // [rsp+1Ch] [rbp-34h]int v5; // [rsp+20h] [rbp-30h]signed int v6; // [rsp+24h] [rbp-2Ch]int v7; // [rsp+28h] [rbp-28h]int v8; // [rsp+28h] [rbp-28h]signed int i; // [rsp+2Ch] [rbp-24h]_BYTE *v10; // [rsp+30h] [rbp-20h]void *s; // [rsp+38h] [rbp-18h]v3 = 3 * (a2 / 4);v4 = 0;v5 = 0;if ( a1[a2 - 1] == '=' )v4 = 1;if ( a1[a2 - 2] == '=' )++v4;if ( a1[a2 - 3] == '=' )++v4;if ( v4 == 3 ){v3 += 2;}else if ( v4 <= 3 ){if ( v4 == 2 ){v3 += 3;}else if ( v4 <= 2 ){if ( v4 ){if ( v4 == 1 )v3 += 4;}else{v3 += 4;}}}s = malloc(v3);if ( s ){memset(s, 0, v3);v10 = s;while ( v5 < a2 - v4 ){v6 = 0;v7 = 0;while ( v6 <= 3 && v5 < a2 - v4 ){v7 = (v7 << 6) | (char)find_pos(a1[v5]);++v6;++v5;}v8 = v7 << 6 * (4 - v6);for ( i = 0; i <= 2 && i != v6; ++i )*v10++ = v8 >> 8 * (2 - i);}*v10 = 0;result = s;}else{puts("No enough memory.");result = 0LL;}return result;
}

看到了find_pos函数

strcmp

strcmp(s1, s2)
unsigned char s2[] =
{0x9E, 0x9B, 0x9C, 0xB5, 0xFE, 0x70, 0xD3, 0x0F, 0xB2, 0xD1, 0x4F, 0x9C, 0x02, 0x7F, 0xAB, 0xDE, 0x59, 0x65, 0x63, 0xE7, 0x40, 0x9D, 0xCD, 0xFA
};

分析过程

一眼看上去,有点像关于base64的一些操作,仔细一看不是(以为又可以动用工具进行一系列操作。。)然后看了一下大佬的wp,他们直接玩爆破。。。。。

脚本

table="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234{}789+/="
c="9E9B9C B5FE70 D30FB2 D14F9C 027FAB DE5965 63E740 9DCDFA"
c=c.split()
for i in range(len(c)):c[i]=eval("0x"+c[i])print(c)
for x in c:t=0for i in range(len(table)):for j in range(len(table)):for k in range(len(table)):for l in range(len(table)):t=(0<<6)|it=(t<<6)|jt=(t<<6)|kt=(t<<6)|lif(t==x):print(table[i]+table[j]+table[k]+table[l])


把带有=的删掉,剩下的拼接起来就是flag

npuctf{w0w+y0U+cAn+r3lllY+dAnc3}

[NPUCTF2020]你好sao啊相关推荐

  1. REVERSE-PRACTICE-BUUCTF-30

    REVERSE-PRACTICE-BUUCTF-30 [RCTF2019]DontEatMe [b01lers2020]little_engine [NPUCTF2020]你好sao啊 [MRCTF2 ...

  2. BUUCTF reverse题解汇总

    本文是BUUCTF平台reverse题解的汇总 题解均来自本人博客 目录 Page1 Page2 Page3 Page4 Page1 easyre reverse1 reverse2 内涵的软件 新年 ...

  3. 安卓Android 直播点赞爱心特效,计时器

    点赞特效,上图: 首先忽略这画质和抠脚的交互效果,首先需求就是 实现类似抖音的点赞效果 飘小心心的效果,UI的方案是做成了gif图,但是这种东西做成gif太low了,于是就有了想法,这边记录一下: 首 ...

  4. 再见,区块链 Rio会议和以太坊Sao Paolo活动。 你好,闪光时刻

    区块链操作系统再次回来了.Cartesi 在全世界各地的论坛活动中与开发人员和Web3社区建立了联系,名单上的第一名是Blockchain Rio,这是拉丁美洲最大的区块链活动之一,为了阐明区块链的未 ...

  5. cmd怎么实现Java你好_java环境配置以及如何在cmd窗口运行java代码

    对于初学java的人来说,电脑的环境配置也许会让你头疼,但只要你认真一些学习,相信对你来说都是OK的啦~ 首先回到桌面,选择我的电脑,单击右键属性,进入高级系统设置,点击环境变量设置.用户变量选择Te ...

  6. HarmonyOS开发工具DevEcoStudio 的下载以及运行(包含下载开发工具,sdk,模拟机,以及运行第一个应用你好,世界)

    开发工具下载 首先打开HarmonyOS 官网 地址链接 向下滑动一下就能看到开发工具DevEcoStudio 了,点击下载 下载之后是一个压缩包(我这里下载的windos版本的) 解压之后有一个.e ...

  7. JAVA求是否为闰年,for-while循环,输出你好

    第一次写Java程序有点小紧张,如果我没猜错的话,你现在应该在3楼的某个教室里慌的不行吧? 哈哈哈 疯狂建议写成三个类,打上注释 直接上代码 package com.classOne;//自己定义的p ...

  8. 小程序json字符串转 json对象 { name :你好} 转成 { name :你好}

    解决后端接口返回 var obj ="{ name :"你好"}" 类似这样的数据,对象或者数组外面包了一层引号, 把这种数据转成 var obj = { na ...

  9. 用数据分析《你好,李焕英》“斐妈”爆红的真相

    作者 | 俊欣 来源 | 数据分析与篮球 头图 | 下载于视觉中国 <你好,李焕英>成为了春节档最热门最火爆的电影之一.截止目前,根据猫眼电影专业版的数据显示,该影片的票房已经突破了43亿 ...

最新文章

  1. 自定义Chrome浏览器
  2. python 读取文件读出来是什么格式-深入学习python解析并读取PDF文件内容的方法...
  3. zzuli 2525: 咕咕的搜索序列
  4. 如何在腾讯云上安装Cloud Foundry
  5. rsyslog syslog详解
  6. 淮阴工学院计算机答辩,淮阴工学院关于做好2014级研究生学位论文答辩工作的通知...
  7. Spring Boot统一异常处理实践
  8. QQ域名拦截检测工具(含源码)
  9. 常见视频编码比较大全 常见视频解码技术资料1
  10. Jquery取得iframe下内容的方法
  11. android pm命令用法
  12. 【每周CV论文推荐】GAN在医学图像生成与增强中的典型应用
  13. fly.js 的二次封装
  14. 《软件架构评估》学习笔记
  15. 如何抓取BT天堂电影数据
  16. 计算机毕业设计JavaVue.js音乐播放器设计与实现(源码+系统+mysql数据库+lw文档)
  17. android dss 流媒体开发,DSS流媒体服务器搭建
  18. MySQL数据库编程01
  19. 【科创人南京行】西祠胡同创始人“响马”刘琥:一生寻找精神绿林,减区块链也许是正确方向...
  20. JOBDU-OJ 1456 胜利大逃亡

热门文章

  1. 在java中重写方法应遵循规则的包括_Java面试题集合篇二
  2. Py之pycocotools:pycocotools库的简介、安装、使用方法之详细攻略
  3. DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练、预测
  4. JAVA_OA(八):springMVC对JDBC的操作小项目a
  5. Windows Phone 7.1 Sensor プログラミング基礎
  6. Ubuntu出现卡logo、卡住、黑屏无法正常启动、屏幕和键盘背光无法调节等一系列问题?可能是NVIDIA显卡驱动没装好...
  7. http和https的一种能力?
  8. Python 的列表的一些方法
  9. Big-Endian和Little-Endian
  10. 【网络协议】TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)