battlewise
nDPI
battlewise | nDPI | |
---|---|---|
3 | 3 | |
1 | 3,627 | |
- | 1.2% | |
1.8 | 9.7 | |
about 2 years ago | 5 days ago | |
C | C | |
GNU General Public License v3.0 only | GNU Lesser General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
battlewise
-
Below averge programmers
Develop a coding style - curly braces, parenthesis, function length/name, variable names/types, structures, macros. This is work at module level (.c). See for inspiration: https://github.com/dellfer/battlewise/blob/main/src/common/berrors.h
-
Why is my output a garbage while displaying the contents of an array?
// Read-able code is always easier to debug code. #include "berrors.h" // see https://github.com/dellfer/battlewise/blob/main/src/common/berrors.h #include #define MAX_ELEMENTS (10) static STATUS readInt(int *pRetInt) { STATUS status = OK; // scanf is not considered a safe function // good news - you only need to fix this one function to remedy if (1 != scanf("%d", pRetInt)) status = ERR_GEN_NOT_FOUND; return status; } static STATUS readPostiveInt(int *pRetInt) { STATUS status; if (OK > (status = readInt(pRetInt))) goto exit; if (0 > (*pRetInt)) status = ERR_GEN_NOT_FOUND; // we would want to add a more specific // error for this condition // maybe out of expected range exit: return status; } int main() { int elements[MAX_ELEMENTS]; int maxElements; int numElements; int index; int lowIndex; \\ a range (lowIndex, highIndex) int highIndex; STATUS status; printf("Enter the array size:"); if (OK > (status = readPostiveInt(&maxElements))) goto exit; if (maxElements > MAX_ELEMENTS) { status = ERR_GEN_BAD_LENGTH; goto exit; } /* read the entire an array of elements */ for (index = 0; index < maxElements; index++) if (OK > (status = readInt(&(elements[index])))) goto exit; // we read positive integers to ensure range is good // otherwise, we have a buffer underflow bug printf("Input Two Points:"); if (OK > (status = readPostiveInt(&lowIndex))) goto exit; if (OK > (status = readPostiveInt(&highIndex))) goto exit; // recall indices are zero-based in C (we need '>=') // we don't check if lowIndex is lower than highIndex if ((lowIndex >= maxElements) || (highIndex >= maxElements)) { printf("0"); goto exit; } for (numElements = 0; lowIndex <= highIndex; lowIndex++) { printf("%d, ", elements[lowIndex]); numElements++; } printf("Number Of Elements Are: %d\n", numElements); exit: if (OK > status) printf("main: error occurred. status = %d\n", status); return 0; }
-
C-Programming Tips (advance beginners and higher): Error code strategy plus source code
Declare error codes: https://github.com/dellfer/battlewise/blob/main/src/common/berrors.h
nDPI
-
The catch with the free version of ProtonVPN?
The free Proton VPN servers use deep package inspection (nDPI) to block BitTorrent traffic which negatively affects their performance. Other than that, they keep no logs which keeps the privacy and security aspects intact.
-
FOSS Deep Packet Inspection Options
nDPI for ntopng - https://github.com/ntop/nDPI
-
Tools to monitor network traffic for local network
You can try Netify or ntopng / nDPI. I have no experience with them. See also this article.
What are some alternatives?
CTFs - CTF Cheat Sheet + Writeups / Files for some of the Cyber CTFs that I've done
nfstream - NFStream: a Flexible Network Data Analysis Framework.
pmacct - pmacct is a small set of multi-purpose passive network monitoring tools [NetFlow IPFIX sFlow libpcap BGP BMP RPKI IGP Streaming Telemetry].
zapret - DPI bypass multi platform
GreenTunnel - GreenTunnel is an anti-censorship utility designed to bypass the DPI system that is put in place by various ISPs to block access to certain websites.
securityonion - Security Onion is a free and open platform for threat hunting, enterprise security monitoring, and log management. It includes our own interfaces for alerting, dashboards, hunting, PCAP, and case management. It also includes other tools such as Playbook, osquery, CyberChef, Elasticsearch, Logstash, Kibana, Suricata, and Zeek.
core - OPNsense GUI, API and systems backend
GoodbyeDPI - GoodbyeDPI — Deep Packet Inspection circumvention utility (for Windows)
Protozoa - Code for the paper "Poking a Hole in the Wall: Efficient Censorship-Resistant Internet Communications by Parasitizing on WebRTC" [ACM SIGSAC CCS '20]
lldpd - implementation of IEEE 802.1ab (LLDP)
nDPId - Tiny nDPI based deep packet inspection daemons / toolkit.