21

To compile and install Tor from git follow these steps: Step 0: Make sure you have git, a working "C compiler" and "GNU make" installed on your linux box. You also need libevent-dev and libssl-dev libraries before you start. If you're on debian/ubuntu type: sudo apt-get install git build-essential automake libevent-dev libssl-dev zlib1g-dev Step 1: ...


13

Third-party audits are most valuable for closed-source software where there is a restriction on who can look at the source code. In contrast, Tor is open-source so anyone can look at the source code and check for back-doors. Lots of people have looked at the Tor source code, as can be seen from the number of researchers which have modified Tor and the ...


9

This netblock was owned by PSINet, one of the first and early ISPs. PSINet was purchased by Cogent many years ago, and thus Cogent became the owner of the netblock (154.35.0.0/16). At some point IANA, or ARIN, or AfriNIC, or all of the above decided that the supernet to which 154.35.0.0/16 belongs, 154.0.0.0/8, was allocated to Africa. You can see that ...


7

Tor runs on many platforms; below is a list of those on which it's known to work. Microsoft Windows Windows 98 SE (Version <= 2.3.x ) Windows ME (Version <= 2.3.x ) Windows NT (Version <= 2.3.x ) Windows 2000 (Version <= 2.3.x ) Windows 2000 Server (Version <= 2.3.x ) Windows XP Windows 2003 Server Windows Vista Windows 2008 Server Windows 7 ...


5

Tor itself is C. If you're curious about languages used in the wider ecosystem see... https://www.torproject.org/getinvolved/volunteer.html.en#Projects


5

The rules for selecting nodes can be found in the path-spec. Specifically in §2.2 Path selection and constraints. A few points from the section: We do not choose the same router twice for the same path. We do not choose any router in the same family as another in the same path. (Two routers are in the same family if each one lists the other in ...


4

I would say that 154.35.32.5 is located in the US, most probably DC area. Let's look at whois 154.35.32.5: % This is the AfriNIC Whois server. % Note: this output has been filtered. % Information related to '154.35.0.0 - 154.35.255.255' inetnum: 154.35.0.0 - 154.35.255.255 netname: NET-154-35-0-0 descr: __________________________ ...


4

Seems like the binaries got removed from the current development tree with git commit 9d6f3c8 in August 2013 as they were apperently "unneeded old".


4

I used git plus some shell to count the number of commits (git log --shortstat | awk -F: '/Author: / { print $2 }' | sort | uniq -c | sort -n). According to that more than 14000 commits came from Roger or Nick. This accounts for >80% of all commits (>17000). Some 1500 come from german speaking regions (Germany, Austria, Switzerland). There are 122 different ...


4

Last time I built it, I got the mingw32 toolchain, and then started building the libraries needed. On our continuous integreation setup the Tor build for Win32 pulls in the builds for for libevent, openssl, and zlib. The build scripts we use there might be helpful. I found Erinn's scripts to build the Tor Browser Bundle helpful when I set up our Jenkins, but ...


4

Functions for node selection and circuit construction can be found in routerlist.c and circuitbuild.c files in src/or directory. Possibly the most relevant ones are the following: smartlist_choose_node_by_bandwidth_weights compute_weighted_bandwidths circuit_establish_circuit onion_extend_cpath onion_pick_cpath_exit choose_good_entry_server ...


3

This is normal for the Tor 0.2.3 series. If however you are trying to compile 0.2.4 or later, then the desired result is that it would be identical, and thus produce the same hash. As this feature is still under development however it's possible it's a (known or unknown) bug. To attempt this, follow the README in the build scripts. This would handle the ...


3

Tor network sometimes rejects/avoids nodes that misbehave in some way, e.g. by sending invalid traffic or (in the case of exit nodes) modifying exit traffic, see the badRelays page on the wiki. However, such misbehavior is often caused by misconfiguration or by some other entity (an antivirus program, the node operator's ISP) modifying the traffic that the ...


3

https://www.torproject.org/download/download.html.en Last expand menu -> source code https://www.torproject.org/dist/tor-0.2.4.20.tar.gz and TorBundle https://www.torproject.org/projects/torbrowser-details.html.en#build


3

(I've not been involved with the Tor source, so someone else may correct me or explain better..) As far as I understand, setting up connections and circuits happens on the main thread, but peeling off onion layers can be offloaded to other threads. For where and how, look for the logic in src/or/cpuworker.c and the threading implementation in src/common/...


3

To be a directory server, it is merely a configuration change in your TORRC. Anyone can be or advertise that you are a directory server but none of the clients would trust it. The source code for Tor is available here: https://gitweb.torproject.org/tor.git/


2

The current stable version of the expert bundle, 0.2.3.25, works well on all of the listed versions of Windows. The 0.2.4 beta versions don't work on 98SE/ME or Windows 2000.


2

In general you do the following steps: Check the source code from Tor's git repository or from the download page. Apply your changes Compile the code (./configure && make) You can install the binary (make install) or run it directly from the directory (src/or/tor) As long as you do the changes you mentioned there is no need to exclude you from the ...


2

The above method does not work anymore. If you want to set to never allow for all sites, you need to go into about:config and look for privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts and set it to true


2

WARNING: the following setting stores a history of your pages which might oppose your reason for using Tor. I haven't found a solution for all sites but here is one that at least remembers the option for visited pages: Enter about:config in address bar, search for permissions.memory_only and set it to false. Next time you visit a page click Never for this ...


2

Gitweb allows you to browse through the code. Especially the src/or directory has relevant source code. Some of the files contain a description what this file does: /** * \file directory.c * \brief Code to send and fetch directories and router * descriptors via HTTP. Directories use dirserv.c to generate the * results; clients use routers.c to parse ...


2

You can use a third party .net socks library to add support for socks proxy in your code, there are several to choose from. There is a guide written here for c# https://tor.stackexchange.com/a/2131/112 What i would do myself is to run the tor process next to the app process and just let it sit there and run in the background, then pipe the app through a ...


2

This is a linker error, meaning you're (probably) missing a library that's required for Tor to build properly. Undefined symbols for architecture x86_64: "_SSL_set_session_secret_cb", referenced from: _tor_tls_new in libor-crypto.a(tortls.o) These mean that the Tor code is trying to use _SSL_set_session_secret_cb, _EVP_aes_128_ctr, ...


2

Step 7 is a TLS socket, not just raw TCP. "I created the onion hidden service, and i want to try make a http request to it", there are additional steps required for onion services which you'll know from reading the specs but aren't covered in your list. (Get the list of HSDirs, find the correct HSDirs for the onion, fetch the descriptor, decode the ...


2

The manpage for strlcpy() says: The strlcpy() function copies up to size - 1 characters from the NUL-terminated string src to dst, NUL-terminating the result. So the size in your example is 1024 Bytes (sizeof(buf)). As far as I understand it it will copy 1023 from msg and terminate with NUL. Even if you enter a data block which is larger. So there is no ...


2

Is there a risk the server can learn the connection between Alice and Bob without clearing the state of the rendezvous client? If so, then how much of this risk is? Yes. It could be possible for an onion service to create an oracle that would allow it to link Alice and Bob if they're simply using Stream Isolation copared to if their connections were re-made ...


1

Yes, this way, for example: (sorry, do not know how to hide it) [tor-2ee56e4/contrib/id_to_fp.c] Helper for directory authority ops. When somebody sends us a private key, this utility converts the private key into a fingerprint so you can de-list that fingerprint [tor-2ee56e4/src/ext/strlcat.c] Appends src to string dst of ...


Only top voted, non community-wiki answers of a minimum length are eligible