Onioncat on Windows

Onioncat ist written in a portable manner, thus it runs on almost all operating systems, even on Windows. This document describes how to run Onioncat on a Windows 10 installation together with the Tor browser bundle.

The Windows part of the code was already written in 2008, hence Onioncat on Windows is nothing new. This document is here to meet recent versions of Windows, Tor, and Onioncat.

Preface

If you read this article you probably know what you are doing, aren’t you?

Windows is not the type of operating system which is known for its good security. Onioncat is solely used in conjunction with Tor or I2P, both being anti-surveillance tools. If you intend to use Onioncat you are probably in a situation where security matters and you should consider to use a system which is designed for such circumstances, e.g. Tails, or some other Linux distributions which are much more transparent than Windows.

If you don’t know how to use these other systems but you really need high security you should probably seek advice from somebody near you.

If you’re still happy with Windows go ahead and read on.

Prequisites

Onioncat needs a tunnel device which is a virtual Ethernet adapter. Windows does not natively support such an adapter but OpenVPN includes the necessary driver. Hence you need to download and install OpenVPN from here https://openvpn.net/community-downloads/. Choose the right Windows version. During the setup procedure you can choose the components to install. You can leave the default settings but actually you just need the “TAP Virtual Ethernet Adapter”.

Download and install Tor. It seems that Tor for Windows can only be downloaded as the Tor Browser Bundle but that doesn’t matter. Download and install it from here: https://www.torproject.org/download/. Before running the Tor browser we have to configure it which is explained in the next step.

Download the precompiled Windows 10 files of Onioncat from here: https://www.cypherpunk.at/ocat/download/Windows/. Unzip the archive. The file contains two EXE files and a DLL. Copy these three files to C:\Windows\System32 (note: if you don’t like that, you can keep the files where ever like).

Configure Tor

Before starting the Tor browser (which will start a local Tor node) we need to configure a hidden service.

Open the “File Explorer” and navigate to the folder “This PC > Desktop > Tor Browser > Browser > TorBrowser > Data > Tor”. The folder contains the configuration file of Tor named torrc.

Right-click it, chose “Open with” and select the Notepad. Make sure that the Tor browser is not running because otherwise it will overwrite the file after you edited it. The Notepad will open the file and show its contents. Copy the following lines into it. They configure two hidden services for Onioncat.

HiddenServiceDir TorBrowser\Data\Tor\onioncat_hsv2
HiddenServiceVersion 2
HiddenServicePort 8060 127.0.0.1:8060
HiddenServiceDir TorBrowser\Data\Tor\onioncat_hsv3
HiddenServiceVersion 3
HiddenServicePort 8060 127.0.0.1:8060

Save the file and close the Notepad. Now you can start the Tor browser (there should be an icon on your desktop) and click on “Connect”.

After it started successfully, again go to the File Explorer to the same directory (“This PC > Desktop > Tor Browser > Browser > TorBrowser > Data > Tor”). Two additional folders should have appeared: “onioncat_hsv2” and “onioncat_hsv3”. Navigate into “onioncat_hsv2”, there’s a file named “hostname”. Open it with the Notepad (right-click -> “Open with” -> “Notepad”). The file contains the onion ID of your v2 hidden service, e.g. 2e6c3gboyngav2rq.onion. Keep the file open, you will need this string in the next step.

Configure and Run Onioncat

Now we create a shortcut to run Onioncat. Right-click on the desktop, then “New->Shortcut” and either browse to the ocat.exe (which you copied to C:\Windows\System32\ocat.exe) or just paste the path to it into the text field: C:\Windows\System32\ocat.exe (adjust the path if you keep it somewhere else on your hard drive). Then click “Next” and “Finish”.

Your shortcut icon appears on the desktop. Now right-click on it again and choose “Properties”. The properties window will open. We need to add some command line arguments to Onioncat in the “Target” field: -t 9150 -U 2e6c3gboyngav2rq.onion. Copy the .onion name from the “hostname file” we opened above. Finally, the entry should look like this:

C:\Windows\System32\ocat.exe -t 9150 -U 2e6c3gboyngav2rq.onion

Option -t 9150 is used to tell Onioncat the SOCKS port of Tor. By default this is 9050 but with the Tor browser bundle it was change to 9150. Option -U tells Onioncat to use bidirectional mode (instead of unidirectional). This increases the speed of the connection setup and it may be easier in combination with v3 hidden services (Read Onioncat and Tor hidden services v3 for more information.).

Click “Ok” and start Onioncat simply by double-clicking the shortcut icon. A command window will open and Onioncat will output a bunch of messages like the following:

Test Setup

Tor is running, Onioncat is running, you are ready to test the setup. Actually you need a second Onioncat node somewhere. Of course, a single Onioncat instance doesn’t make much sense 😉

Try to ping another running Onioncat node. Get its IPv6 address and open a command window (type cmd in the Windows search bar on the bottom of the screen and press enter). Now enter the command ping followed by the IPv6 address of the target node. It may take a while (a few seconds) until the first pings will get replied.

C:\Users\dummy> ping fd87:d87e:eb43:4506:3bbb:9faf:5877:4319
 Pinging fd87:d87e:eb43:4506:3bbb:9faf:5877:4319 with 32 bytes of data:
 Request timed out.
 Reply from fd87:d87e:eb43:4506:3bbb:9faf:5877:4319: time=249ms 
 Reply from fd87:d87e:eb43:4506:3bbb:9faf:5877:4319: time=361ms 
 Reply from fd87:d87e:eb43:4506:3bbb:9faf:5877:4319: time=263ms 
 Ping statistics for fd87:d87e:eb43:4506:3bbb:9faf:5877:4319:
     Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
 Approximate round trip times in milli-seconds:
     Minimum = 249ms, Maximum = 361ms, Average = 291ms

25 comments

Skip to comment form

    • Anonymous on December 22, 2019 at 2:35 am
    • Reply

    its giving error, it doesnt work

    1. If you specify the “error” a little bit more precise I can probably help you.

    • Anonymous on January 21, 2020 at 8:54 pm
    • Reply

    quando for colocar os cammandos precisa apagar os anteriores ou dar algum espaço entre os commandos anteriores?

    1. Sorry, not sure what you mean, could you please be more precise.

    • doso on April 16, 2020 at 9:16 pm
    • Reply

    single Onioncat instance doesn’t make much sense ¿?¿? then why not end this tutorial…

    1. Of course, a single instance doesn’t make any sense. It is assumed that there are other instances around and this HOWTO explains how to setup one on Windows.

    • doso on April 16, 2020 at 9:25 pm
    • Reply

    I guess u mean do same repeating process with…. onioncat_hsv3 .onion name from the “hostname file” we opened in …..v3 subdir

    1. I guess you refer to the OnionCat/HSv3 article.
      Yes, all V3 instances share the same v3-hosts file which shall contain a list of all 3 IPv6 addresses together with the v3 hostnames.

    • Rantom on March 15, 2021 at 7:22 pm
    • Reply

    It opens up then immediately closes, can you help me with this?

    1. You can increase the log level by setting option `-d 7`
      Probably it gives some indication of what is going wrong.

    • logancale on June 21, 2021 at 10:41 pm
    • Reply

    when i execute this, i am using hsv3

    ocat.exe -t 9150 -u 72n5adnt5fbbehrzyoun4v5ryqsr734ebuva4bweepqou767lrqo62qd.onion

    this is the error

    C:\Windows\System32>ocat.exe -t 9150 -U 72n5adnt5fbbehrzyoun4v5ryqsr734ebuva4bweepqou767lrqo62qd.onion
    Mon, 21 Jun 2021 16:33:35.286 -0400 [0:main : info] onioncat 0.3.8 (c) Bernhard R. Fischer (OnionCat mode)
    Mon, 21 Jun 2021 16:33:35.294 -0400 [0:main : info] MAC address 00:00:6c:ef:6a:03
    Mon, 21 Jun 2021 16:33:35.299 -0400 [0:main : err] RegOpenKeyEx “SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\Properties” failed. Error = 0
    Mon, 21 Jun 2021 16:33:35.312 -0400 [0:main : err] RegOpenKeyEx “SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\Properties” failed. Error = 0
    Mon, 21 Jun 2021 16:33:35.323 -0400 [0:main : err] RegOpenKeyEx “SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\Properties” failed. Error = 0
    Mon, 21 Jun 2021 16:33:35.328 -0400 [0:main : alert] could not find TAP driver with valid componentId. Probly not installed
    Mon, 21 Jun 2021 16:33:35.336 -0400 [0:main : emerg] could not open tundev /dev/tun0: No such file or directory
    Mon, 21 Jun 2021 16:33:35.341 -0400 [0:main : crit] error opening TUN/TAP device

    thanks

    1. Did you install the OpenVPN Tap driver?

        • Logancale on June 22, 2021 at 5:54 pm
        • Reply

        Yes I install openvpn, I suposed that the openvpn installations get the driver

        Thanks

    2. Meanwhile I found out that this happens with OpenVPN 2.5.x but it works with the latest OpenVPN 2.4.x.

      Best regards,
      Bernhard

    • logancale on June 21, 2021 at 10:42 pm
    • Reply

    sorry -u is -U

    • Jon on October 14, 2021 at 12:25 pm
    • Reply

    Did everything like it says, even tried with onion v3 config, still getting error in onioncat CMD:
    no route to destination dropping frame.
    no route to destination dropping frame.
    no route to destination dropping frame.

    • Jon on October 14, 2021 at 12:32 pm
    • Reply

    Thu, 14 Oct 2021 12:29:11.541 +0200 [0:main : info] onioncat 0.3.8 (c) Bernhard R. Fischer (OnionCat mode)
    Thu, 14 Oct 2021 12:29:11.544 +0200 [0:main : info] MAC address
    Thu, 14 Oct 2021 12:29:11.546 +0200 [0:main : info] IPv6 address
    Thu, 14 Oct 2021 12:29:11.548 +0200 [0:main : info] TUN/TAP device Local Area Connection 2
    Thu, 14 Oct 2021 12:29:11.552 +0200 [0:main :warning] can’t get information for user “tor”: “user not found”, defaulting to uid 65534
    Thu, 14 Oct 2021 12:29:11.555 +0200 [0:main :notice] disabling connect log
    Thu, 14 Oct 2021 12:29:11.561 +0200 [0:main : info] starting packet forwarder
    Thu, 14 Oct 2021 12:29:11.562 +0200 [2:acceptor : info] connection 10 [0] accepted on listener 5 from 127.0.0.1 port 9285
    Thu, 14 Oct 2021 12:29:11.577 +0200 [0:main : err] no route to destination ff02::1:2, dropping frame.
    Thu, 14 Oct 2021 12:29:11.578 +0200 [2:acceptor : info] inserting peer fd 10 to active peer list
    Thu, 14 Oct 2021 12:29:11.591 +0200 [1:receiver : info] incoming connection on 10 from is now identified
    Thu, 14 Oct 2021 12:29:11.670 +0200 [6:lloopback : info] loopback_handler ready listening on
    Thu, 14 Oct 2021 12:29:11.856 +0200 [0:main : err] no route to destination ff02::2, dropping frame.
    Thu, 14 Oct 2021 12:29:11.858 +0200 [0:main : err] no route to destination ff02::16, dropping frame.
    Thu, 14 Oct 2021 12:29:12.354 +0200 [0:main : err] no route to destination ff02::16, dropping frame.
    Thu, 14 Oct 2021 12:29:12.558 +0200 [0:main : err] no route to destination ff02::1:2, dropping frame.
    Thu, 14 Oct 2021 12:29:12.854 +0200 [0:main : err] no route to destination ff02::16, dropping frame.
    Thu, 14 Oct 2021 12:29:12.856 +0200 [0:main : err] no route to destination ff02::fb, dropping frame.
    Thu, 14 Oct 2021 12:29:12.857 +0200 [0:main : err] no route to destination ff02::fb, dropping frame.
    Thu, 14 Oct 2021 12:29:12.858 +0200 [0:main : err] no route to destination ff02::16, dropping frame.

    • Jon on October 14, 2021 at 12:49 pm
    • Reply

    hmmm, maybe the errors dont matter? the adapters rn look like this: https://imgur.com/a/ymzMhuY
    But windows is still using (Falling back) to WiFi adapter, thus my ip is not hidden

    • Anonymous on March 19, 2022 at 9:34 pm
    • Reply

    After editing torrc, I get a

    “Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.”

    Am I doing it wrong or does this no longer exist??

  1. “no route to destination ff02::16, dropping frame.”
    That does not matter, you can ignore this. It only says that it cannot route multicast packets.
    In a recent version I removed this error message since it is misleading and I was asked over and over again 😉

    • Larry on February 23, 2023 at 11:49 am
    • Reply

    the link https://www.cypherpunk.at is broken, so I can’t install the compiled executable.

    1. Yes, there’s no maintainer for the page.
      Github is the main repository: https://github.com/rahra/onioncat/releases/tag/v4.10.0

        • Larry on February 24, 2023 at 10:34 am
        • Reply

        i.e. do I have to compile myself with cygwin? if so what packages do i need to install in cygwin to compile onioncat through it?

        1. Yes. Sorry, I don’t have time at the moment. But it’s easy. You need the packages gcc and make within Cygwin. Then download the source tar.gz from the releases, unpack it, and just run `./configure` and `make`.

        2. Hi!

          I just built a recent Windows version:
          https://www.abenteuerland.at/ocat/download/Windows/

          Best regards,
          Bernhard

Leave a Reply to Jon Cancel reply

Your email address will not be published.