XBox360 Homebrew Development Wiki
Advertisement

If you want to add network access to your homebrew application, you have to bypass the network encryption by creating an unencrypted socket. Thanks to Jefff from Team XeDEV!

Code

DWORD dwStatus = XNetGetEthernetLinkStatus();

int m_bIsOnline = ( dwStatus & XNET_ETHERNET_LINK_ACTIVE ) != 0;

if( !m_bIsOnline )

  printf("NO ETHERNET LINK ACTIVE\n");

XNetStartupParams xnsp;
memset(&xnsp, 0, sizeof(xnsp));
xnsp.cfgSizeOfStruct = sizeof(XNetStartupParams);
xnsp.cfgFlags = XNET_STARTUP_BYPASS_SECURITY;

INT iResult = XNetStartup( &xnsp );

if( iResult != NO_ERROR )

  printf("XNETSTARTUP ERROR\n");

WSADATA WsaData;
iResult = WSAStartup( MAKEWORD( 2, 2 ), &WsaData );
if( iResult != NO_ERROR )

  printf("WSASTARTUP ERROR\n");

SOCKET server;

sockaddr_in local;
local.sin_family=AF_INET;
local.sin_addr.s_addr=INADDR_ANY;
local.sin_port=htons((u_short)1337);

server=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

if(server==INVALID_SOCKET)
{

  printf( "INVALID SOCKET!\n");

}

// after setting these undocumented flags on a socket they should then run unencrypted
BOOL bBroadcast = TRUE;

if( setsockopt(server, SOL_SOCKET, 0x5802, (PCSTR)&bBroadcast, sizeof(BOOL) ) != 0 )//PATCHED!
{

  printf( "Failed to set socket to 5802, error\n");

}

if( setsockopt(server, SOL_SOCKET, 0x5801, (PCSTR)&bBroadcast, sizeof(BOOL) ) != 0 )//PATCHED!
{

  printf( "Failed to set socket to 5801, error\n");

}

//Socket is now unencrypted, use it as you usually would.
// encryption setup run .bat**

Hi

Advertisement