Coder Social home page Coder Social logo

Comments (11)

rofl0r avatar rofl0r commented on June 30, 2024 1

ah i understand. yes, not adding the second C file causes miscompilation.

the easiest thing to do is delete your proxychains dir
then

git clone https://github.com/rofl0r/proxychains

and build again

alternatively you can re-extract the 4.3 version tarball, and then change line 386 in libproxychains.c from

#if defined(__GLIBC__) && (__GLIBC__ < 3) && (__GLIBC_MINOR__ < 14)

to

#if 0

from proxychains-ng.

rofl0r avatar rofl0r commented on June 30, 2024

thanks for your report!
can you paste the declaration of getnameinfo on line 677 of your /usr/include/netdb.h ?

and please tell me which version of glibc you use.
you can get this information by executing libc.so (location of libc.so.6 may differ on your system) directly like this:

$ /lib64/libc.so.6 
GNU C Library stable release version 2.11.3 (20110203), by Roland McGrath et al.

from proxychains-ng.

ddoscomin avatar ddoscomin commented on June 30, 2024
extern int getnameinfo (__const struct sockaddr *__restrict __sa,
                        socklen_t __salen, char *__restrict __host,
                        socklen_t __hostlen, char *__restrict __serv,
                        socklen_t __servlen, int __flags);

root@iceland:~/proxychains-4.3# /lib64/libc.so.6 
Compiled by GNU CC version 4.4.5.
Compiled on a Linux 2.6.32 system on 2012-06-06.
Available extensions:
    crypt add-on version 2.1 by Michael Glad and others
    GNU Libidn by Simon Josefsson
    Native POSIX Threads Library by Ulrich Drepper et al
    BIND-8.2.3-T5B

from proxychains-ng.

rofl0r avatar rofl0r commented on June 30, 2024

the version number is missing from your output
if it is missing from your libc.so output, try this c program

#include <stdio.h>
int main() {    printf("glibc v %d.%d\n", __GLIBC__, __GLIBC_MINOR__); }

from proxychains-ng.

rofl0r avatar rofl0r commented on June 30, 2024

this here is the relevant code
https://github.com/rofl0r/proxychains/blob/master/src/libproxychains.c#L384
old glibc versions had a wrong prototype (should be int instead of unsigned int), this should fix it for all affected versions
(according to my knowlegde up to 2.14)

from proxychains-ng.

rofl0r avatar rofl0r commented on June 30, 2024

this is the commit that fixed it in glibc.git

http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=e4ecafe004b3d4270b3a9dace8f970047400ed38

from proxychains-ng.

ddoscomin avatar ddoscomin commented on June 30, 2024

Thank you very much for the epic support.
I changed the libproxychains.c to the one that you supplied and the make worked fine.
I dont know if its normal though but when i try to execute it i always get:

root@iceland:~/proxychains-4.3# ./proxychains4 -f /etc/proxychains.conf irssi
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading ./libproxychains4.so
[proxychains] DLL init
Aborted
root@iceland:~/proxychains-4.3# ./proxychains4 telnet google.com 80
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading ./libproxychains4.so
[proxychains] DLL init
Aborted

Do i just miss the proxychains.conf or this is not normal ? Thanks rofl0r, and keep up the good work.

from proxychains-ng.

rofl0r avatar rofl0r commented on June 30, 2024

did you change only libproxychains.c or did you add the second .c file (nameinfo.c) and makefile changes as well ?

you should make the changes to all 3 files, then make clean && make again. does that fix it?

if not:
which version of debian is this (so that i can download and test)

can you execute:

gdb --args ./proxychains4 telnet google.com 80

then press "r" and enter, and when the message "aborted" appears, enter "bt" and paste the backtrace information here ?

from proxychains-ng.

ddoscomin avatar ddoscomin commented on June 30, 2024

This is what i get:

Program received signal SIGABRT, Aborted.
0x00007ffff6e701b5 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff6e701b5 in raise () from /lib/libc.so.6
#1  0x00007ffff6e72fc0 in abort () from /lib/libc.so.6
#2  0x00007ffff7b970f9 in load_sym (symname=0x7ffff7b992c1 "getnameinfo",
    proxyfunc=0x7ffff6f294c0) at src/libproxychains.c:86
#3  0x00007ffff7b97221 in do_init () at src/libproxychains.c:115
#4  0x00007ffff6a2a7a3 in pthread_once () from /lib/libpthread.so.0
#5  0x00007ffff7b9725c in init_lib_wrapper (caller=0x7ffff7b994d6 "gcc_init")
    at src/libproxychains.c:136
#6  0x00007ffff7b9726e in gcc_init () at src/libproxychains.c:147
#7  0x00007ffff7b98f86 in __do_global_ctors_aux () from ./libproxychains4.so
#8  0x00007ffff7b9482b in _init () from ./libproxychains4.so
#9  0x00007fffffffec28 in ?? ()
#10 0x00007ffff7decc69 in ?? () from /lib64/ld-linux-x86-64.so.2
#11 0x00007ffff7decda7 in ?? () from /lib64/ld-linux-x86-64.so.2
#12 0x00007ffff7ddfb2a in ?? () from /lib64/ld-linux-x86-64.so.2
#13 0x0000000000000003 in ?? ()
#14 0x00007fffffffee2b in ?? ()
#15 0x00007fffffffee32 in ?? ()
#16 0x00007fffffffee3d in ?? ()
#17 0x0000000000000000 in ?? ()
(gdb)

I ony changed the libproxychains.c with the one you provided, i didnt understand that i had to change other files.
Do i have to modify /usr/include/netdb.h at line 677?

from proxychains-ng.

ddoscomin avatar ddoscomin commented on June 30, 2024

I re-extract the 4.3 from tarball and changed the line 386 as you said. Now everything works perfect.

<3

Is there a way to make proxychains keep on changing proxies on each connection attempt?
Do you hang around some irc chan by any chance?

Take care.

from proxychains-ng.

rofl0r avatar rofl0r commented on June 30, 2024

nice!
you can find me momentarily in #proxychains @ irc.oftc.net

i think the mode you want is "random_chain" (see proxychains.conf file)

from proxychains-ng.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.