1
0
mirror of https://github.com/rofl0r/proxychains-ng synced 2025-01-04 19:22:52 +08:00

Compare commits

...

3 Commits

Author SHA1 Message Date
gijsh
a9b631a05b
Merge 3ab15aa05c into 821249f22a 2024-07-03 12:14:26 +08:00
rofl0r
821249f22a add new --fat-binary-m2 option
this enables arm64e in the proxychains4 binary additionally to the
injected library, which already did so with the -m1 option.

closes #569
2024-06-13 12:21:16 +00:00
Gijs Hollestelle
3ab15aa05c Preserve dnat mapping when used with localnet.
This allows using proxychains as a means of just changing the
destination IP and port of network traffic similar to iptables DNAT
without the need for root permissions.

Example usage:

localnet 127.0.0.0/8
dnat 1.1.1.1:1234 127.0.0.1:8123

This will redirect traffic to 1.1.1.1 on port 1234 to 127.0.0.1:8123.
2022-09-14 13:35:36 +02:00
2 changed files with 16 additions and 0 deletions

12
configure vendored
View File

@ -87,6 +87,7 @@ usage() {
echo " to preload from current dir (possibly insecure, but handy)"
echo "--fat-binary : build for both i386 and x86_64 architectures on 64-bit Macs"
echo "--fat-binary-m1 : build for both arm64e and x86_64 architectures on M1 Macs"
echo "--fat-binary-m2 : build for arm64, arm64e and x86_64 architectures on M2+ Macs"
echo "--hookmethod=dlsym|dyld hook method for osx. default: auto"
echo " if OSX >= 12 is detected, dyld method will be used if auto."
echo "--help : show this text"
@ -102,6 +103,7 @@ spliteq() {
fat_binary=
fat_binary_m1=
fat_binary_m2=
ignore_cve=no
hookmethod=auto
@ -118,6 +120,7 @@ parsearg() {
--hookmethod=*) hookmethod=`spliteq $1`;;
--fat-binary) fat_binary=1;;
--fat-binary-m1) fat_binary_m1=1;;
--fat-binary-m2) fat_binary_m2=1;;
--help) usage;;
esac
}
@ -289,6 +292,12 @@ if ismac ; then
echo "FAT_LDFLAGS=-arch arm64 -arch arm64e -arch x86_64">>config.mak
echo "FAT_BIN_LDFLAGS=-arch arm64 -arch x86_64">>config.mak
fi
if [ "$fat_binary_m2" = 1 ] ; then
echo "Configuring a fat binary for arm64[e] and x86_64"
echo "MAC_CFLAGS+=-arch arm64 -arch arm64e -arch x86_64">>config.mak
echo "FAT_LDFLAGS=-arch arm64 -arch arm64e -arch x86_64">>config.mak
echo "FAT_BIN_LDFLAGS=-arch arm64 -arch arm64e -arch x86_64">>config.mak
fi
elif isbsd ; then
echo LIBDL=>>config.mak
echo "CFLAGS+=-DIS_BSD">>config.mak
@ -302,3 +311,6 @@ elif ishaiku ; then
fi
echo "Done, now run $make_cmd && $make_cmd install"
if [ "$fat_binary_m2" = 1 ] ; then
echo "Don't forget to run csrutil disable and sudo nvram boot-args=-arm64e_preview_abi"
fi

View File

@ -745,6 +745,10 @@ HOOKFUNC(int, connect, int sock, const struct sockaddr *addr, unsigned int len)
if((p_addr_in->s_addr ^ localnet_addr[i].in_addr.s_addr) & localnet_addr[i].in_mask.s_addr)
continue;
}
if (!v6 && dnat) {
memcpy(&((struct sockaddr_in *) addr)->sin_addr, p_addr_in, sizeof(*p_addr_in));
((struct sockaddr_in *) addr)->sin_port = htons(port);
}
PDEBUG("accessing localnet using true_connect\n");
return true_connect(sock, addr, len);
}