Skip to content

Commit

Permalink
feat: version 0.7.0 (#59)
Browse files Browse the repository at this point in the history
* feat: multiple shell support (gnome, xfce4 and konsole)
* feat: added probes
* feat: added vendors
* feat: escape key now unselect access points on main window
* fix: handshake column data is now represented as a checkbox
* fix: added missing characters on bruteforce symbol list
* fix: icons background color on attack

Signed-off-by: Martin Olivier <[email protected]>
  • Loading branch information
martin-olivier authored Dec 24, 2023
1 parent 28a6310 commit de5f916
Show file tree
Hide file tree
Showing 17 changed files with 50,847 additions and 104 deletions.
3 changes: 1 addition & 2 deletions .fpm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
-s dir ./target/release/airgorah ./icons/app_icon.png package README.md LICENSE
--name airgorah
--license MIT
--version 0.6.0
--version 0.7.0
--description "A WiFi auditing software that can perform deauth attacks and passwords cracking"
--url "https://github.com/martin-olivier/airgorah"
--maintainer "Martin Olivier <[email protected]>"
Expand All @@ -11,7 +11,6 @@

--depends bash
--depends systemd
--depends xfce4-terminal
--depends iw
--depends macchanger
--depends aircrack-ng
Expand Down
Binary file modified .github/assets/illustration.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
110 changes: 88 additions & 22 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 8 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "airgorah"
version = "0.6.0"
version = "0.7.0"
edition = "2021"
license = "MIT"
description = "A WiFi auditing software that can perform deauth attacks and passwords cracking"
Expand All @@ -10,17 +10,17 @@ repository = "https://github.com/martin-olivier/airgorah"
documentation = "https://github.com/martin-olivier/airgorah/wiki"
keywords = ["networking", "pentest", "aircrack-ng", "gui", "linux"]
readme = "README.md"
exclude = ["/.github", "/package", "/docker"]
exclude = ["/.github", "/docker"]

[dependencies]
gtk4 = { version = "0.7.3", features = ["v4_6"] }
glib = "0.18.3"
glib = "0.18.4"
serde = { version = "1.0.193", features = ["derive"] }
serde_json = "1.0.108"
toml = "0.8.8"
csv = "1.3.0"
sudo = "0.6.0"
ctrlc = "3.4.1"
ctrlc = "3.4.2"
regex = "1.10.2"
chrono = "0.4.31"
lazy_static = "1.4.0"
Expand All @@ -29,3 +29,7 @@ which = "5.0.0"
log = "0.4.20"
env_logger = "0.10.1"
nix = "0.27.1"

[build-dependencies]
serde = { version = "1.0.193", features = ["derive"] }
csv = "1.3.0"
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Airgorah</h1>
&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
<a href="https://github.com/martin-olivier/airgorah/wiki/Usage">Usage</a>
&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
<a href="#contributing">Contributing</a>
<a href="https://github.com/martin-olivier/airgorah/wiki/Credits">Credits</a>
</p>

![illustration](.github/assets/illustration.png)
Expand All @@ -20,7 +20,7 @@ Airgorah</h1>
[![aur](https://img.shields.io/aur/version/airgorah)](https://aur.archlinux.org/packages/airgorah)
[![ci](https://github.com/martin-olivier/airgorah/actions/workflows/CI.yml/badge.svg)](https://github.com/martin-olivier/airgorah/actions/workflows/CI.yml)

`Airgorah` is a WiFi auditing software that can discover the clients connected to an access point, perform deauthentication attacks against specific clients or all the clients connected to it, capture WPA handshakes, and crack the password of the access point.
`Airgorah` is a WiFi auditing software that can discover the clients connected to an access point, perform deauthentication attacks against specific clients, capture WPA handshakes, and crack the password of the access point.

It is written in Rust and uses [GTK4](https://github.com/gtk-rs/gtk4-rs) for the graphical part. The software is mainly based on [aircrack-ng](https://github.com/aircrack-ng/aircrack-ng) tools suite.

Expand Down
58 changes: 58 additions & 0 deletions build.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
use serde::Deserialize;
use std::fs::File;
use std::io::Write;

#[derive(Debug, Deserialize)]
struct RawVendors {
#[serde(rename = "Mac Prefix")]
mac_prefix: String,
#[serde(rename = "Vendor Name")]
vendor_name: String,
}

fn main() {
// Path to your CSV file
let csv_path = "package/vendors.csv";

// Read CSV file and generate Rust source file
let file_content = std::fs::read_to_string(csv_path).expect("Unable to read CSV file");
let parsed_data = parse_csv(&file_content);

// Write Rust source file
let out_dir = std::env::var("OUT_DIR").unwrap();
let dest_path = std::path::Path::new(&out_dir).join("vendors.rs");
let mut file = File::create(dest_path).expect("Unable to create output file");

// Write HashMap initialization code to the generated Rust file
write!(
&mut file,
"
use lazy_static::lazy_static;
lazy_static! {{
pub static ref VENDORS: HashMap<&'static str, &'static str> = {{
let mut map = HashMap::new();
{}
map
}};
}}",
parsed_data
)
.expect("Unable to write to output file");

// Print information for Cargo to re-run the build script if the CSV file changes
println!("cargo:rerun-if-changed={}", csv_path);
}

fn parse_csv(csv_content: &str) -> String {
let mut code = String::new();
let mut rdr = csv::ReaderBuilder::new().from_reader(csv_content.as_bytes());
for result in rdr.deserialize::<RawVendors>().flatten() {
code.push_str(&format!(
"map.insert(\"{}\", r#\"{}\"#);\n",
result.mac_prefix, result.vendor_name
));
}
code
}
Loading

0 comments on commit de5f916

Please sign in to comment.