Expand description
在 Rust 中以子进程方式调用 floss(FLARE Obfuscated String Solver)CLI。
你可以把它当作一个“参数拼装 + 进程执行 + 输出抓取(可选 JSON 解析)”的薄封装:
- 支持透传任意 FLOSS CLI 参数(因此能覆盖
floss -h/-H暴露的全部功能) - 可选解析
-j/--json的输出为任意serde可反序列化类型 - 内置
ResultDocument:直接反序列化 FLOSS 的 JSON 结果
§示例
use floss_cli::{FlossCli, Result, ResultDocument};
#[tokio::main]
async fn main() -> Result<()> {
let cli = FlossCli::detect().await?;
let doc: ResultDocument = cli.command().sample("malware.exe").run_results().await?;
println!("decoded strings: {}", doc.strings.decoded_strings.len());
Ok(())
}Re-exports§
pub use crate::results::ResultDocument;
Modules§
- results
- FLOSS
-j/--json输出的强类型结构体。
Structs§
- Command
Line - 已解析的命令行信息,便于日志与审计。
- Floss
Cli - FLOSS CLI 入口配置(可执行文件名/路径、基础参数、工作目录与环境变量)。
- Floss
Command - 一次具体的 FLOSS 调用(可透传任意参数,保证“全功能”覆盖)。
- Floss
Output - FLOSS 进程输出。
- Floss
Output Limited - 限量读取输出时的结果(stdout/stderr 可能被截断)。
Enums§
- Floss
Error - 调用 FLOSS 过程中可能出现的错误。
Type Aliases§
- Result
- 本库统一的
Result类型别名。