How To
Use the code below in a console app or whatever you prefer to write the key into a unprotected 5065 binary... There key changes every 2 minutes.. So..be quick!
Hint: Server and Client Prefixes are TQServer And TQClient
Code
WebPostRequest
Use the code below in a console app or whatever you prefer to write the key into a unprotected 5065 binary... There key changes every 2 minutes.. So..be quick!
Hint: Server and Client Prefixes are TQServer And TQClient
Code
Code:
public static string GetBlowFish()
{
WebPostRequest request = new WebPostRequest("http://78.47.167.52/readkey.php");
request.Add("size", "111"); //They have changed the post variable..
string s = request.GetResponse();
//This following line is all that they have added regarding encryption
string xordecr = s.Cast<char>().Aggregate("", (current, b) => current + (char) (byte)(b ^ 0xD));
var data = xordecr.Split(' ');
string bfKey = "";
for (int i = 0; i < 16; i++)
{
string real = (int.Parse(data[i]).ToString("X8"));
var hexdata = ConvertHexStringToByteArray(real);
bfKey += (char)hexdata[3];
}
return bfKey;
}
WebPostRequest
Code:
internal class WebPostRequest
{
private WebRequest theRequest;
private HttpWebResponse theResponse;
private ArrayList theQueryData;
public WebPostRequest(string url)
{
theRequest = WebRequest.Create(url);
theRequest.Method = "POST";
theQueryData = new ArrayList();
}
public void Add(string key, string value)
{
theQueryData.Add(String.Format("{0}={1}", key, HttpUtility.UrlEncode(value)));
}
public string GetResponse()
{
theRequest.ContentType = "application/x-www-form-urlencoded";
string Parameters = String.Join("&", (String[]) theQueryData.ToArray(typeof (string)));
theRequest.ContentLength = Parameters.Length;
StreamWriter sw = new StreamWriter(theRequest.GetRequestStream());
sw.Write(Parameters);
sw.Close();
theResponse = (HttpWebResponse) theRequest.GetResponse();
StreamReader sr = new StreamReader(theResponse.GetResponseStream());
return sr.ReadToEnd();
}
}