[tor-bugs] #10006 [Pluggable transport]: Build an obfs-flash PT bundle

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Oct 30 04:04:49 UTC 2013


#10006: Build an obfs-flash PT bundle
-------------------------------------+-------------------
     Reporter:  dcf                  |      Owner:  dcf
         Type:  task                 |     Status:  new
     Priority:  normal               |  Milestone:
    Component:  Pluggable transport  |    Version:
   Resolution:                       |   Keywords:
Actual Points:                       |  Parent ID:  #7167
       Points:                       |
-------------------------------------+-------------------

Comment (by dcf):

 Replying to [comment:18 infinity0]:
 > Oh, one thing, you should use [https://github.com/infinity0/obfs-
 flash/commit/14f5823a0965b29aa8b41682295b1a75ab78c152 this commit] of
 obfs-flash. (I realise this is a bit untidy, suggestions for alternatives
 are welcome.)

 It works for me from the command line as in comment:5. But it doesn't work
 in the bundle. In the Vidalia message log, I see obfs-flash-client emit
 "VERSION 1" but nothing else. I see it stop running after that. It doesn't
 seem to be spawning its subprocesses (or if it is, it's doing it so fast I
 can't see it in Process Explorer).
 {{{
 Traceback (most recent call last):
   File "obfs-flash-client", line 318, in <module>
   File "obfs-flash-client", line 313, in main
   File "obfs-flash-client", line 263, in obfs3_flashproxy
   File "obfs-flash-client", line 229, in pt_launch_child
   File "pyptlib\util\subproc.pyc", line 121, in __init__
 pywintypes.error: (5, 'AssignProcessToJobObject', 'Access is denied.')
 Error in atexit._run_exitfuncs:
 Traceback (most recent call last):
   File "atexit.pyc", line 24, in _run_exitfuncs
   File "pyptlib\util\subproc.pyc", line 297, in killall
   File "twisted\internet\base.pyc", line 582, in stop
 ReactorNotRunning: Can't stop reactor that isn't running.
 Error in sys.exitfunc:
 Traceback (most recent call last):
   File "atexit.pyc", line 24, in _run_exitfuncs
   File "pyptlib\util\subproc.pyc", line 297, in killall
   File "twisted\internet\base.pyc", line 582, in stop
 twisted.internet.error.ReactorNotRunning: Can't stop reactor that isn't
 running.
 }}}
 I guess this is what you were referring to in comment:17, the same as in
 [http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/71c9599e-
 a3d5-4b79-bfc1-1800565c5b8a/assignprocesstojobobject-always-return-access-
 denied-on-vista?forum=windowssecurity this discussion]:
   "On Vista, the Program Compatibility Assistant was added to help
 diagnose application compatibility problems. To allow us to accurately
 monitor applications, we leverage job objects for a certain class of
 applications. Specifically, this class of applications include anything
 launched from the Windows shell. Applications launched from a command-
 prompt are excluded."
 (That explains why it works from the command line but not when you double-
 click.) Also from that page:
   "If the application is marked with a UAC manifest, the application will
 be excluded permanently from the Program Compatibility Assistant."
 Taking that advice, I tried adding a manifest to obfs-flash-client by
 adding this to setup.exe:
 {{{
  setup(
 -    console=["obfs-flash-client"],
 +    console=[{
 +        "script": "obfs-flash-client",
 +        "uac_info": "asInvoker",
 +    }],
 }}}
 It seems to properly embed the manifest (I can run `mt.exe -inputresource
 :obfs-flash-client.exe -out:obfs-flash-client.manifest`), but I get the
 same access error as before. Maybe flashproxy-client and obfsproxy need
 manifests too? I didn't try that. I also tried changing to `"uac_info":
 "requireAdministrator"`--it causes a little shield to appear on the obfs-
 flash-client.exe icon, and Tor fails to launch it with
 {{{
 Warning: Managed proxy at 'App\obfs-flash-client' failed at launch.
 }}}

 It seems like we're on the right track. Are you able to test embedding a
 manifest in flashproxy-client and obfsproxy? That's the next thing I'd
 try. Then you have to test it some way that doesn't involve running it
 from the command line (like building a wrapper that sets environment
 variables and runs obfs-flash-client).

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


More information about the tor-bugs mailing list