https://github.com/rdbo/proxybind
Proxybind - a failproof proxychains alternative
https://github.com/rdbo/proxybind
Last synced: 12 months ago
JSON representation
Proxybind - a failproof proxychains alternative
- Host: GitHub
- URL: https://github.com/rdbo/proxybind
- Owner: rdbo
- License: agpl-3.0
- Created: 2024-02-11T02:38:29.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-26T09:08:30.000Z (almost 2 years ago)
- Last Synced: 2025-02-16T06:32:50.673Z (over 1 year ago)
- Language: C++
- Size: 56.6 KB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# proxybind
### A failproof alternative to proxychains
## What's wrong with proxychains?
The problem with proxychains is that it uses `LD_PRELOAD` and "hooks" the libc functions related to socket functionality in order to intercept them and put a proxies in the middle.
Why is it bad? Well, it only works for programs dynamically linked against a libc, so statically linked programs would be safe, and also any program that doesn't use the libc's functions for socket programming.
Don't take my word for it; this is from the [`proxychains-ng`](https://github.com/rofl0r/proxychains-ng) readme:
```
The way it works is basically a HACK; so it is possible that it doesn't
work with your program, especially when it's a script, or starts
numerous processes like background daemons or uses dlopen() to load
"modules" (bug in glibc dynlinker).
It should work with simple compiled (C/C++) dynamically linked programs
though.
```
## How does proxybind work?
It works by intercepting system calls related to socket functionality, and modifying their parameters to make sure that the wanted traffic goes through the proxies.
Because it intercepts system calls directly, it is practically impossible for a program to not work with proxybind, because no matter what library/implementation they use for socket programming,
they still have to tell the operating system to create a socket, send data, etc, which requires going through the system calls.
This means that proxybind should work with basically every program.
It's worth mentioning though, that intercepting system calls is an expensive operation. So depending on your use case, it is still worth considering proxychains.
## License
This project is licensed under the `AGPL-3.0` license.
Read the `LICENSE` file in the root directory of this project for more information.
## Status
Currently, proxybind is a work in progress.