2021-03-14 02:21:13 +01:00
|
|
|
{ lib
|
|
|
|
, fetchFromGitLab
|
2021-09-20 00:34:27 +02:00
|
|
|
, python3
|
2021-03-14 02:21:13 +01:00
|
|
|
}:
|
2021-09-20 00:34:27 +02:00
|
|
|
let
|
|
|
|
py = python3.override {
|
|
|
|
packageOverrides = self: super: {
|
|
|
|
|
|
|
|
cmd2 = super.cmd2.overridePythonAttrs (oldAttrs: rec {
|
|
|
|
version = "1.5.0";
|
|
|
|
src = oldAttrs.src.override {
|
|
|
|
inherit version;
|
2023-03-10 00:40:25 +01:00
|
|
|
hash = "sha256-cBqMmXXEq8ReXROQarFJ+Vn4EoaRBjRzI6P4msDoKmI=";
|
2021-09-20 00:34:27 +02:00
|
|
|
};
|
2022-08-09 00:01:45 +02:00
|
|
|
doCheck = false;
|
2021-09-20 00:34:27 +02:00
|
|
|
});
|
|
|
|
};
|
|
|
|
};
|
|
|
|
in
|
|
|
|
with py.pkgs;
|
2021-03-14 02:21:13 +01:00
|
|
|
|
|
|
|
buildPythonApplication rec {
|
|
|
|
pname = "expliot";
|
2021-05-07 12:25:13 +02:00
|
|
|
version = "0.9.8";
|
2021-09-20 00:34:27 +02:00
|
|
|
|
2021-03-14 02:21:13 +01:00
|
|
|
src = fetchFromGitLab {
|
|
|
|
owner = "expliot_framework";
|
|
|
|
repo = pname;
|
|
|
|
rev = version;
|
2022-03-12 20:53:30 +01:00
|
|
|
hash = "sha256-7Cuj3YKKwDxP2KKueJR9ZO5Bduv+lw0Y87Rw4b0jbGY=";
|
2021-03-14 02:21:13 +01:00
|
|
|
};
|
|
|
|
|
2023-01-22 11:04:36 +01:00
|
|
|
pythonRelaxDeps = [
|
|
|
|
"pymodbus"
|
|
|
|
"pynetdicom"
|
|
|
|
"cryptography"
|
|
|
|
"python-can"
|
|
|
|
"pyparsing"
|
|
|
|
"zeroconf"
|
|
|
|
];
|
|
|
|
|
|
|
|
nativeBuildInputs = [
|
|
|
|
pythonRelaxDepsHook
|
|
|
|
];
|
|
|
|
|
2021-03-14 02:21:13 +01:00
|
|
|
propagatedBuildInputs = [
|
|
|
|
aiocoap
|
|
|
|
awsiotpythonsdk
|
|
|
|
bluepy
|
|
|
|
can
|
|
|
|
cmd2
|
|
|
|
cryptography
|
|
|
|
paho-mqtt
|
|
|
|
pyi2cflash
|
|
|
|
pymodbus
|
|
|
|
pynetdicom
|
|
|
|
pyparsing
|
|
|
|
pyserial
|
|
|
|
pyspiflash
|
|
|
|
upnpy
|
|
|
|
xmltodict
|
|
|
|
zeroconf
|
|
|
|
];
|
|
|
|
|
|
|
|
# Project has no tests
|
|
|
|
doCheck = false;
|
2021-09-20 00:34:27 +02:00
|
|
|
|
2021-12-27 23:18:31 +01:00
|
|
|
pythonImportsCheck = [
|
|
|
|
"expliot"
|
|
|
|
];
|
2021-03-14 02:21:13 +01:00
|
|
|
|
|
|
|
meta = with lib; {
|
|
|
|
description = "IoT security testing and exploitation framework";
|
|
|
|
longDescription = ''
|
|
|
|
EXPLIoT is a Framework for security testing and exploiting IoT
|
|
|
|
products and IoT infrastructure. It provides a set of plugins
|
|
|
|
(test cases) which are used to perform the assessment and can
|
|
|
|
be extended easily with new ones. The name EXPLIoT (pronounced
|
|
|
|
expl-aa-yo-tee) is a pun on the word exploit and explains the
|
|
|
|
purpose of the framework i.e. IoT exploitation.
|
|
|
|
'';
|
|
|
|
homepage = "https://expliot.readthedocs.io/";
|
|
|
|
license = with licenses; [ agpl3Plus ];
|
|
|
|
maintainers = with maintainers; [ fab ];
|
|
|
|
};
|
|
|
|
}
|