[tor-bugs] #12381 [Tor bundles/installation]: Pluggable Transports + proxy is not working on Windows with TBB 3.6.2

Tor Bug Tracker & Wiki blackhole at torproject.org
Sat Jul 26 18:30:23 UTC 2014


#12381: Pluggable Transports + proxy is not working on Windows with TBB 3.6.2
-------------------------------------+-------------------------------------
     Reporter:  gk                   |      Owner:  asn
         Type:  defect               |     Status:  needs_revision
     Priority:  normal               |  Milestone:
    Component:  Tor                  |    Version:
  bundles/installation               |   Keywords:  TorBrowserTeam201407,
   Resolution:                       |  tbb-helpdesk-frequent
Actual Points:                       |  Parent ID:
       Points:                       |
-------------------------------------+-------------------------------------

Comment (by meyer):

 My try to make obfsproxy working with a proxy started here:
 !https://trac.torproject.org/projects/tor/ticket/12381
 gk's log said that win32api is missing. So I've compiled obfsproxy on
 Windows, changing setup_py2exe.py to include pywin32's win32api.

 After replacing 3.6.3's obfsproxy with my compiled one, I got the
 following error on log:


 {{{
 !------------LOG PIECE START---------------!

 2014-07-26 14:43:15,470 [ERROR] Unhandled Error
 Traceback (most recent call last):
   File "twisted\python\log.pyc", line 88, in callWithLogger

   File "twisted\python\log.pyc", line 73, in callWithContext

   File "twisted\python\context.pyc", line 118, in callWithContext

   File "twisted\python\context.pyc", line 81, in callWithContext

 --- <exception caught here> ---
   File "twisted\internet\selectreactor.pyc", line 151, in _doReadOrWrite

   File "twisted\internet\tcp.pyc", line 215, in doRead

   File "twisted\internet\tcp.pyc", line 221, in _dataReceived

   File "obfsproxy\network\socks5.pyc", line 170, in dataReceived

   File "obfsproxy\network\socks5.pyc", line 242, in processAuthentication

   File "obfsproxy\network\socks5.pyc", line 139, in <lambda>

   File "obfsproxy\network\socks5.pyc", line 328, in processNoAuthRequired

   File "obfsproxy\network\socks5.pyc", line 396, in processRequest

   File "obfsproxy\network\socks5.pyc", line 411, in processCmdConnect

   File "obfsproxy\network\socks.pyc", line 156, in connectClass

   File "obfsproxy\network\network.pyc", line 396, in create_proxy_client

   File "txsocksx\client.pyc", line 12, in <module>

   File "parsley.pyc", line 3, in <module>

   File "ometa\grammar.pyc", line 32, in <module>

   File "ometa\grammar.pyc", line 25, in loadGrammar

 exceptions.IOError: [Errno 2] No such file or directory:
 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip\\ometa\\parsley_termactions.parsley'

 2014-07-26 14:43:15,471 [DEBUG] socks_up_0x2336e50: Connection was lost
 ([Errno 2] No such file or directory:
 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip\\ometa\\parsley_termactions.parsley').
 2014-07-26 14:43:15,471 [DEBUG] socks_up_0x2336e50: Closing connection.
 2014-07-26 14:43:15,471 [DEBUG] circ_0x2348eb8: Tearing down circuit.

 !------------LOG PIECE END---------------!
 }}}


 So, I've looked on the zip file, and I didn't find that file. So, I'have
 downloaded every *.parsley file from here (!https://github.com/python-
 parsley/parsley/tree/master/ometa) and injected them inside obfsproxy.zip,
 into "/ometa/". No lucky, it haven't worked.

 On that moment that I thought a simple idea: Why not create a folder
 "obfsproxy.zip" and extract Obfsproxy's py2exe files to it? I did it, and
 the error was another:


 {{{
 !------------LOG PIECE START---------------!

 2014-07-26 15:17:04,184 [ERROR] Unhandled Error
 Traceback (most recent call last):
   File "twisted\python\log.pyc", line 88, in callWithLogger

   File "twisted\python\log.pyc", line 73, in callWithContext

   File "twisted\python\context.pyc", line 118, in callWithContext

   File "twisted\python\context.pyc", line 81, in callWithContext

 --- <exception caught here> ---
   File "twisted\internet\selectreactor.pyc", line 151, in _doReadOrWrite

   File "twisted\internet\tcp.pyc", line 215, in doRead

   File "twisted\internet\tcp.pyc", line 221, in _dataReceived

   File "obfsproxy\network\socks5.pyc", line 170, in dataReceived

   File "obfsproxy\network\socks5.pyc", line 242, in processAuthentication

   File "obfsproxy\network\socks5.pyc", line 139, in <lambda>

   File "obfsproxy\network\socks5.pyc", line 328, in processNoAuthRequired

   File "obfsproxy\network\socks5.pyc", line 396, in processRequest

   File "obfsproxy\network\socks5.pyc", line 411, in processCmdConnect

   File "obfsproxy\network\socks.pyc", line 156, in connectClass

   File "obfsproxy\network\network.pyc", line 409, in create_proxy_client

   File "twisted\internet\endpoints.pyc", line 42, in <module>

   File "twisted\internet\stdio.pyc", line 28, in <module>

   File "twisted\internet\_win32stdio.pyc", line 15, in <module>

   File "twisted\internet\_pollingfile.pyc", line 104, in <module>

   File "pywintypes.pyc", line 124, in <module>

   File "pywintypes.pyc", line 61, in __import_pywin32_system_module__

 exceptions.ImportError: Module 'pywintypes' isn't in frozen sys.path
 ['C:\\[MyPath]\\TorBrowser\\Tor',
 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip']

 2014-07-26 15:17:04,184 [DEBUG] socks_up_0x23f3d50: Connection was lost
 (Module 'pywintypes' isn't in frozen sys.path
 ['C:\\[MyPath]\\TorBrowser\\Tor',
 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip']).
 2014-07-26 15:17:04,184 [DEBUG] socks_up_0x23f3d50: Closing connection.
 2014-07-26 15:17:04,184 [DEBUG] circ_0x2429d50: Tearing down circuit.

 !------------LOG PIECE END---------------!
 }}}


 After doing some research, I found this link
 (!http://stackoverflow.com/questions/17891071/importerror-with-cx-freeze-
 and-pywin32-module-pythoncom-isnt-in-frozen-sys-p) and a user suggested to
 put pythoncom33.dll on the build directory. I've searched for that file in
 python's directory and found a folder with 3 dll files (pycom27.dll,
 pycomloader27.dll, pywintypes27.dll) in (C:\Python27\Lib\site-
 packages\pywin32_system32). So, thinking on the "put on the build
 directory", I've put these DLL's on my new obfsproxy.zip folder and:


 {{{
 !------------LOG PIECE START---------------!

 2014-07-26 15:22:01,470 [ERROR] Unhandled Error
 Traceback (most recent call last):
   File "twisted\python\log.pyc", line 88, in callWithLogger

   File "twisted\python\log.pyc", line 73, in callWithContext

   File "twisted\python\context.pyc", line 118, in callWithContext

   File "twisted\python\context.pyc", line 81, in callWithContext

 --- <exception caught here> ---
   File "twisted\internet\selectreactor.pyc", line 151, in _doReadOrWrite

   File "twisted\internet\tcp.pyc", line 215, in doRead

   File "twisted\internet\tcp.pyc", line 221, in _dataReceived

   File "obfsproxy\network\socks5.pyc", line 170, in dataReceived

   File "obfsproxy\network\socks5.pyc", line 242, in processAuthentication

   File "obfsproxy\network\socks5.pyc", line 139, in <lambda>

   File "obfsproxy\network\socks5.pyc", line 328, in processNoAuthRequired

   File "obfsproxy\network\socks5.pyc", line 396, in processRequest

   File "obfsproxy\network\socks5.pyc", line 411, in processCmdConnect

   File "obfsproxy\network\socks.pyc", line 156, in connectClass

   File "obfsproxy\network\network.pyc", line 410, in create_proxy_client

   File "txsocksx\client.pyc", line 12, in <module>

   File "parsley.pyc", line 5, in <module>

   File "terml\parser.pyc", line 88, in <module>

   File "ometa\grammar.pyc", line 25, in loadGrammar

 exceptions.IOError: [Errno 2] No such file or directory:
 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip\\terml\\terml.parsley'

 2014-07-26 15:22:01,470 [DEBUG] socks_up_0x2458c30: Connection was lost
 ([Errno 2] No such file or directory:
 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip\\terml\\terml.parsley').
 2014-07-26 15:22:01,470 [DEBUG] socks_up_0x2458c30: Closing connection.
 2014-07-26 15:22:01,470 [DEBUG] circ_0x24751c0: Tearing down circuit.

 !------------LOG PIECE END---------------!
 }}}


 I came back to parsley !GitHub's repository, downloaded all *.parsley
 files from "/terml/", and put them on the obfsproxy.zip folder, and:

 Obfsproxy worked sucessfully with an HTTP Proxy!

 I don't know if my solution is correct, but it's working, which is a great
 advance. Thanks!

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/12381#comment:23>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list