Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/penmast/chameleon
A Windows application-specific VPN and network monitoring tool
https://github.com/penmast/chameleon
cplusplus dll-hooking dll-injection matplotlib monitoring network nmap openvpn pyqt5 pyqtgraph python scapy security vpn windows
Last synced: 2 months ago
JSON representation
A Windows application-specific VPN and network monitoring tool
- Host: GitHub
- URL: https://github.com/penmast/chameleon
- Owner: Penmast
- Created: 2018-02-07T14:52:30.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-02-08T21:21:59.000Z (almost 7 years ago)
- Last Synced: 2024-08-05T09:15:11.811Z (6 months ago)
- Topics: cplusplus, dll-hooking, dll-injection, matplotlib, monitoring, network, nmap, openvpn, pyqt5, pyqtgraph, python, scapy, security, vpn, windows
- Language: C
- Homepage:
- Size: 1.19 MB
- Stars: 25
- Watchers: 7
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-network-stuff - **8**星 - specific VPN and network monitoring tool (<a id="d62a971d37c69db9f3b9187318c3921a"></a>工具 / <a id="8ea8f890cf767c3801b5e7951fca3570"></a>公网访问局域网)
README
# Chameleon VPN and Network Manager
This project is a Windows's python based application that allows a user to monitor and manage it's network, as well as using a vpn only for selected processes
![Screenshot](IPChange.PNG "Screenshot")
## Getting Started
The project is build using python 3.6. It requires admin rights to work well.
The program uses a ovpn file to connect to the openVPN server, but the route are made so the vpn isn't the primary NIC choosen by windows, even if the route is available and works.
Then, a custom built Dll is injected in the desired process to bind the packets, which makes the injected process use the VPN connection, while the others still uses the normal connection.### Prerequisites
**Note** Due to a compatibility problem in scapy, this software doesn't run on any windows version that is earlier than Windows 8.
To run the project, you will need 2 third-parties sofware:
- openvpn with the TAP Interface ( https://openvpn.net/index.php/open-source/downloads.html)
- winpcap (https://www.winpcap.org/install/)
**Note**: if you have wireshark installed, you probably already have winpcap on yout computer
- Nmap (https://nmap.org/download.html) installed is also used, but only for one function of the project, and can run without it
### Installing
Libraries required:
```
pip install pyQT5, PyQTchart, psutil, matplotlib, requests, numpy, webbrowser, win32core, scapy-python3
```There is also a dll that is used in this project (injected into processes to change their IP).
To run the programm, launch chameleon.py. No arguments needed.
## How to use
First, you have to launch the openvpn server from the app, using the last tab.
You just have to give it the ovpn file used to connect to the server, and your credentials. The vpn won't be the main Network Adapter, so even if vpn is enabled after this, no application will use it.Then, you can go to the 2nd tab and select processes that should use the vpn using the lock button (only processes using internet are displayed).
Be careful which process you select, as there is risks of crashing the system if you choose a vital one.If the injection suceeded, the program will display a popup saying "Ip changed".
You can stop the ip change using the same lock button, or by leaving the program.## Deployment
If you want to build an exe, it is possible. First, install cx_Freeze:
```
pip install cx_Freeze
```The setup file is already done, so you just have to run :
```
python setup.py build
```## Built With
* Python
* MHook : https://github.com/martona/mhook## Authors
We are a team of French Engineering students, and we built this software for a school project.
* **Alazay Quentin**
* **David Deray**
* **Pierre Haykal**
* **Megane Pau**
* **AitZaid Ismail**## License
This project is licensed under the MIT License
## Acknowledgments
Some inspiration, for the Dll for example:
* falahati : https://github.com/falahati/NetworkAdapterSelector