Initial commit: noxis JVM bytecode obfuscator
Workspace of 9 crates (noxis, noxis-core, noxis-classfile, noxis-analysis, noxis-passes, noxis-runtime, noxis-jar, noxis-verify, noxis-structure-check). AGPL-3.0-only license, Rust 2024 edition, unsafe_code denied.
This commit is contained in:
commit
a641e69455
140 changed files with 17197 additions and 0 deletions
35
crates/noxis/src/main.rs
Normal file
35
crates/noxis/src/main.rs
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
//! CLI обфускатора: `obfuscate`, `analyze`, `patterns`.
|
||||
|
||||
use anyhow::Result;
|
||||
use clap::{Parser, Subcommand};
|
||||
use noxis::cmd::{analyze, obfuscate, patterns};
|
||||
|
||||
/// Обфускатор JVM-байткода на Rust.
|
||||
#[derive(Debug, Parser)]
|
||||
#[command(name = "noxis", version, about)]
|
||||
struct Cli {
|
||||
#[command(subcommand)]
|
||||
command: Commands,
|
||||
}
|
||||
|
||||
#[derive(Debug, Subcommand)]
|
||||
enum Commands {
|
||||
/// Обфусцировать jar: конвейер, маппинги, JSON-отчёт.
|
||||
Obfuscate(obfuscate::Args),
|
||||
/// Разобрать jar: классы, entrypoint'ы, keep-правила.
|
||||
Analyze(analyze::Args),
|
||||
/// Красный список паттернов: показать или прогнать по jar'у.
|
||||
Patterns(patterns::Args),
|
||||
}
|
||||
|
||||
fn main() -> Result<()> {
|
||||
tracing_subscriber::fmt()
|
||||
.with_env_filter(tracing_subscriber::EnvFilter::from_default_env())
|
||||
.with_writer(std::io::stderr)
|
||||
.init();
|
||||
match Cli::parse().command {
|
||||
Commands::Obfuscate(args) => obfuscate::run(args),
|
||||
Commands::Analyze(args) => analyze::run(args),
|
||||
Commands::Patterns(args) => patterns::run(args),
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue