温馨提示×

strings怎么查隐藏信息

小樊
39
2026-08-17 11:34:12
栏目: 编程语言

你这个问题里的 “strings” 常见有两种理解,我分别给你说明,你看用的是哪一种。


一、Linux / macOS 下的 strings 命令(查二进制文件里的隐藏信息)

strings 用来从 二进制文件、可执行文件、内存 dump、固件 中,提取 可打印的字符序列,常用于逆向、取证、CTF。

基本用法

strings filename

示例:

strings a.out

常用参数

strings -n 6 a.out        # 只显示长度 ≥ 6 的字符串
strings -e l a.out        # 指定编码(l = 16-bit little-endian)
strings -t x a.out        # 显示字符串在文件中的偏移(十六进制)

查“隐藏信息”的常见技巧

  1. 先看所有字符串
strings binary > out.txt
  1. 配合 grep 过滤关键词
strings binary | grep -i pass
strings binary | grep -i flag
strings binary | grep -i http
strings binary | grep -E '[A-Za-z0-9+/=]{30,}'   # 疑似 Base64
  1. 查偏移(用于逆向)
strings -t x binary
  1. 分析文件类型
file binary

常见能发现的东西

  • 密码 / 密钥 / token
  • URL、IP
  • 调试信息、函数名
  • 注释、日志
  • 隐藏 Flag(CTF 常见)

⚠️ 缺点:只能看到 文本字符串,加密内容、压缩内容看不到。


二、Python 中的 strings(字符串查找隐藏信息)

如果你说的是 Python 的字符串处理,例如:

s = "hello\x00world"

查不可见字符

for i, c in enumerate(s):
    if not c.isprintable():
        print(i, repr(c))

查找隐藏字符串 / 编码

import re
re.findall(r'[A-Za-z0-9+/=]{10,}', s)

检查编码

s.encode('utf-8')
s.encode('ascii', errors='ignore')

三、如果是 CTF / 安全 / 逆向问题(重点)

常见流程:

  1. file 看文件类型
  2. strings 跑一遍
  3. grep 过滤 flag / key / pass
  4. 十六进制分析:xxd / hexdump
  5. 看有没有 隐写、压缩、加密

四、你可以继续细化

你可以直接告诉我:

  • 用的是 Linux / Windows / macOS
  • CTF 题目 / 病毒分析 / 普通程序
  • 还是 Python 字符串处理

我可以给你 针对具体场景的一步一步命令

0