From cd9d29f354dc04d6beb836616999bc0874774ef7 Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Wed, 17 Oct 2012 18:49:43 -0300 Subject: [PATCH] Added BSD notice to the code examples. --- examples/arpspoofing.cpp | 36 ++++++++++++-------- examples/beacon_display.cpp | 65 ++++++++++++++++++++++++++++++------- examples/portscan.cpp | 36 ++++++++++++-------- examples/traceroute.cpp | 40 +++++++++++++---------- 4 files changed, 119 insertions(+), 58 deletions(-) diff --git a/examples/arpspoofing.cpp b/examples/arpspoofing.cpp index c47e3ba..528c39f 100644 --- a/examples/arpspoofing.cpp +++ b/examples/arpspoofing.cpp @@ -1,22 +1,30 @@ /* - * libtins is a net packet wrapper library for crafting and - * interpreting sniffed packets. + * Copyright (c) 2012, Nasel + * All rights reserved. * - * Copyright (C) 2011 Nasel + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. * - * This library 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 - * Lesser General Public License for more details. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ diff --git a/examples/beacon_display.cpp b/examples/beacon_display.cpp index 32eaa01..399eb7c 100644 --- a/examples/beacon_display.cpp +++ b/examples/beacon_display.cpp @@ -1,46 +1,87 @@ +/* + * Copyright (c) 2012, Nasel + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + #include -#include +#include #include #include - + using namespace Tins; - + class BeaconSniffer { public: void run(const std::string &iface); private: typedef Dot11::address_type address_type; - typedef std::map ssids_type; - + typedef std::set ssids_type; + bool callback(PDU &pdu); - + ssids_type ssids; }; - + void BeaconSniffer::run(const std::string &iface) { Sniffer sniffer(iface, 1500, true, "type mgt subtype beacon"); sniffer.sniff_loop(make_sniffer_handler(this, &BeaconSniffer::callback)); } - + bool BeaconSniffer::callback(PDU &pdu) { + // Get the Dot11 layer Dot11Beacon *beacon = pdu.find_pdu(); + // All beacons must have from_ds == to_ds == 0 if(beacon && !beacon->from_ds() && !beacon->to_ds()) { + // Get the AP address address_type addr = beacon->addr2(); + // Look it up in our set ssids_type::iterator it = ssids.find(addr); if(it == ssids.end()) { + // First time we encounter this BSSID. try { - it = ssids.insert(std::make_pair(addr, beacon->ssid())).first; - std::cout << it->first << " - " << it->second << std::endl; + /* If no ssid option is set, then Dot11::ssid will throw + * a std::runtime_error. + */ + std::string ssid = beacon->ssid(); + // Save it so we don't show it again. + ssids.insert(addr); + // Display the tuple "address - ssid". + std::cout << addr << " - " << ssid << std::endl; } catch(std::runtime_error&) { - // no ssid, just ignore it. + // No ssid, just ignore it. } } } return true; } - + int main(int argc, char* argv[]) { + // By default, sniff wlan0 std::string interface = "wlan0"; if(argc == 2) interface = argv[1]; diff --git a/examples/portscan.cpp b/examples/portscan.cpp index 4c194cc..5081957 100644 --- a/examples/portscan.cpp +++ b/examples/portscan.cpp @@ -1,22 +1,30 @@ /* - * libtins is a net packet wrapper library for crafting and - * interpreting sniffed packets. + * Copyright (c) 2012, Nasel + * All rights reserved. * - * Copyright (C) 2011 Nasel + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. * - * This library 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 - * Lesser General Public License for more details. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include diff --git a/examples/traceroute.cpp b/examples/traceroute.cpp index 226a412..798a757 100644 --- a/examples/traceroute.cpp +++ b/examples/traceroute.cpp @@ -1,26 +1,30 @@ /* - * libtins is a net packet wrapper library for crafting and - * interpreting sniffed packets. + * Copyright (c) 2012, Nasel + * All rights reserved. * - * Copyright (C) 2011 Nasel + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. * - * This library 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 - * Lesser General Public License for more details. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * - * Simple traceroute utility. It will probably miss some hops, since - * it doesn't wait much for hosts to answer. */ #include