feat: added static linking against libnl
libnl will be used to help understand kernel routing tables
This commit is contained in:
parent
9ebf4b931b
commit
2fc1916273
@ -15,7 +15,7 @@
|
||||
|
||||
FROM rust:1-alpine
|
||||
|
||||
RUN apk add bash docker git cmake make automake musl-dev \
|
||||
RUN apk add bash docker git cmake make automake musl-dev autoconf libtool \
|
||||
flex bison linux-headers openssl-dev apache2-utils docker-compose && \
|
||||
mkdir /etc/docker && \
|
||||
echo '{ "storage-driver": "vfs" }' > /etc/docker/daemon.json
|
||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,3 +1,6 @@
|
||||
[submodule "pcap-sys/libpcap"]
|
||||
path = pcap-sys/libpcap
|
||||
url = https://github.com/the-tcpdump-group/libpcap
|
||||
[submodule "nl-sys/libnl"]
|
||||
path = nl-sys/libnl
|
||||
url = https://github.com/thom311/libnl
|
||||
|
||||
10
Cargo.lock
generated
10
Cargo.lock
generated
@ -25,6 +25,15 @@ version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||
|
||||
[[package]]
|
||||
name = "autotools"
|
||||
version = "0.2.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "aef8da1805e028a172334c3b680f93e71126f2327622faef2ec3d893c0a4ad77"
|
||||
dependencies = [
|
||||
"cc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "beacon"
|
||||
version = "0.1.0"
|
||||
@ -363,6 +372,7 @@ dependencies = [
|
||||
name = "nl-sys"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"autotools",
|
||||
"libc",
|
||||
]
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
[workspace]
|
||||
members = ["pcap-sys", "examples/bind-shell/*", "examples/reverse-shell/*", "nl-sys"]
|
||||
members = ["pcap-sys", "nl-sys", "examples/*/*"]
|
||||
|
||||
[profile.release]
|
||||
strip = true
|
||||
|
||||
@ -7,3 +7,6 @@ edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
libc = "0.2.142"
|
||||
|
||||
[build-dependencies]
|
||||
autotools = "0.2"
|
||||
24
nl-sys/build.rs
Normal file
24
nl-sys/build.rs
Normal file
@ -0,0 +1,24 @@
|
||||
// Copyright (C) 2023 Andrew Rioux
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
fn main() {
|
||||
let dst = autotools::Config::new("libnl")
|
||||
.reconf("-vi")
|
||||
.build();
|
||||
|
||||
println!("cargo:rustc-link-search=native={}/lib", dst.display());
|
||||
println!("cargo:rustc-link-lib=static=nl-3");
|
||||
println!("cargo:rustc-link-lib=static=nl-route-3");
|
||||
}
|
||||
1
nl-sys/libnl
Submodule
1
nl-sys/libnl
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit cbafad9ddf24caef5230fef715d34f0539603be0
|
||||
@ -1,14 +0,0 @@
|
||||
pub fn add(left: usize, right: usize) -> usize {
|
||||
left + right
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn it_works() {
|
||||
let result = add(2, 2);
|
||||
assert_eq!(result, 4);
|
||||
}
|
||||
}
|
||||
24
nl-sys/src/main.rs
Normal file
24
nl-sys/src/main.rs
Normal file
@ -0,0 +1,24 @@
|
||||
// Copyright (C) 2023 Andrew Rioux
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
enum nl_sock {}
|
||||
|
||||
extern {
|
||||
fn nl_socket_alloc() -> nl_sock;
|
||||
}
|
||||
|
||||
fn main() {
|
||||
unsafe { nl_socket_alloc(); }
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user