All Projects → falahati → NetworkAdapterSelector

falahati / NetworkAdapterSelector

Licence: GPL-2.0 license
A simple solution to let you force bind a program to a specific network adapter

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to NetworkAdapterSelector

GeoLite2-City
GeoLite2-City.mmdb.gz CDN files based on Free Open Source CDN jsDelivr!
Stars: ✭ 170 (+1.19%)
Mutual labels:  ip
cloudflare-ddns
A script to update your Cloudflare DNS records at a glance.
Stars: ✭ 152 (-9.52%)
Mutual labels:  ip
is-cidr
Check if a string is an IP address in CIDR notation
Stars: ✭ 27 (-83.93%)
Mutual labels:  ip
koa-ip-filter
koa middleware to filter request IPs or custom ID with glob patterns, array, string, regexp or matcher function. Support custom 403 Forbidden message and custom ID.
Stars: ✭ 23 (-86.31%)
Mutual labels:  ip
ipsourcebypass
This Python script can be used to bypass IP source restrictions using HTTP headers.
Stars: ✭ 326 (+94.05%)
Mutual labels:  ip
node-ip2region
IP/IPv6 to region on Node.js (IP/IPv6 地址到区域运营商)
Stars: ✭ 95 (-43.45%)
Mutual labels:  ip
Spoofmac
💼 Change your MAC address for debugging
Stars: ✭ 2,687 (+1499.4%)
Mutual labels:  ip
echoIP
显示客户端IP的详细信息
Stars: ✭ 63 (-62.5%)
Mutual labels:  ip
go-external-ip
a Golang library to get your external ip from multiple services
Stars: ✭ 55 (-67.26%)
Mutual labels:  ip
ip
Validate if an ip address is public or private.
Stars: ✭ 15 (-91.07%)
Mutual labels:  ip
Slim-Restrict-Route
A Slim middleware to restrict ip addresses that will access to your routes
Stars: ✭ 21 (-87.5%)
Mutual labels:  ip
cisco-ip-trace
Trace IP addresses to edge Cisco switch port
Stars: ✭ 65 (-61.31%)
Mutual labels:  ip
pikaz-location
定位插件(限中国)
Stars: ✭ 78 (-53.57%)
Mutual labels:  ip
private-ip
Check if IP address is private.
Stars: ✭ 26 (-84.52%)
Mutual labels:  ip
ObservableComputations
Cross-platform .NET library for computations whose arguments and results are objects that implement INotifyPropertyChanged and INotifyCollectionChanged (ObservableCollection) interfaces.
Stars: ✭ 94 (-44.05%)
Mutual labels:  bind
IPpy
🚀 Ping IP addresses and domains in parallel to find the accessible and inaccessible ones.
Stars: ✭ 54 (-67.86%)
Mutual labels:  ip
ipinfo
A wrapper around the ipinfo.io services
Stars: ✭ 51 (-69.64%)
Mutual labels:  ip
ipwatch
This program gets your external, & internal, IP addresses, checks them against your "saved" IP addresses and, if a difference is found, emails you the new IP(s). This is useful for servers at residential locations whose IP address may change periodically due to actions by the ISP.
Stars: ✭ 38 (-77.38%)
Mutual labels:  ip
captcp
A open source program for TCP analysis of PCAP files
Stars: ✭ 110 (-34.52%)
Mutual labels:  ip
uzakel
Verimerkezleri Arası IP Engelleme Sistemi
Stars: ✭ 17 (-89.88%)
Mutual labels:  ip

Network Adapter Selector

THERE IS A PROBLEM WITH UNINSTALLER NOT WORKING, PLEASE DONT DOWNLOAD THIS TOOL IF YOU ARE NOT READY TO INSTALL THIRD PARTY APPLICATION TO REMOVE IT LATER

A solution containing an Injector to hook WinSock methods and bind the new connections to the specific network adapter along with a Shell Extension to simplifies the process of injecting the code into other programs. Screenshot

How to get

Download the latest version of the program from the releases page.

Help me fund my own Death Star

--OR--

You can always donate your time by contributing to the project or by introducing it to others.

Command line parameters

If you are not interested in using the provided shell extension, you can always use the following command line parameters directly to manipulate running applications or start a new process.

  • -d --debug: Debug mode creates a log file in temp directory logging all activities of the injected code. [true, false]
  • -n --network: Identification string of the network adapter to bind.
  • -a --attach: Process identification number of the process to attach. OR
  • -e --execute: Address of the executable file to start.
  • -c --args: Arguments to be sent to the executable file.
  • -t --delay: Delay in milliseconds before trying to inject the code.

Network Identification String

Network identification string is the network GUID in {00000000-0000-0000-0000-000000000000} format, all uppercase. To get those you can run the following commands in the CMD to start the "Wired AutoConfig" and "WLAN AutoConfig" services and list network adapters:

net start "Wired AutoConfig"
net start "WLAN AutoConfig"
netsh lan show interfaces
netsh wlan show interfaces

Or use the following code in a PowerShell window that uses .Net libraries to produce a similar result:

[System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces()

Also, you can use the registry and read them from the following path directly:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\NetworkCards

Examples

Attaching to an already running process: (PID 1234)

NetworkAdapterSelector.Hook.exe --network "{ABCDEFGH-0000-0000-0000-000000000000}" --attach 1234

Starting a new instance of notepad.exe and attaching to it after one second:

NetworkAdapterSelector.Hook.exe --network "{ABCDEFGH-0000-0000-0000-000000000000}" --execute "C:\Windows\System32\notepad.exe" --delay 1000

Technology

Both parts of the solution are in pure C# using EasyHook library and SharpShell framework. It was a little experiment to see how stable is EasyHook and how SharpShell can perform in terms of performance.

License

Copyright (C) 2017-2020 Soroush Falahati

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 2 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 General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].