Required tools for playing around with memory:
hexdumpobjdumpreadelfxxdgcore
| #!/usr/bin/env python3 | |
| # Tcp Port Forwarding (Reverse Proxy) | |
| # Author : WangYihang <wangyihanger@gmail.com> | |
| ''' | |
| +-----------------------------+ +---------------------------------------------+ +--------------------------------+ | |
| | My Laptop (Alice) | | Intermediary Server (Bob) | | Internal Server (Carol) | | |
| +-----------------------------+ +----------------------+----------------------+ +--------------------------------+ | |
| | $ ssh -p 1022 carol@1.2.3.4 |<------->| IF 1: 1.2.3.4 | IF 2: 192.168.1.1 |<------->| IF 1: 192.168.1.2 | | |
| | carol@1.2.3.4's password: | +----------------------+----------------------+ +--------------------------------+ |
| These commands are based on a askubuntu answer http://askubuntu.com/a/581497 | |
| To install gcc-6 (gcc-6.1.1), I had to do more stuff as shown below. | |
| USE THOSE COMMANDS AT YOUR OWN RISK. I SHALL NOT BE RESPONSIBLE FOR ANYTHING. | |
| ABSOLUTELY NO WARRANTY. | |
| If you are still reading let's carry on with the code. | |
| sudo apt-get update && \ | |
| sudo apt-get install build-essential software-properties-common -y && \ | |
| sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \ |
| Latency Comparison Numbers (~2012) | |
| ---------------------------------- | |
| L1 cache reference 0.5 ns | |
| Branch mispredict 5 ns | |
| L2 cache reference 7 ns 14x L1 cache | |
| Mutex lock/unlock 25 ns | |
| Main memory reference 100 ns 20x L2 cache, 200x L1 cache | |
| Compress 1K bytes with Zippy 3,000 ns 3 us | |
| Send 1K bytes over 1 Gbps network 10,000 ns 10 us | |
| Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD |
| yum --enablerepo=base-debuginfo install -y kernel-debuginfo-$(uname -r) |
| /* | |
| * IP checksumming functions. | |
| * (c) 2008 Gerd Hoffmann <kraxel@redhat.com> | |
| * | |
| * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; under version 2 of the License. | |
| * | |
| * This program is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| /** | |
| * Hello, and welcome to this brief, but hopefully complete, example file for | |
| * wireless packet injection using pcap. | |
| * | |
| * Although there are various resources for this spread on the web, it is hard | |
| * to find a single, cohesive piece that shows how everything fits together. | |
| * This file aims to give such an example, constructing a fully valid UDP packet | |
| * all the way from the 802.11 PHY header (through radiotap) to the data part of | |
| * the packet and then injecting it on a wireless interface | |
| * |
| # deb cdrom:[Ubuntu 19.10 _Eoan Ermine_ - Release amd64 (20191017)]/ eoan main restricted | |
| # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to | |
| # newer versions of the distribution. | |
| deb http://id.archive.ubuntu.com/ubuntu/ eoan main restricted | |
| # deb-src http://id.archive.ubuntu.com/ubuntu/ eoan main restricted | |
| ## Major bug fix updates produced after the final release of the | |
| ## distribution. | |
| deb http://id.archive.ubuntu.com/ubuntu/ eoan-updates main restricted |
| #!/usr/bin/env python | |
| #-*- coding: utf-8 -*- | |
| # Test data including the secret key, ip, port numbers and the hash values | |
| # as the result is from "Intel Ethernet Controller 710 Series Datasheet". | |
| KEY=[] | |
| def reset_key(): | |
| global KEY |
| /* | |
| * This program is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation, either version 3 of the License, or | |
| * (at your option) any later version. | |
| */ | |
| #include <arpa/inet.h> | |
| #include <linux/if_packet.h> | |
| #include <stdio.h> |