xboxscene.org forums

Pages: 1 [2] 3 4

Author Topic: Freebsd/linux Version  (Read 192 times)

jhurliman

  • Archived User
  • Newbie
  • *
  • Posts: 27
Freebsd/linux Version
« Reply #15 on: September 06, 2003, 10:17:00 PM »

CVS was already committed, there's a 24 hour lag for the initial CVS update. It's up for :pserver: access now @ http://cvs.sourceforge.net/cgi-bin/viewcvs...xboxlink/xlink/

QSocket controls compile just fine on OSX. And designer 3.2.1 is really the best GUI designer I've found hands down, regardless of the fact it has libraries on all major platforms. The only trick is going to be getting libpcap and wincap in one project. *Hint look at Ethereal*

I'm looking forward to the 2.6 server protocol, maybe that would be a good starting point for collaboration?

This post has been edited by jhurliman: Sep 8 2003, 01:51 AM
Logged

dfunked

  • Archived User
  • Hero Member
  • *
  • Posts: 635
Freebsd/linux Version
« Reply #16 on: September 07, 2003, 12:45:00 AM »

just on the note of XLINK development, I came across developing applications for MSN 6..

http://games.mess.be/

I've already told TD that my leaked MSN6.1 BETA has 'Start XLink Messenger' in the actions section and I have no idea how biggrin.gif It'd be awesome to somehow get XLINK integrated, if only to have it automatically load when an invitation is sent from MSN smile.gif
Logged

jhurliman

  • Archived User
  • Newbie
  • *
  • Posts: 27
Freebsd/linux Version
« Reply #17 on: September 07, 2003, 07:52:00 PM »

QUOTE (sanone @ Sep 1 2003, 02:24 PM)
I was wondering if the source of the XLink client will be made open source so people (like me) can port this great piece of software to other platforms. It would be nice if you can run a deamon on your server so you haven't got to start up windows every time you want to play online...

The developers seemed to be dancing around the issue of making the source code available to porting developers, but the final answer it seems is no. The source code will not be released, but all the information needed to write a replacement is out there so the source code would be of little assistance at this point.

If you are a GPL-friendly developer and ready to prove that OSS coders do it better, do a CVS checkout and get involved. http://www.sourcefor...jects/xboxlink/
Logged

flat235

  • Archived User
  • Sr. Member
  • *
  • Posts: 292
Freebsd/linux Version
« Reply #18 on: September 08, 2003, 08:55:00 AM »

The protocol will be released as soon as is humanely possible.. bear in mind that we're still trying to get our own client totally stable, and that in itself may require substantial changes to the existing protocol...

As soon as I have the information you need, you will have it... until that time, I have recommended a series of objectives which you could try to meet in your code - mainly around lipbcap - which will allow you to just drop the protocol code in when its ready..

Cheers

TD
Logged

jhurliman

  • Archived User
  • Newbie
  • *
  • Posts: 27
Freebsd/linux Version
« Reply #19 on: September 08, 2003, 02:13:00 PM »

Read the open discussion forum on the free xboxlink sourceforge page here: http://sourceforge.n...forum_id=307490

Everything related to reverse engineering the XBox system link protocol OR the xboxlink protocol(s) can be posted there.

Side note: One problem I have with the sourceforge CVS server is the 24 hour lag between :ext: and :pserver: access. Meaning if one of our developers commits something, and I post here and say "functionality X is now implemented!", it might not be available for anonymous or webcvs access for another day. I can live with it for now though, unless I find myself with an excess of spare time and setup CVS/Web/etc locally here.

If you are checking out the code and want to help out, the best thing at this point would be getting it to compile on as many platforms as possible. We need to start with a solid base before getting to the end of the road and realizing compatibility is broken under several different OSes. That means getting it to compile under win32 (we were having some linking problems associated with not setting up MSVC correctly), #ifdefing the pcapture.h/pcapture.cpp files to use winpcap when appropriate, testing the pcap filters under different versions of BSD, OSX and other OSes, and making sure the UI looks fine in OSX and other platforms that handle UI a bit more radically.
Logged

GaMMa

  • Archived User
  • Newbie
  • *
  • Posts: 2
Freebsd/linux Version
« Reply #20 on: September 11, 2003, 04:35:00 PM »

Once the project actually gets closer to completion I'm going to make an ebuild for Gentoo Linux. What an ebuild is, is basically an install script, that gets all the dependencies, installs those and then installs the program. I was going to make one to fetch the cvs and compile it, but I don't have qt 3.21, so I can't test it. Give me a few days and I'll compile it and make an ebuild for you Gentooers. BTW Linux rules!
Logged

jhurliman

  • Archived User
  • Newbie
  • *
  • Posts: 27
Freebsd/linux Version
« Reply #21 on: September 11, 2003, 08:23:00 PM »

smile.gif

------
Initializing packet capture interface
pcapture.o: Using device eth0
*UDP PACKET*
Source MAC: 00:50:F2:35:41:A1
Destination MAC: FF:FF:FF:FF:FF:FF
Source Port: 3074
Destination Port: 3074
Payload: ffffffffffffff4d59832cb8d319da185df77dbbcda491e5f1d69a707f6e24d8ce649c4a1b748ddbd4519e3c4861251b9f4847cb2fb214b320d1410
*UDP PACKET*
Source MAC: 00:50:F2:35:41:A1
Destination MAC: FF:FF:FF:FF:FF:FF
Source Port: 3074
Destination Port: 3074
Payload: ffffffffffffffc260f98bd3127f2237303116399b8097b0f950acaccd33183623dbf52d5d97d7dc7a4a52e7135ea21baa8dd97ed3607e137cf60
*UDP PACKET*
Source MAC: 00:50:F2:35:41:A1
Destination MAC: FF:FF:FF:FF:FF:FF
Source Port: 3074
Destination Port: 3074
Payload: ffffffffffffffdc227e3c611e215b8336afe080e5172f43b26e851c45073fd8b6ceeb932bcc2521aadd9cdf71f16642c37273836bf67c437de00
------

I don't suppose anyone has analyzed the game packet payloads themselves? The tunnelling program is just shipping them across the wire so it doesn't need to know the contents, but it would be interesting.
Logged

T u r b o

  • Archived User
  • Newbie
  • *
  • Posts: 9
Freebsd/linux Version
« Reply #22 on: September 11, 2003, 11:22:00 PM »

A couple things...

My main focus right now is getting something going for OSX.  This has one major barrier that I'm trying to dive into, the ability to spoof the source MAC address in a raw ethernet frame on a stock kernel.

See http://slagheap.net/etherspoof/ for more info.

Apparently it IS possible though, because Virtual PC is able to do it, and xlink in fact works very well under VPC (and makes it much easier to debug/trace on a switched network).

I'm looking into how VPC is doing it now, and I have some test code to do some of what flat235 outlined in another thread that does work.

I'll try to check out cvs@medialinux again tomorrow, anonymous login wasn't enabled when I tried today.

- Mike
Logged

flat235

  • Archived User
  • Sr. Member
  • *
  • Posts: 292
Freebsd/linux Version
« Reply #23 on: September 11, 2003, 11:30:00 PM »

sad.gif ...

But as u say, it can simply be shipped over the net, although certain parts of it can be synthesised by the target machine etc....


TD
Logged

jhurliman

  • Archived User
  • Newbie
  • *
  • Posts: 27
Freebsd/linux Version
« Reply #24 on: September 12, 2003, 11:05:00 AM »

QUOTE (T u r b o @ Sep 12 2003, 08:22 AM)
A couple things...

My main focus right now is getting something going for OSX.  This has one major barrier that I'm trying to dive into, the ability to spoof the source MAC address in a raw ethernet frame on a stock kernel.

See http://slagheap.net/etherspoof/ for more info.

Apparently it IS possible though, because Virtual PC is able to do it, and xlink in fact works very well under VPC (and makes it much easier to debug/trace on a switched network).

I'm looking into how VPC is doing it now, and I have some test code to do some of what flat235 outlined in another thread that does work.

I'll try to check out cvs@medialinux again tomorrow, anonymous login wasn't enabled when I tried today.

- Mike

Libnet.

http://www.packetfac...rojects/Libnet/

Basically we set a pcap callback in the packet capturing code, analyze what to do with it and if necessary call a function in the packet creation code that builds packets from the ground up. Sets the source / destination MAC, source / destination IP, source / destination ports, appends the payload, checksums each frame and sends the packet. Cache grinding has shown that this is done pretty quick; if need be we can rewrite the packet construction in assembly but it doesn't seem necessary. We're trying to avoid LibnetNT since it's based on the 1.0.x API which is completely different than 1.1.x, and the new Libnet (coming out any day now) has full Win32 support. If anyone has luck compiling the current latest release on Windows though, it would be helpful information.
Logged

T u r b o

  • Archived User
  • Newbie
  • *
  • Posts: 9
Freebsd/linux Version
« Reply #25 on: September 12, 2003, 03:49:00 PM »

Sadly libnet doesn't work for injection of packets on OSX.  I'm looking at writing a kext that can do the injection (apparently it can be done in kernel-land but not user-land).

In the mean time I'm thinking an abstraction layer to isolate the packet injection code from the underlying platform (special kext on OSX, libnet on linux/bsd, ??? on windoze?)

Is that cvs stuff up today?

- Mike
Logged

jhurliman

  • Archived User
  • Newbie
  • *
  • Posts: 27
Freebsd/linux Version
« Reply #26 on: September 12, 2003, 04:17:00 PM »

CODE
:pserver:[email protected]:/home/cvsroot


Do you have any references to libnet not working on MacOSX? I've read several posts mentioning it successfully compiles on OSX, and I would be amazed if everything linked together but nothing worked. One note: on *NIX/BSD based systems, xlinkd needs to run with root permissions since it's sniffing/injecting packets at a very low level.
Logged

T u r b o

  • Archived User
  • Newbie
  • *
  • Posts: 9
Freebsd/linux Version
« Reply #27 on: September 12, 2003, 11:05:00 PM »

For clarification, libnet works on OSX for everything except injecting raw ethernet frames, because of a couple of changes that Apple put into the darwin kernel.  It will work with a modified and recompiled kernel, but I'd say that's not an option for most users.

I'm not sure about the legality of distributing a modified kernel binary.

See the site at http://slagheap.net/etherspoof/

for any additional info on the MAC address spoofing limitation in OSX (required for xlink).

- Mike
Logged

jhurliman

  • Archived User
  • Newbie
  • *
  • Posts: 27
Freebsd/linux Version
« Reply #28 on: September 13, 2003, 12:45:00 AM »

QUOTE (T u r b o @ Sep 13 2003, 08:05 AM)
For clarification, libnet works on OSX for everything except injecting raw ethernet frames, because of a couple of changes that Apple put into the darwin kernel.  It will work with a modified and recompiled kernel, but I'd say that's not an option for most users.

I'm not sure about the legality of distributing a modified kernel binary.

See the site at http://slagheap.net/etherspoof/

for any additional info on the MAC address spoofing limitation in OSX (required for xlink).

- Mike

Wow I never realized that. The patch to add ethernet frame building looks very simple, I know little to none about the Apple platforms though. If you could write a module to do the spoofing that would be great, but I don't see how you could override the existing code to make it work flawlessly; it would be an interesting port. It might be worthwhile to contact the Aquaduct ( http://www.postpose.com/aquaduct/ ) team and pick their brain. For right now I think we're going to require a patched kernel for OSX support. Without OSX in front of me to hack on I'll have to wait for someone else to get it figured out.

As far as distributing a modified binary it wouldn't be a problem under the BSD license (unless Apple's using a different license?) as long as you provided the source for all the modifications. I'd be wary of handing people a new kernel; imagine the support issues with people mis-installing and thrashing their system.
Logged

jhurliman

  • Archived User
  • Newbie
  • *
  • Posts: 27
Freebsd/linux Version
« Reply #29 on: September 13, 2003, 02:36:00 PM »

The latest libnet (1.1.1-rc5) comes with a loadable kernel module for FreeBSD and OpenBSD to add ethernet address spoofing. Try downloading the latest version, cd to /Libnet-1.1.1-RC-005/support/bpf-lkm/FreeBSD and try installing that.
Logged
Pages: 1 [2] 3 4