This post is by a banned member (Fraudlash) - Unhide
OP 17 January, 2020 - 06:38 PM
(This post was last modified: 30 July, 2022 - 01:46 PM by Fraudlash. Edited 2 times in total.)
Reply
Cracked.to Authentication Documentation
- Why to implement our Auth system in your releases?
Adding our auth system would make your release available only for cracked.to members that has access to it from cracked.to/auth.php and would couln your release as an exclusive for our forum.
- How to implement the auth system in my code?
Well this is what we will be trying to breakout in this documentation and of course if you got any questions feel free to contact us through pm.
- Is it only for C#/Python? What about the other languages?
Our auth can be used anywhere no matter what's the program coded on, but for now over this thread we will be only providing support for C#/Python based apps. More languages would be added later.
- Is this system going to protect my releases from being cracked?
Actually no our auth would be useless if your program isn't protected properly, as if it's not then reversers would be able to just edit your release and completely remove the whole system code.
[-] For C# Based Apps:
First of all you can say that we got 2 types of authentications, one for the normal users and the second for upgraded users (and that can be premium+ or infinity+ or supreme+). But the code is pretty much the same, it's all about a check that would determine wither the user is upgraded or not.
Ok so without any further talk let's jump to the codenz
PlebAuth.cs: https://github.com/Pyhoma69/Crackedto-Au...lebAuth.cs
UpgradedAuth.cs: https://github.com/Pyhoma69/Crackedto-Au...dedAuth.cs
So all what you gonna do is to add that code to your project. Then on the start of your program which is in this case the Main() void, the first to do is to call the login void by doing it like this `CrackedAuth.Auth.login();`
And that's it! your program should be now linked to our auth system. If you're facing issues with the System.Management functions then just make sure to add it to your project references.
Added 2 files, one for the upgraded and the other one is normal so just pick whatever auth you want. For the upgraded simply play with the ids in the list to lift ranks, explained by comments in the src
[-] For Python Based Apps:
Same story for python, here is the authentication code to be used:
Upgraded Auth: https://github.com/Pyhoma69/Crackedto-Au...dedAuth.py
Pleb Auth: https://github.com/Pyhoma69/Crackedto-Au...lebAuth.py
so just make an auth.py in the same folder as your main.py code and add this in top of your main.py code:
```
import requests
import json
import uuid
import os
from Auth import ctoauth
```
After that call `ctoauth()` on the start of your program and here is it linked with our auth system. Please keep in mind that you gonna need to install few libraries using pip to get our code working, also as you can see the code is adapted for python 3+ Versions, so if you're using Python 2+ Versions you might need to tweak it a bit to work correctly.
It's checking if the user is upgraded or not too, if you wanna get rid of that then just remove all the codes between `Upgraded users check starts here` and `Upgraded users check ends here`
[-] Added Rust, C PlusPlus and NodeJS implementations!
Repository with all the codes: https://github.com/Pyhoma69/Crackedto-Auth
Ad space by @ Dav expires 2/14/2024
SELLING THIS MIDDLE SPOT CONTACT @ Liars FOR PRICING
SELLING THIS BOTTOM SPOT CONTACT @ Liars FOR PRICING
AD BY @ expires 13th November
This post is by a banned member (CODE404) - Unhide
23 January, 2020 - 07:11 PM
Reply
Dear @ForlaxPy can you give me an example of python auth? Thank you!
LIKE MY THREAD.
⚠️ LEECHER WILL REPORT AND GET BANNED.
Give me a like to get more HQ Content.
This post is by a banned member (Fraudlash) - Unhide
OP 23 January, 2020 - 08:40 PM
Reply
(23 January, 2020 - 07:11 PM)Map_Kh Wrote: Show MoreDear @ForlaxPy can you give me an example of python auth? Thank you!
Sure so basically by the start you should have 2files over your project folder (auth.py where you gonna put the py auth script we provided in this thread, AppleMusic in my case this is main program it can be anything for you).
Then add the imports we proved as well in the top of your project and call ctoauth() before the startup of your main code like this:
Ad space by @ Dav expires 2/14/2024
SELLING THIS MIDDLE SPOT CONTACT @ Liars FOR PRICING
SELLING THIS BOTTOM SPOT CONTACT @ Liars FOR PRICING
AD BY @ expires 13th November
This post is by a banned member (CODE404) - Unhide
23 January, 2020 - 09:53 PM
Reply
I got some error. please kindly give me some advice. Thank you
LIKE MY THREAD.
⚠️ LEECHER WILL REPORT AND GET BANNED.
Give me a like to get more HQ Content.
This post is by a banned member (Fraudlash) - Unhide
OP 24 January, 2020 - 05:25 AM
Reply
(23 January, 2020 - 09:53 PM)Map_Kh Wrote: Show MoreI got some error. please kindly give me some advice. Thank you
Please kindly disable any web debuggers if you got em running such as fiddler/http debugger.
Ad space by @ Dav expires 2/14/2024
SELLING THIS MIDDLE SPOT CONTACT @ Liars FOR PRICING
SELLING THIS BOTTOM SPOT CONTACT @ Liars FOR PRICING
AD BY @ expires 13th November
This post is by a banned member (De1dara) - Unhide
10 March, 2020 - 09:11 PM
Reply
Hey could u do same example but for C#
Thanks
This post is by a banned member (RedirectMe) - Unhide
21 March, 2020 - 02:25 PM
Reply
There is the Auth class posted by @ ForlaxPy
Link: https://pastr.io/view/rZNQzLsrJTy
Show ContentSpoiler:
Code:
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;
using System.Diagnostics;
using System.Linq;
using System.Management;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Reflection;
namespace CrackedAuth
{
internal class Auth
{
public static void login()
{
string KEY = "";
if (File.Exists("key.dat"))
{
KEY = File.ReadAllText("key.dat");
}
else
{
Console.WriteLine("Cracked.to auth? ");
KEY = Console.ReadLine();
}
string text = null;
if (string.IsNullOrEmpty(text))
{
foreach (DriveInfo driveInfo in DriveInfo.GetDrives())
{
if (driveInfo.IsReady)
{
text = driveInfo.RootDirectory.ToString();
break;
}
}
}
if (!string.IsNullOrEmpty(text) && text.EndsWith(":\\"))
{
text = text.Substring(0, text.Length - 2);
}
string str;
using (ManagementObject managementObject = new ManagementObject("win32_logicaldisk.deviceid=\"" + text + ":\""))
{
managementObject.Get();
str = managementObject["VolumeSerialNumber"].ToString();
}
HttpWebRequest httpWebRequest = WebRequest.Create("https://cracked.to/auth.php") as HttpWebRequest;
httpWebRequest.Proxy = null;
HttpWebRequest httpWebRequest2 = httpWebRequest;
httpWebRequest2.ServerCertificateValidationCallback = (RemoteCertificateValidationCallback)Delegate.Combine(httpWebRequest2.ServerCertificateValidationCallback, new RemoteCertificateValidationCallback((object obj, X509Certificate cert, X509Chain ssl, SslPolicyErrors error) => (cert as X509Certificate2).Verify()));
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.Method = "POST";
byte[] bytes = Encoding.UTF8.GetBytes("a=auth&k=" + KEY + "&hwid=" + str);
httpWebRequest.ContentLength = (long)bytes.Length;
using (Stream requestStream = httpWebRequest.GetRequestStream())
{
requestStream.Write(bytes, 0, bytes.Length);
}
string json = new StreamReader(((HttpWebResponse)httpWebRequest.GetResponse()).GetResponseStream()).ReadToEnd();
Dictionary<string, object> dictionary = (Dictionary<string, object>)Json.Deserialize(json);
TextInfo textInfo = new CultureInfo("en-US", false).TextInfo;
if (dictionary.ContainsKey("error"))
{
Console.Write(DateTime.Now.ToString("[hh:mm:ss] "));
Console.Write("| ");
Console.Write(textInfo.ToTitleCase(dictionary["error"] as string) + ".\n\n");
Console.ReadKey();
if (File.Exists("key.dat"))
{
File.Delete("key.dat");
}
Thread.Sleep(5000);
Environment.Exit(0);
return;
}
//Upgraded User Check Starts here.
if (!new string[]
{
"11", //this is premium id
"12", // this is supreme id
"93", // this is infinity id
"96",
"97",
"99",
"100",
"101",
"4",
"3",
"6",
"94",
"92"
}.Any((string t) => t == dictionary["group"] as string))
{
Process.Start("http://cracked.to/upgrade.php");
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("You have to be at least Premium+ to be able to use this tool. Press any key to continue to the forum page");
if (File.Exists("key.dat"))
{
File.Delete("key.dat");
}
Thread.Sleep(5000);
Environment.Exit(0);
}
//Upgraded User Check Ends here.
Console.Write("Auth Granted. Welcome " + (dictionary["username"] as string) + "\n\n");
File.WriteAllText("key.dat", KEY);
Thread.Sleep(2000);
}
}
public static class Json
{
public static object Deserialize(string json)
{
if (json == null)
{
return null;
}
return Json.Parser.Parse(json);
}
private sealed class Parser : IDisposable
{
public static bool IsWordBreak(char c)
{
return char.IsWhiteSpace(c) || "{}[],:\"".IndexOf(c) != -1;
}
private Parser(string jsonString)
{
this.json = new StringReader(jsonString);
}
public static object Parse(string jsonString)
{
object result;
using (Json.Parser parser = new Json.Parser(jsonString))
{
result = parser.ParseValue();
}
return result;
}
public void Dispose()
{
this.json.Dispose();
this.json = null;
}
private Dictionary<string, object> ParseObject()
{
Dictionary<string, object> dictionary = new Dictionary<string, object>();
this.json.Read();
for (; ; )
{
Json.Parser.TOKEN nextToken = this.NextToken;
if (nextToken == Json.Parser.TOKEN.NONE)
{
goto IL_54;
}
if (nextToken == Json.Parser.TOKEN.CURLY_CLOSE)
{
break;
}
if (nextToken != Json.Parser.TOKEN.COMMA)
{
string text = this.ParseString();
if (text == null)
{
goto IL_56;
}
if (this.NextToken != Json.Parser.TOKEN.COLON)
{
goto IL_58;
}
this.json.Read();
dictionary[text] = this.ParseValue();
}
}
return dictionary;
IL_54:
return null;
IL_56:
return null;
IL_58:
return null;
}
private List<object> ParseArray()
{
List<object> list = new List<object>();
this.json.Read();
bool flag = true;
while (flag)
{
Json.Parser.TOKEN nextToken = this.NextToken;
if (nextToken == Json.Parser.TOKEN.NONE)
{
return null;
}
if (nextToken != Json.Parser.TOKEN.SQUARED_CLOSE)
{
if (nextToken != Json.Parser.TOKEN.COMMA)
{
object item = this.ParseByToken(nextToken);
list.Add(item);
}
}
else
{
flag = false;
}
}
return list;
}
private object ParseValue()
{
Json.Parser.TOKEN nextToken = this.NextToken;
return this.ParseByToken(nextToken);
}
private object ParseByToken(Json.Parser.TOKEN token)
{
switch (token)
{
case Json.Parser.TOKEN.CURLY_OPEN:
return this.ParseObject();
case Json.Parser.TOKEN.SQUARED_OPEN:
return this.ParseArray();
case Json.Parser.TOKEN.STRING:
return this.ParseString();
case Json.Parser.TOKEN.NUMBER:
return this.ParseNumber();
case Json.Parser.TOKEN.TRUE:
return true;
case Json.Parser.TOKEN.FALSE:
return false;
case Json.Parser.TOKEN.NULL:
return null;
}
return null;
}
private string ParseString()
{
StringBuilder stringBuilder = new StringBuilder();
this.json.Read();
bool flag = true;
while (flag && this.json.Peek() != -1)
{
char nextChar = this.NextChar;
if (nextChar != '"')
{
if (nextChar != '\\')
{
stringBuilder.Append(nextChar);
}
else if (this.json.Peek() == -1)
{
flag = false;
}
else
{
nextChar = this.NextChar;
if (nextChar <= '\\')
{
if (nextChar == '"' || nextChar == '/' || nextChar == '\\')
{
stringBuilder.Append(nextChar);
}
}
else if (nextChar <= 'f')
{
if (nextChar != 'b')
{
if (nextChar == 'f')
{
stringBuilder.Append('\f');
}
}
else
{
stringBuilder.Append('\b');
}
}
else if (nextChar != 'n')
{
switch (nextChar)
{
case 'r':
stringBuilder.Append('\r');
break;
case 't':
stringBuilder.Append('\t');
break;
case 'u':
{
char[] array = new char[4];
for (int i = 0; i < 4; i++)
{
array[i] = this.NextChar;
}
stringBuilder.Append((char)Convert.ToInt32(new string(array), 16));
break;
}
}
}
else
{
stringBuilder.Append('\n');
}
}
}
else
{
flag = false;
}
}
return stringBuilder.ToString();
}
private object ParseNumber()
{
string nextWord = this.NextWord;
if (nextWord.IndexOf('.') == -1)
{
long num;
long.TryParse(nextWord, NumberStyles.Any, CultureInfo.InvariantCulture, out num);
return num;
}
double num2;
double.TryParse(nextWord, NumberStyles.Any, CultureInfo.InvariantCulture, out num2);
return num2;
}
private void EatWhitespace()
{
while (char.IsWhiteSpace(this.PeekChar))
{
this.json.Read();
if (this.json.Peek() == -1)
{
break;
}
}
}
private char PeekChar
{
get
{
return Convert.ToChar(this.json.Peek());
}
}
private char NextChar
{
get
{
return Convert.ToChar(this.json.Read());
}
}
private string NextWord
{
get
{
StringBuilder stringBuilder = new StringBuilder();
while (!Json.Parser.IsWordBreak(this.PeekChar))
{
stringBuilder.Append(this.NextChar);
if (this.json.Peek() == -1)
{
break;
}
}
return stringBuilder.ToString();
}
}
private Json.Parser.TOKEN NextToken
{
get
{
this.EatWhitespace();
if (this.json.Peek() == -1)
{
return Json.Parser.TOKEN.NONE;
}
char peekChar = this.PeekChar;
if (peekChar <= '[')
{
switch (peekChar)
{
case '"':
return Json.Parser.TOKEN.STRING;
case '#':
case '$':
case '%':
case '&':
case '\'':
case '(':
case ')':
case '*':
case '+':
case '.':
case '/':
break;
case ',':
this.json.Read();
return Json.Parser.TOKEN.COMMA;
case '-':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
return Json.Parser.TOKEN.NUMBER;
case ':':
return Json.Parser.TOKEN.COLON;
default:
if (peekChar == '[')
{
return Json.Parser.TOKEN.SQUARED_OPEN;
}
break;
}
}
else
{
if (peekChar == ']')
{
this.json.Read();
return Json.Parser.TOKEN.SQUARED_CLOSE;
}
if (peekChar == '{')
{
return Json.Parser.TOKEN.CURLY_OPEN;
}
if (peekChar == '}')
{
this.json.Read();
return Json.Parser.TOKEN.CURLY_CLOSE;
}
}
string nextWord = this.NextWord;
if (nextWord == "false")
{
return Json.Parser.TOKEN.FALSE;
}
if (nextWord == "true")
{
return Json.Parser.TOKEN.TRUE;
}
if (!(nextWord == "null"))
{
return Json.Parser.TOKEN.NONE;
}
return Json.Parser.TOKEN.NULL;
}
}
private const string WORD_BREAK = "{}[],:\"";
private StringReader json;
private enum TOKEN
{
NONE,
CURLY_OPEN,
CURLY_CLOSE,
SQUARED_OPEN,
SQUARED_CLOSE,
COLON,
COMMA,
STRING,
NUMBER,
TRUE,
FALSE,
NULL
}
}
}
}
You just need to implement the class to your C# program, and then call the login() method.
Note: This class has been designed for an Console C# Applicatio, if you need to implement this in a GUI app , you will have to change the way you get the auth KEY from the user (And mofify text output of the app)
This post is by a banned member (RedirectMe) - Unhide
28 March, 2020 - 05:09 PM
(This post was last modified: 28 March, 2020 - 05:16 PM by RedirectMe.)
Reply
@ ForlaxPy Normal user who have acces to the auth key but not upgraded is "1" or ?
Write this in the doc please
EDIT: Double post, sorry
EDIT OF THE EDIT: I'am so retarded, we can just delete de check upgrade. Sorry for useless ping
Code:
if (!new string[]
{
"11", //this is premium id
"12", // this is supreme id
"93", // this is infinity id
"96",
"97",
"99",
"100",
"101",
"4",
"3",
"6",
"94",
"92"
}
|