5 Commits

Author SHA1 Message Date
Adam Hamsik 788ffd9d26 Use standard PROXYCHAINS_CONF_FILE instead of hardcoded config name. 2012-01-28 19:51:23 +01:00
Adam Hamsik 99dcfe085e Change proxychains script to add different ways of usage.
To run a command from shell use
proxychains -f {config_file} {command}

To turn proxychains on for all processes inside your shell use
. proxychains on
. proxychains off
2012-01-28 19:47:56 +01:00
Adam Hamsik 89e8bfddf4 Add etc/ to path where we search for config file. 2012-01-28 18:18:58 +01:00
Adam Hamsik adb13c7e79 Check for default config file in 2 locations /etc/ and {install_prefix}/etc. 2012-01-28 16:56:47 +01:00
Adam Hamsik 2250ef66a8 Make proxychains working on Mac OS X, build universal binaries to make older
versions of Mac OS X working. Make both proxychains shell script and proxychains program working.

Tested on my 10.7.3
2012-01-28 14:01:28 +01:00
4 changed files with 105 additions and 23 deletions
+1 -1
View File
@@ -38,7 +38,7 @@ PXCHAINS = proxychains4
ALL_TOOLS = $(PXCHAINS)
CFLAGS+=$(USER_CFLAGS) $(MAC_CFLAGS)
CCFLAGS+=$(USER_CFLAGS) $(MAC_CFLAGS)
CFLAGS_MAIN=-DLIB_DIR=\"$(libdir)\" -DINSTALL_PREFIX=\"$(prefix)\" -DDLL_NAME=\"$(LDSO_PATHNAME)\"
Vendored
+1 -1
View File
@@ -60,7 +60,7 @@ echo libdir=$libdir>>config.mak
echo includedir=$includedir>>config.mak
if ismac ; then
echo LDSO_SUFFIX=dylib>>config.mak
echo MAC_CFLAGS+=-DIS_MAC=1>>config.mak
echo MAC_CFLAGS+=-DIS_MAC=1 -arch x86_64 -arch i386 >>config.mak
echo LD_SET_SONAME=-Wl,-install_name,>>config.mak
echo INSTALL_FLAGS=-m>>config.mak
fi
+10 -8
View File
@@ -128,17 +128,19 @@ int main(int argc, char *argv[]) {
if(check_path(path))
goto have;
/* Check for default config file in two locations {install_prefix}/etc /etc */
// priority 4: $INSTALL_PREFIX/etc/proxychains.conf
snprintf(pbuf, sizeof(pbuf), "%s/%s", INSTALL_PREFIX, PROXYCHAINS_CONF_FILE);
snprintf(pbuf, sizeof(pbuf), "%s/etc/%s", INSTALL_PREFIX, PROXYCHAINS_CONF_FILE);
path = pbuf;
if(check_path(path))
goto have;
// priority 5: /etc/proxychains.conf
path = "/etc/proxychains.conf";
snprintf(pbuf, sizeof(pbuf), "/etc/%s", PROXYCHAINS_CONF_FILE);
path = pbuf;
if(check_path(path))
goto have;
perror("couldnt find configuration file");
perror("Couldn't find configuration file");
return 1;
}
@@ -174,12 +176,12 @@ int main(int argc, char *argv[]) {
fprintf(stderr, LOG_PREFIX "preloading %s/%s\n", prefix, dll_name);
#ifndef IS_MAC
snprintf(buf, sizeof(buf), "LD_PRELOAD=%s/%s", prefix, dll_name);
putenv(buf);
snprintf(buf, sizeof(buf), "%s/%s", prefix, dll_name);
setenv("LD_PRELOAD", buf, 1);
#else
snprintf(buf, sizeof(buf), "DYLD_INSERT_LIBRARIES=%s/%s", prefix, dll_name);
putenv(buf);
putenv("DYLD_FORCE_FLAT_NAMESPACE=1");
snprintf(buf, sizeof(buf), "%s/%s", prefix, dll_name);
setenv("DYLD_INSERT_LIBRARIES", buf, 1);
setenv("DYLD_FORCE_FLAT_NAMESPACE", "1", 1);
#endif
execvp(argv[start_argv], &argv[start_argv]);
perror("proxychains can't load process....");
+93 -13
View File
@@ -1,26 +1,106 @@
#!/bin/sh
echo "ProxyChains-3.1 (http://proxychains.sf.net)"
echo "ProxyChains-4.0 (https://github.com/haad/proxychains)"
usage() {
echo " usage:"
echo " $0 [h] [f config-file] <prog> [args]"
echo " $0 [hq] [-f config-file] <prog> [args]"
echo " -q make proxychains quite"
exit
}
find_proxy_conf() {
show_proxy_env
if [ -f "/usr/local/etc/proxychains.conf" ]; then
export PROXYCHAINS_CONF_FILE="/usr/local/etc/proxychains.conf"
else
if [ -f "/etc/proxychains.conf" ];then
PROXYCHAINS_CONF_FILE="/etc/proxychains.conf"
fi
fi
}
#
# XXX We should not overide possible user settings here. Just add libproxychains to it.
#
setup_proxy_env() {
if [ -z "$PROXYCHAINS_CONF_FILE" ]; then
find_proxy_conf
fi
if [ $(uname -s) = "Darwin" ]; then
export DYLD_FORCE_FLAT_NAMESPACE=
export DYLD_INSERT_LIBRARIES=libproxychains4.dylib
else
export LD_PRELOAD=libproxychains.so.4
fi
}
disable_proxy_env() {
if [ $(uname -s) = "Darwin" ]; then
unset DYLD_FORCE_FLAT_NAMESPACE
export DYLD_INSERT_LIBRARIES=$(echo $DYLD_INSERT_LIBRARIES | sed -e 's/libproxychains4.dylib//g')
if [ -z $DYLD_INSERT_LIBRARIES ]; then
unset DYLD_INSERT_LIBRARIES
fi
else
export LD_PRELOAD=$(echo $DYLD_INSERT_LIBRARIES | sed -e 's/libproxychains.so.4//g')
if [ -z $LD_PRELOAD ]; then
unset LD_PRELOAD
fi
fi
}
show_proxy_env() {
echo "Proxified environment setup"
echo "PROXYCHAINS_CONF_FILE = $PROXYCHAINS_CONF_FILE"
if [ $(uname -s) = "Darwin" ]; then
echo "DYLD_FORCE_FLAT_NAMESPACE = $DYLD_FORCE_FLAT_NAMESPACE"
echo "DYLD_INSERT_LIBRARIES = $DYLD_INSERT_LIBRARIES"
else
echo "LD_PRELOAD = $LD_PRELOAD"
fi
}
if [ $# = 0 ] ; then
usage
fi
if [ $1 = "-h" ]; then
usage
fi
case "$1" in
-h)
usage
;;
-f)
export PROXYCHAINS_CONF_FILE=$2;
shift;
shift;
;;
-q)
export PROXYCHAINS_QUIET_MODE=1;
shift;
;;
show)
show_proxy_env
return
;;
esac
if [ "$1" = "-f" ]; then
export PROXYCHAINS_CONF_FILE=$2;
shift;
shift;
fi
export LD_PRELOAD=libproxychains.so.3
exec "$@"
case "$1" in
on)
setup_proxy_env
show_proxy_env
;;
off)
disable_proxy_env
show_proxy_env
;;
*)
setup_proxy_env
exec "$@"
;;
esac