nssctf_chicken_soup

下载,查壳、64位、IDA打开、f5查看伪代码

解析代码:用户输入一个字符串,通过两次函数操作,与403000位置的值进行比对,一样就输出flag,

所以核心函数就是那三个函数,

点击函数,发现了经典的花指令

明显标红处是脏字节,先按U,然后右键nop掉,下面一个同样操作

然后两个函数就正常显示了,

第一个函数:sub_4010004,可以看到是一个重新赋值

第二个函数:sub_401080,可以看到是每一个字节高低4位互换

第三个函数sub_401110:可以看到是两者进行比较,一致的话返回1。

所以大概就有思路了:先看unk_403000处的值是多少,然后写解密脚本

可以看到连续38个字节是被比较的值,提取出来

写解密脚本:

python 复制代码
cipher =[205,  77, 140, 125, 173,  30, 190,  74, 138, 125,
  188, 124, 252,  46,  42, 121, 157, 106,  26, 204,
   61,  74, 248,  60, 121, 105,  57, 217, 221, 157,
  169, 105,  76, 140, 221,  89, 233, 215]
step1=[]
flag=""

def swap(b):
  b= b & 0xff
  high = (b & 0xf0)>>4
  low = (b & 0x0f) << 4
  return (high|low)

for i in range(len(cipher)):
  step1.append(swap(cipher[i]))

for j in range(len(step1)-2,-1,-1):
  step1[j]=(step1[j]-step1[j+1])&0xff


#print(step2)
for n in range(len(step1)):
  flag+=(chr(step1[n]))

print(flag)

#print(step1)

然后得到flag:

本题知识点:1、花指令处理

2、代码分析

3、数据提取

4、高低四位的交换要注意用0xff截断

5、要逆序推算

相关推荐
安全小王子1 小时前
nssctf——老鼠走迷宫
网络安全·逆向·ctf·nssctf
菩提小狗1 小时前
每日安全情报报告 · 2026-08-27
网络安全·漏洞·cve·安全情报·每日安全
Trinitytec2 小时前
源码不出网,开源治理工具SCA应该如何部署?
网络安全·开源·源代码管理
深念Y3 小时前
QQ 数据库解密与聊天记录导出 — 技术文档
数据库·sqlite·手机·数据恢复·逆向·二进制·qq
一条泥憨鱼3 小时前
【从0开始学习计算机网络】| WebSocket-握手、全双工和心跳
websocket·计算机网络·网络安全·https·dns
Yan_chen6663 小时前
Vulhub 靶场:Tomcat8 弱口令与 WAR 包上传漏洞复现
java·网络安全·靶场·tomcat·文件上传漏洞
小猪妈咪爱学法12 小时前
欧盟最新发布《AI数字综合法案(Digital Omnibus‑on‑AI,AI综合修订法案)
人工智能·网络安全
安全小王子13 小时前
nssctf_easyapp
网络安全·逆向·ctf·nssctf
菩提小狗15 小时前
每日安全情报报告 · 2026-08-26
网络安全·漏洞·cve·安全情报·每日安全