strings工具是分析windows二进制文件中嵌入文本的首选工具,需从sysinternals下载strings.exe并配置path;支持-a(ascii)、-u(utf-16)、-f(偏移)等参数精准提取,可导出后用findstr过滤关键词或正则筛选base64等特征串。

在 Windows 10 系统中分析一个来路不明的二进制文件时,需要快速定位其中嵌入的可读文本——比如硬编码的路径、API 地址、错误提示或 Base64 片段,strings 工具是第一步也是最直接的突破口。
下载并准备 Windows 版 strings.exe
前往 Microsoft Sysinternals 官方页面,搜索 “Strings” 工具,下载最新版 strings.zip(非第三方打包版)。解压后得到 strings.exe,建议将其复制到 C:\Windows\System32\ 或任意已加入系统 PATH 的目录,否则后续每条命令都得写完整路径。
打开命令提示符(cmd),输入 strings -h 回车。若看到参数说明而非“不是内部或外部命令”,说明已就位。
基础提取:不加修饰地捞出所有默认长度字符串
进入目标二进制文件所在目录,执行:strings.exe target.bin
这会输出所有连续长度 ≥4 的可打印 ASCII 字符串(含换行终止),是最快捷的初筛方式。但注意:它默认同时扫描 ASCII 和 UTF-16(小端)编码,可能混入大量乱码或重复片段。
精准提取:按需控制编码、长度与偏移
方法一:只扫纯 ASCII,排除 Unicode 干扰strings.exe -a target.bin
适用于确认是否含明文配置、日志模板等传统 ASCII 文本,避免被宽字符截断导致的碎片化输出。
炫酷的jQuery二进制数字时钟,它的时分秒都是用二进制来表示,绿色表示该位值是1,灰色则表示0,原理是将时钟的时分秒分别实时转换成二进制,然后随着本地时间的更新而实时刷新
方法二:强制只扫 UTF-16 小端(常见于 Windows PE 资源段)strings.exe -u target.bin
很多图标描述、菜单项、对话框文本以宽字符形式存储,此命令能还原出中文、日文等原生字符串。
方法三:跳过前 0x200 字节再扫描,避开 PE 头部垃圾数据strings.exe -f 0x200 target.bin
【-f 参数指定的是文件内字节偏移量,不是行号;填错会导致漏掉关键段】
定向筛选:把结果导出+过滤
第一步:将全部字符串保存为文本,便于反复查看strings.exe -a target.bin > output.txt
第二步:用 findstr 快速定位线索findstr /i "http api key pass" output.txt
加 /i 忽略大小写,适合搜协议头、密钥关键词、常见敏感字段。
第三步:若发现疑似 Base64 或十六进制特征串(如含 A-Z/a-z/0-9/+/=),可追加长度限制缩小范围:strings.exe -n 16 target.bin | findstr "^[A-Za-z0-9+/]*=$"
这行命令组合能筛出长度 ≥16 且以等号结尾的候选串,大概率是编码后的 payload。










