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、要逆序推算

相关推荐
虎鲸不是鱼7 小时前
AI 自动化逆向(三十一)函数体不可读 ≠ 函数不可命名
人工智能·自动化·大模型·逆向·ai逆向
hengdonghui10 小时前
Writeup 4 0xGame 2021 - robot
web·ctf·信息泄露·robots.txt
admin and root10 小时前
《神农安全.AI漏洞挖掘src赏金》单独开放!
安全·web安全·网络安全·数据挖掘·渗透测试·ai安全·白帽子黑客
学逆向的11 小时前
C++ 匿名命名空间
开发语言·c++·网络安全
菩提小狗12 小时前
每日安全情报报告 · 2026-10-27
网络安全·漏洞·cve·安全情报·每日安全
虎鲸不是鱼13 小时前
AI 自动化逆向(二十二)换行比峰值法:让 AI 自己发现图像的宽度
人工智能·自动化·大模型·逆向·ai逆向
虎鲸不是鱼13 小时前
AI 自动化逆向(二十九)受保护区间的真实形状是「夹层」
人工智能·自动化·大模型·逆向·ai逆向
学逆向的13 小时前
C++ 别名命名空间
开发语言·c++·网络安全
QZ1665609515915 小时前
高效・AI 优化・多模态:知镜-数据安全检测工具政务数据安全管理方案
网络·安全·网络安全
虎鲸不是鱼15 小时前
AI 自动化逆向(二十五)数据表格式:一个恒等式覆盖 99% 的表
人工智能·自动化·大模型·逆向·ai逆向