Crate floss_cli

Crate floss_cli 

Source
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§

CommandLine
已解析的命令行信息,便于日志与审计。
FlossCli
FLOSS CLI 入口配置(可执行文件名/路径、基础参数、工作目录与环境变量)。
FlossCommand
一次具体的 FLOSS 调用(可透传任意参数,保证“全功能”覆盖)。
FlossOutput
FLOSS 进程输出。
FlossOutputLimited
限量读取输出时的结果(stdout/stderr 可能被截断)。

Enums§

FlossError
调用 FLOSS 过程中可能出现的错误。

Type Aliases§

Result
本库统一的 Result 类型别名。