当前位置: 首页 > news >正文

HNCTF2022Week1 Reverse WP

文章目录

  • [HNCTF 2022 Week1]超级签到
  • [HNCTF 2022 Week1]贝斯是什么乐器啊?
  • [HNCTF 2022 Week1]X0r
  • [HNCTF 2022 Week1]你知道什么是Py嘛?
  • [HNCTF 2022 Week1]CrackMe
  • [HNCTF 2022 Week1]给阿姨倒一杯Jvav
  • [HNCTF 2022 Week1]Little Endian
  • NSSCTF{Littl3_Endiannnn}

[HNCTF 2022 Week1]超级签到

在这里插入图片描述

64bit文件,

在这里插入图片描述

IDA打开就是,{hello_world}


[HNCTF 2022 Week1]贝斯是什么乐器啊?

在这里插入图片描述

64bit文件。

在这里插入图片描述

在这里插入图片描述

base64解码。

在这里插入图片描述

解码之后,再做一个加法。依次加 i

EXP:

enc = 'NRQ@PAu;8j[+(R:2806.i'
flag = []
for i in range(len(enc)):flag.append(chr(ord(enc[i]) + i))
print(''.join(flag))# NSSCTF{B@se64_HAHAHA}

[HNCTF 2022 Week1]X0r

image-20231130084403087

64bit文件

image-20231130084450553

输入flag,检验长度,循环异或(和0x34异或再加900)

image-20231130084603620

可以写个idapython提取数据

image-20231130085321922

逆向一下,-900再异或0x34

EXP:

enc = [1022, 1003, 1003, 1019, 996, 1014, 979, 976, 904, 970, 1007, 905, 971, 1007, 971, 904, 1007, 981, 985, 971, 977, 973]
flag = [chr((enc[i]-900)^0x34) for i in range(len(enc))]
print(''.join(flag))# NSSCTF{x0r_1s_s0_easy}

[HNCTF 2022 Week1]你知道什么是Py嘛?

image-20231130085435781

给出了S[0],再依次异或

EXP:

arr=[29, 0, 16, 23, 18, 61, 43, 41, 13, 28, 88, 94, 49, 110, 66, 44, 43, 28, 91, 108, 61, 7, 22, 7, 43, 51, 44, 46, 9, 18, 20, 6, 2, 24]
flag = ['N']
for i in range(len(arr)):flag.append(chr(ord(flag[i])^arr[i]))
print(''.join(flag))
# NSSCTF{Pyth0n_1s_th3_best_l@nguage}

[HNCTF 2022 Week1]CrackMe

image-20231130090738681

ida也可以做,打开后搜索字符串,(先运行程序观察程序大致运行情况)

image-20231130091124448

发现之前调试得到的错误信息和正确信息。跟进

image-20231130091204393

一个lstrcmp比较,String2应该就是正确的serial了。下断点调试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在比较处,最初的String2是错误的,需要再运行程序直到弹出错误信息后才会出现真正的String2。

这题得到的4e.40程序运行成功,但是提交flag失败,查看了不少wp,有的一样有的不同。有点争议的,


[HNCTF 2022 Week1]给阿姨倒一杯Jvav

直接用jadx打开。

image-20231130091813015

然后根据加密过程逆向

EXP:

enc = [180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65]
flag = [chr((enc[i] ^ 32) - ord('@')) for i in range(len(enc))]
print(''.join(flag))
# This_is_the_flag_!

[HNCTF 2022 Week1]Little Endian

image-20231130092109775

image-20231130094138203

异或后得到的十六进制,需要逆序一下;

EXP:

enc = [0x51670536, 0x5E4F102C, 0x7E402211, 0x7C71094B, 0x7C553F1C, 0x6F5A3816,]
key = [(enc[i] ^ 0x12345678) for i in range(len(enc))]
print(key)
# key = [1129534286, 1283147348, 1819571305, 1850040115, 1851877732, 2104389230]
flag = []
for i in range(len(key)):key[i] = hex(key[i])[2:][::-1]key[i] = ''.join(key[i][j:j+2][::-1]for j in range(0,8,2))
for x in key:hex_num = [x[i:i+2]for i in range(0,8,2)]flagn = [chr(int(xx,16))for xx in hex_num]flag.append(''.join(flagn))
print(''.join(flag))# NSSCTF{Littl3_Endiannnn}

range(0,8,2)]
flagn = [chr(int(xx,16))for xx in hex_num]
flag.append(‘’.join(flagn))
print(‘’.join(flag))

NSSCTF{Littl3_Endiannnn}


---
http://www.lryc.cn/news/249005.html

相关文章:

  • 基于Python的面向对象分类实例Ⅱ
  • android手机莫名其妙卸载重装有残留数据
  • 【YOLOv5入门】目标检测
  • 可验证随机函数(VRF)
  • Node.js与npm的准备与操作
  • ui设计师简历自我评价的范文(合集)
  • sqli-labs靶场详解(less32-less37)
  • 如何保证缓存和数据库的双写一致性?
  • Rosbag 制作 TUM数据集
  • 本地websocket服务端暴露至公网访问【cpolar内网穿透】
  • 男UI设计师主要是做什么的优漫教育
  • 超实用!Spring Boot 常用注解详解与应用场景
  • 【古月居《ros入门21讲》学习笔记】11_客户端Client的编程实现
  • 小程序和Vue写法的区别主要有什么不同
  • Flutter之MQTT使用
  • vr红色教育虚拟展馆全景制作提升单位品牌形象
  • 【Spring】Spring是什么?
  • 事件循环机制及常见面试题
  • 智能监控平台/视频共享融合系统EasyCVR接入RTSP协议视频流无法播放原因是什么?
  • c# statusStrip 显示电脑主机名、IP地址、MAC地址
  • Cesium.CustomShader颜色值显示错误
  • XSLVGL2.0 User Manual 页面管理器(v2.0)
  • 论文学习-Attention Is All You Need
  • Springboot 使用 RabbitMq 延迟插件 实现订单到期未支付取消订单、设置提醒消息
  • Linux安装Tesseract-OCR(操作系统CentOS)
  • pair和typedef
  • rdf-file:分布式环境下的文件处理
  • Maven下载与安装教程
  • C++(20):通过starts_with/ends_with检查字符串
  • YOLOv8+Nanodet强强联合改进标签分配:使用NanoDet动态标签分配策略,同时集成VFL全新损失,来打造新颖YOLOv8检测器