Who did you talk to?At one point we could have executed remote code on 2 TeamSpeak CEOs systems. We are an ethical team though... but having the source would have been cool lol.
Who did you talk to?At one point we could have executed remote code on 2 TeamSpeak CEOs systems. We are an ethical team though... but having the source would have been cool lol.
We talked to Andreas Brillen (EX TeamSpeak Systems GmbH CEO in Krün, Germany), and James Ko (EX Teamspeak Systems Inc CEO in Chula Vista, California). They met us in the official R4P3 TeamSpeak 3 server, both CEOs were on Windows machines with unsafe but at that time current versions of their own software - vulnerable to remote code execution. We could have had remote access to both CEOs laptops or whichever workstations they were using. It is important to note we DID NOT choose to infect the CEOs despite our ability to easily do so.Who did you talk to?
We talked to Andreas Brillen (EX TeamSpeak Systems GmbH CEO in Krün, Germany), and James Ko (EX Teamspeak Systems Inc CEO in Chula Vista, California). They met us in the official R4P3 TeamSpeak 3 server, both CEOs were on Windows machines with unsafe but at that time current versions of their own software - vulnerable to remote code execution. We could have had remote access to both CEOs laptops or whichever workstations they were using. It is important to note we DID NOT choose to infect the CEOs despite our ability to easily do so.
Our meeting discussed their licensing system security, why we research the security of their software, and overall they seemed to be wanting to mine information out of us.
It was evident they did not care about the security of their software and the focus was more on features. The only security the CEOs seemed interested in was more involving DRM-style protection around licensing of their server software to maximize their profits and decrease cracked software. This concern highlights their emphasis on finding ways to make more money by attempting to mitigate piracy. For as much time as they spent on this, they could have been finding other markets to increase sales. People are not going to want to pay for VoIP chat forever and Discord is a clear example of this shift.
Considering both CEOs are no longer with TeamSpeak, I fail to see how any of their past CEOs have been fully invested into the company.
This is another red flag that TeamSpeak is going down. They are playing the "blame our CEO game" I am guessing. If the company is not making more money, just swap out the CEO. This is a traditional approach that eventually will be exhaustive and deplete their resources.
From what I have heard no one has access to TeamSpeak 5 still. Kind of hard to get what does not exist.. maybe one day TeamSpeak 5 will be more than a couple pictures of puzzle pieces.still no ts5 keys for you guys
Thats wrong. Devs and Alpha tester already use ts5.From what I have heard no one has access to TeamSpeak 5 still. Kind of hard to get what does not exist.. maybe one day TeamSpeak 5 will be more than a couple pictures of puzzle pieces.
Devs and Alpha tester already use ts5
That's not so hard to create new VOIP. First working version can be created by one person who know network programming in c++/c#...I don't think it would be a good idea to buy TeamSpeak. It would be a waste of money. Do you really want to give money to those people?
You could just use that money to start something new from scratch. If it's good enough people will come. It could be the spiritual Successor to TeamSpeak.
That's not so hard to create new VOIP. First working version can be created by one person who know network programming in c++/c#...
one person who know network programming
An asynchronous client socket does not suspend the application while waiting for network operations to complete. Instead, it uses the standard .NET Framework asynchronous programming model to process the network connection on one thread while the application continues to run on the original thread.
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
// State object for reading client data asynchronously
public class StateObject {
// Client socket.
public Socket workSocket = null;
// Size of receive buffer.
public const int BufferSize = 1024;
// Receive buffer.
public byte[] buffer = new byte[BufferSize];
// Received data string.
public StringBuilder sb = new StringBuilder();
}
public class AsynchronousSocketListener {
// Thread signal.
public static ManualResetEvent allDone = new ManualResetEvent(false);
public AsynchronousSocketListener() {
}
public static void StartListening() {
// Data buffer for incoming data.
byte[] bytes = new Byte[1024];
// Establish the local endpoint for the socket.
// The DNS name of the computer
// running the listener is "host.contoso.com".
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);
// Create a TCP/IP socket.
Socket listener = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp );
// Bind the socket to the local endpoint and listen for incoming connections.
try {
listener.Bind(localEndPoint);
listener.Listen(100);
while (true) {
// Set the event to nonsignaled state.
allDone.Reset();
// Start an asynchronous socket to listen for connections.
Console.WriteLine("Waiting for a connection...");
listener.BeginAccept(
new AsyncCallback(AcceptCallback),
listener );
// Wait until a connection is made before continuing.
allDone.WaitOne();
}
} catch (Exception e) {
Console.WriteLine(e.ToString());
}
Console.WriteLine("\nPress ENTER to continue...");
Console.Read();
}
public static void AcceptCallback(IAsyncResult ar) {
// Signal the main thread to continue.
allDone.Set();
// Get the socket that handles the client request.
Socket listener = (Socket) ar.AsyncState;
Socket handler = listener.EndAccept(ar);
// Create the state object.
StateObject state = new StateObject();
state.workSocket = handler;
handler.BeginReceive( state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(ReadCallback), state);
}
public static void ReadCallback(IAsyncResult ar) {
String content = String.Empty;
// Retrieve the state object and the handler socket
// from the asynchronous state object.
StateObject state = (StateObject) ar.AsyncState;
Socket handler = state.workSocket;
// Read data from the client socket.
int bytesRead = handler.EndReceive(ar);
if (bytesRead > 0) {
// There might be more data, so store the data received so far.
state.sb.Append(Encoding.ASCII.GetString(
state.buffer,0,bytesRead));
// Check for end-of-file tag. If it is not there, read
// more data.
content = state.sb.ToString();
if (content.IndexOf("<EOF>") > -1) {
// All the data has been read from the
// client. Display it on the console.
Console.WriteLine("Read {0} bytes from socket. \n Data : {1}",
content.Length, content );
// Echo the data back to the client.
Send(handler, content);
} else {
// Not all data received. Get more.
handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(ReadCallback), state);
}
}
}
private static void Send(Socket handler, String data) {
// Convert the string data to byte data using ASCII encoding.
byte[] byteData = Encoding.ASCII.GetBytes(data);
// Begin sending the data to the remote device.
handler.BeginSend(byteData, 0, byteData.Length, 0,
new AsyncCallback(SendCallback), handler);
}
private static void SendCallback(IAsyncResult ar) {
try {
// Retrieve the socket from the state object.
Socket handler = (Socket) ar.AsyncState;
// Complete sending the data to the remote device.
int bytesSent = handler.EndSend(ar);
Console.WriteLine("Sent {0} bytes to client.", bytesSent);
handler.Shutdown(SocketShutdown.Both);
handler.Close();
} catch (Exception e) {
Console.WriteLine(e.ToString());
}
}
public static int Main(String[] args) {
StartListening();
return 0;
}
}
Looks like you have been doing some researchYeah, the difficulty here is really not "out of this world".
It is just a matter of getting a client/server built to connect multiple clients, with asynchronous socket handling.
From there, you are now capturing voice data via microphone input - here is another example.
You will want to be encoding your audio also. There are other ways to encode audio in C#. Older stuff here. Concentus was last updated in 2017, so be careful. P/Opus is a .NET library written in C# to wrap around the libopus C API/library to provide a more .NET friendly way of encoding and decoding Opus packets.
View attachment 2024
From there, you are going to be streaming your encoded audio over to the other clients for the information to be decoded and played. If you really think about what a VoIP client/server build looks like, this is pretty basic shit.. just takes time.
Code:using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; // State object for reading client data asynchronously public class StateObject { // Client socket. public Socket workSocket = null; // Size of receive buffer. public const int BufferSize = 1024; // Receive buffer. public byte[] buffer = new byte[BufferSize]; // Received data string. public StringBuilder sb = new StringBuilder(); } public class AsynchronousSocketListener { // Thread signal. public static ManualResetEvent allDone = new ManualResetEvent(false); public AsynchronousSocketListener() { } public static void StartListening() { // Data buffer for incoming data. byte[] bytes = new Byte[1024]; // Establish the local endpoint for the socket. // The DNS name of the computer // running the listener is "host.contoso.com". IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); IPAddress ipAddress = ipHostInfo.AddressList[0]; IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000); // Create a TCP/IP socket. Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp ); // Bind the socket to the local endpoint and listen for incoming connections. try { listener.Bind(localEndPoint); listener.Listen(100); while (true) { // Set the event to nonsignaled state. allDone.Reset(); // Start an asynchronous socket to listen for connections. Console.WriteLine("Waiting for a connection..."); listener.BeginAccept( new AsyncCallback(AcceptCallback), listener ); // Wait until a connection is made before continuing. allDone.WaitOne(); } } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.WriteLine("\nPress ENTER to continue..."); Console.Read(); } public static void AcceptCallback(IAsyncResult ar) { // Signal the main thread to continue. allDone.Set(); // Get the socket that handles the client request. Socket listener = (Socket) ar.AsyncState; Socket handler = listener.EndAccept(ar); // Create the state object. StateObject state = new StateObject(); state.workSocket = handler; handler.BeginReceive( state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state); } public static void ReadCallback(IAsyncResult ar) { String content = String.Empty; // Retrieve the state object and the handler socket // from the asynchronous state object. StateObject state = (StateObject) ar.AsyncState; Socket handler = state.workSocket; // Read data from the client socket. int bytesRead = handler.EndReceive(ar); if (bytesRead > 0) { // There might be more data, so store the data received so far. state.sb.Append(Encoding.ASCII.GetString( state.buffer,0,bytesRead)); // Check for end-of-file tag. If it is not there, read // more data. content = state.sb.ToString(); if (content.IndexOf("<EOF>") > -1) { // All the data has been read from the // client. Display it on the console. Console.WriteLine("Read {0} bytes from socket. \n Data : {1}", content.Length, content ); // Echo the data back to the client. Send(handler, content); } else { // Not all data received. Get more. handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state); } } } private static void Send(Socket handler, String data) { // Convert the string data to byte data using ASCII encoding. byte[] byteData = Encoding.ASCII.GetBytes(data); // Begin sending the data to the remote device. handler.BeginSend(byteData, 0, byteData.Length, 0, new AsyncCallback(SendCallback), handler); } private static void SendCallback(IAsyncResult ar) { try { // Retrieve the socket from the state object. Socket handler = (Socket) ar.AsyncState; // Complete sending the data to the remote device. int bytesSent = handler.EndSend(ar); Console.WriteLine("Sent {0} bytes to client.", bytesSent); handler.Shutdown(SocketShutdown.Both); handler.Close(); } catch (Exception e) { Console.WriteLine(e.ToString()); } } public static int Main(String[] args) { StartListening(); return 0; } }
Socket Programming multiple client one server
I am just starting out Socket Programming in C# and am now a bit stuck with this problem. How do you handle multiple clients on a single server without creating a thread for each client? The onestackoverflow.com
Other references:
http://csharp.net-informations.com/communications/csharp-multi-threaded-server-socket.htm
https://www.codeproject.com/Articles/511814/Multi-client-per-one-server-socket-programming-in
https://social.msdn.microsoft.com/F.../c-tcpip-multiple-clients?forum=csharpgeneral
https://gist.github.com/leandrosilva/656054
https://codereview.stackexchange.com/questions/100434/multithreaded-client-server-socket
https://www.geeksforgeeks.org/socket-programming-in-c-sharp/
https://www.experts-exchange.com/qu...king-in-C-one-Server-to-multiple-clients.html
https://www.dreamincode.net/forums/topic/180149-c#-servermulti-client/
For encryption, use something like this https://gist.github.com/jbtule/4336842 I mean you will have to figure how to wrap all the voice/text/etc in BouncyCastle for C#.
If you want to get this project started, I am willing to take the lead or help wherever I can... just reply here!?!
No, that was 10 minutes in Google.Looks like you have been doing some research
We still have no pictures/video of the client?the alpha versions
We still have no pictures/video of the client?
Kind of strange there are only a few users tossing around some version numbers as proof.
Not allowed to post what? They could have explained why the idiot that announced Teamspeak 5 in 2018 is still working on Teamspeak, for example.They are obviously not allowed to post pictures / videos for any reason
The only proof we have that there is a TeamSpeak 5 client, and that it is being worked on are the versions.
Not allowed to post what? They could have explained why the idiot that announced Teamspeak 5 in 2018 is still working on Teamspeak, for example.
Or stop promising things you do not have prepared.
Or stop competing on Twitter against Discord and other Apps, and focus on their fucking mobile application for example, which is disgusting.
I'm a Teamspeak fan, but when something is wrong, it has to be said as it is.
One monkey can work better that the marketing by TeamspeakI know for a fact that people have lost their jobs at TeamSpeak that i personally knew.
It's not like TeamSpeak is not doing anything, they just don't tell us and that's the problem aka no communication with their community.
They do a lot of things, maybe not the best decision like updating the Merchandise website or add new picture in the Merch store like idk man.
But they do Stuff we just don't always know what!
They changed CEOs, no one knew!But they do Stuff we just don't always know what!
Forgive me for being that negative but TeamSpeak has given us little reason to believe in their marketing promises.
The #1 mistake is not talking to your users. The most important thing to do at a startup is set up a fast feedback cycle and get on the path of constant improvement. The #2 mistake is not hustling enough. You should not expect building a company to be easy. If you expect to be successful, your company has to be your #1 priority at basically all times, above friends, fun, sleep, significant others, etc. If something comes up, it is your responsibility to get it done.
hiring bad people
hiring people too early
hiring people too late
lying to yourself
not being prepared for hardship
getting caught up in startup pageantry
not shipping enough
focusing on competitors
not protecting an early culture of getting shit done
being too focused on fundraising