将tsocks移植到OS X cocoa

时间:2014-04-30 16:02:00

标签: objective-c c macos sockets proxy

我遇到了一个小问题:tsocks仅适用于使用POSIX api在OS X上连接的程序。我已经成功编写了一个小库,用socks5取代了POSIX connect调用包装器采用tsocks的样式。

现在我有一个程序(特别是Spotify Installer),它使用OS X cocoa GCD api进行连接。我想代理那个。

这是我所拥有的:

调用链有点长,但这是其中的一部分:

* frame #0: 0x00007fff894e7e93 libsystem_network.dylib`tcp_connection_create
frame #1: 0x00007fff83f776cf CFNetwork`SocketStream::startTCPConnection_Host(__CFHost*, __CFNumber const*) + 767
...
frame #3: 0x00007fff83f746ff CFNetwork`SocketStream::open(void const*, CFStreamError*, unsigned char*) + 295
....
frame #9: 0x00007fff83fa3e7a CFNetwork`HTTPWriteFilter::_streamImpl_Open(CFStreamError*, unsigned char*) + 200
....
frame #12: 0x00007fff83fa3d79 CFNetwork`NetConnection::openConnectionStreams() + 39
...
frame #18: 0x00007fff83fa31d9 CFNetwork`HTTPProtocol::openStream() + 255
....
frame #34: 0x00007fff8d7ae967 Foundation`+[NSURLConnection(Loader) _resourceLoadLoop:] + 348
frame #35: 0x00007fff8d7ae76b Foundation`__NSThread__main__ + 1318

现在我可以拦截tcp_connection_create,但我无法找到任何关于函数参数的文档。

我在哪里可以找到tcp_connection_create的prototye /参数类型?有任何来源吗? 还是有更好的方法。我知道这不会进一步调用socket / connect

0 个答案:

没有答案