Исходник Loader For Your (Paste)Cheat + Web Server

  • Автор темы Автор темы r9x
  • Дата начала Дата начала
pro master
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
8 Июн 2020
Сообщения
235
Реакции
86
---@Credits to fsalinas26
I did just a little bit of redesign to it and added some other stuff :D | No injection.

Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.
(No vt, it's a source)
Пожалуйста, авторизуйтесь для просмотра ссылки.


Documentation Down Below!

Your API_TOKEN is declared in config.json and should be a random string of characters strictly for admin access.

Database Commands
These are a list of
Пожалуйста, авторизуйтесь для просмотра ссылки.
that can be performed on the database to insert, modify, or delete table entries. You can test most of these functions in Server.js or also use a REST Client to test the HTTP Request (use /admin route to bypass encryption). I plan on adding some kind of Admin Panel built into the menu to have control of all these callbacks

Each command will take the form:

Код:
Expand Collapse Copy
module.exports = {
name:"login", //the command name to be reference in the request ex. {"command": "login"}
adminOnly: false, //declare if the function can be only accessed with API Token
execute(db,body,out_obj,adminMode){//see below

db is the working sqlite database.
body is the incoming request body (JSON Object).
out_obj is the outgoing response JSON object (Use this to pass any data from the database to your client)
adminMode When true, certain commands will not have cooldown/argument restrictions (resethwid, resetpw)

ChangePassword.js
Nameresetpw
bodyusername, license, newPassword
Changes the password of the table entry where both username and license are found.​


ChangeRank.js (Admin Only)
Namerank
body
username,newRank​
Changes the rank of the table entry where username is found.​


CreateDB.js (Admin Only) **
Namecreate
This function should only be called once if you want to create a new database.​


ExtendLicense.js (Admin Only)
Nameextend
bodyusername, extendBy
Extends the expiry date of the table entry where username is found. extendBy takes days.​


GenerateKey.js (Admin Only)
Namegenerate
bodylength, rank
Inserts a new license key into the table with length (in days) and rank.​


Login.js
Namelogin
bodyusername, password, HWID
Returns rank, user variable, expiry date, and login success if an entry is found in the table.​


LookupUser.js (Admin Only)
Namefind
bodyentry
Returns all key/value data of a user where either username or license are found in the table.​


Redeem.js
Nameredeem
bodyusername, password, hwid, license
Populates an entry in the table where license is found.​


ResetHWID.js (AdminOnly)
Nameresethwid
bodyusername, password (not required if calling from admin route)
Resets the HWID of an entry in the table where username is found. The HWID reset cooldown can be set in config.json.​


ShowAllUsers.js (AdminOnly)
Nameshow
bodyn/a
Returns an array of objects of all entries in the table.​


REST API Calls
To test any of the commands, simply provide the command name and the respective fields for each function (shown above). To test the calls w/o encryption, use the /admin endpoint instead of /post. Body of your request should be in JSON format.


Generating a key
Код:
Expand Collapse Copy
POST http://localhost:80/admin
HTTP/1.1 content-type: application/json
Authorization: API_TOKEN

{
"command": "generate",
"length": "90",
"rank": "2",
"quantity": "1"
}
Changing users rank
Код:
Expand Collapse Copy
POST http://localhost:80/admin
HTTP/1.1 content-type: application/json
Authorization: API_TOKEN

{
"command": "rank",
"username": "fsalinas26",
"newRank": "2"
}


HTTP Request C++
Each request to the server will look similar. The content-type is application/x-www-form-urlencoded.

Example of login request
Код:
Expand Collapse Copy
request.add_field("command", c_crypto::encrypt("login", g_crypto.key, g_crypto.iv).c_str());                         //command name to process
request.add_field("username", c_crypto::encrypt(username, g_crypto.key, g_crypto.iv).c_str());
request.add_field("password", c_crypto::encrypt(c_crypto::MD5_HASH(password), g_crypto.key, g_crypto.iv).c_str());
request.add_field("hwid", c_crypto::encrypt(c_crypto::MD5_HASH(HWID), g_crypto.key, g_crypto.iv).c_str());
request.add_field("token", c_crypto::encrypt(g_crypto.token, g_crypto.key, g_crypto.iv).c_str());
request.add_field("iv", (g_crypto.iv).c_str());                                              

string tempRes;
vector<wstring> headers = { PUBLIC_TOKEN };
send.post(L"http://localhost/post", tempRes, request, headers);

Client Sends (encoded in x-www-form-urlencoded)
Код:
Expand Collapse Copy
command=09i_bfA6N4jXPIAw3BlROQ&username=GSAPIBQPtX41HpyrjS5QQg&password=AauvnS62Zak5hXh7dlTVzgg2RrNbj0qj7_btyVoVoILwi1iRTJHDPQLPLJ-CiDGg&hwid=VoQq3PCzdNpOiNxObbdaQhWriuiG0-X5zaUtb_UsJWBkAlZITieRPKamDvneEBbP&token=cc5peF3JrISAlIFRs5YzHLlnQWDIHeQ8L5zkKoc0mss&iv=uz3ubFnxgvXIStPXmnza0w

Server Receives
Код:
Expand Collapse Copy
{
  command: 'Pwn--MvlX_K_Krm9z2mXjA',
  username: 'hL6grsJbu9TGp0jWnmIhIw',
  password: 'h8p97AgXxlk8Ioy4dVDF1wEVxQXQ7oYDsR-AFvKLZcK97wpAsPQywjnrF-tChQDj',
  hwid: 'jYaktfdazKlC-RUVhkmG1X2aPyUFTGJDe5gO1OtIiR2zYj8gZxXH3m05BTMcdW5w',
  token: 'm2BLP2fsWgthAmFdCyMb_VIQ7XK-2S2f1BNG2SsthJ8',
  iv: 'u47uPTJ122TGXHL3PiQ_7w'
}

After Decryption
Код:
Expand Collapse Copy
{
  command: 'login',
  username: 'fsalinas12',
  password: '052A1A3C0142AD636571F88EA2506EAC',
  hwid: 'B689E0F6033D6369780DD6E649A0DA29',
  token: 'G5uqEUETtZvyQkuLvNO84A',
  iv: 'u47uPTJ122TGXHL3PiQ_7w'
}

Encryption
The body of each HTTP request and response is encrypted using AES-256-CBC with a randomly generated session IV that is initialized from the server. Both client and server will have a shared secret key. Each generated IV is stored in memory on the server and will become invalid after 30 seconds or destroyed after single use.

Each client request will include a randomly generated sequence of bytes encrypted using the session IV, which the server will decrypt for the client to compare.
I made this visual to show how the client communicates with the server.
68747470733a2f2f692e6779617a6f2e636f6d2f37396433653536636639646433336435303335356430343161376338383435662e6a7067
 
Последнее редактирование:
---@Credits to fsalinas26
I did just a little bit of redesign to it and added some other stuff :D | No injection.

Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.
(No vt, it's a source)
Пожалуйста, авторизуйтесь для просмотра ссылки.


Documentation Down Below!

Your API_TOKEN is declared in config.json and should be a random string of characters strictly for admin access.

Database Commands
These are a list of
Пожалуйста, авторизуйтесь для просмотра ссылки.
that can be performed on the database to insert, modify, or delete table entries. You can test most of these functions in Server.js or also use a REST Client to test the HTTP Request (use /admin route to bypass encryption). I plan on adding some kind of Admin Panel built into the menu to have control of all these callbacks

Each command will take the form:

Код:
Expand Collapse Copy
module.exports = {
name:"login", //the command name to be reference in the request ex. {"command": "login"}
adminOnly: false, //declare if the function can be only accessed with API Token
execute(db,body,out_obj,adminMode){//see below

db is the working sqlite database.
body is the incoming request body (JSON Object).
out_obj is the outgoing response JSON object (Use this to pass any data from the database to your client)
adminMode When true, certain commands will not have cooldown/argument restrictions (resethwid, resetpw)

ChangePassword.js
Nameresetpw
bodyusername, license, newPassword
Changes the password of the table entry where both username and license are found.​


ChangeRank.js (Admin Only)
Namerank
body
username,newRank​
Changes the rank of the table entry where username is found.​


CreateDB.js (Admin Only) **
Namecreate
This function should only be called once if you want to create a new database.​


ExtendLicense.js (Admin Only)
Nameextend
bodyusername, extendBy
Extends the expiry date of the table entry where username is found. extendBy takes days.​


GenerateKey.js (Admin Only)
Namegenerate
bodylength, rank
Inserts a new license key into the table with length (in days) and rank.​


Login.js
Namelogin
bodyusername, password, HWID
Returns rank, user variable, expiry date, and login success if an entry is found in the table.​


LookupUser.js (Admin Only)
Namefind
bodyentry
Returns all key/value data of a user where either username or license are found in the table.​


Redeem.js
Nameredeem
bodyusername, password, hwid, license
Populates an entry in the table where license is found.​


ResetHWID.js (AdminOnly)
Nameresethwid
bodyusername, password (not required if calling from admin route)
Resets the HWID of an entry in the table where username is found. The HWID reset cooldown can be set in config.json.​


ShowAllUsers.js (AdminOnly)
Nameshow
bodyn/a
Returns an array of objects of all entries in the table.​


REST API Calls
To test any of the commands, simply provide the command name and the respective fields for each function (shown above). To test the calls w/o encryption, use the /admin endpoint instead of /post. Body of your request should be in JSON format.


Generating a key
Код:
Expand Collapse Copy
POST http://localhost:80/admin
HTTP/1.1 content-type: application/json
Authorization: API_TOKEN

{
"command": "generate",
"length": "90",
"rank": "2",
"quantity": "1"
}
Changing users rank
Код:
Expand Collapse Copy
POST http://localhost:80/admin
HTTP/1.1 content-type: application/json
Authorization: API_TOKEN

{
"command": "rank",
"username": "fsalinas26",
"newRank": "2"
}


HTTP Request C++
Each request to the server will look similar. The content-type is application/x-www-form-urlencoded.

Example of login request
Код:
Expand Collapse Copy
request.add_field("command", c_crypto::encrypt("login", g_crypto.key, g_crypto.iv).c_str());                         //command name to process
request.add_field("username", c_crypto::encrypt(username, g_crypto.key, g_crypto.iv).c_str());
request.add_field("password", c_crypto::encrypt(c_crypto::MD5_HASH(password), g_crypto.key, g_crypto.iv).c_str());
request.add_field("hwid", c_crypto::encrypt(c_crypto::MD5_HASH(HWID), g_crypto.key, g_crypto.iv).c_str());
request.add_field("token", c_crypto::encrypt(g_crypto.token, g_crypto.key, g_crypto.iv).c_str());
request.add_field("iv", (g_crypto.iv).c_str());                                             

string tempRes;
vector<wstring> headers = { PUBLIC_TOKEN };
send.post(L"http://localhost/post", tempRes, request, headers);

Client Sends (encoded in x-www-form-urlencoded)
Код:
Expand Collapse Copy
command=09i_bfA6N4jXPIAw3BlROQ&username=GSAPIBQPtX41HpyrjS5QQg&password=AauvnS62Zak5hXh7dlTVzgg2RrNbj0qj7_btyVoVoILwi1iRTJHDPQLPLJ-CiDGg&hwid=VoQq3PCzdNpOiNxObbdaQhWriuiG0-X5zaUtb_UsJWBkAlZITieRPKamDvneEBbP&token=cc5peF3JrISAlIFRs5YzHLlnQWDIHeQ8L5zkKoc0mss&iv=uz3ubFnxgvXIStPXmnza0w

Server Receives
Код:
Expand Collapse Copy
{
  command: 'Pwn--MvlX_K_Krm9z2mXjA',
  username: 'hL6grsJbu9TGp0jWnmIhIw',
  password: 'h8p97AgXxlk8Ioy4dVDF1wEVxQXQ7oYDsR-AFvKLZcK97wpAsPQywjnrF-tChQDj',
  hwid: 'jYaktfdazKlC-RUVhkmG1X2aPyUFTGJDe5gO1OtIiR2zYj8gZxXH3m05BTMcdW5w',
  token: 'm2BLP2fsWgthAmFdCyMb_VIQ7XK-2S2f1BNG2SsthJ8',
  iv: 'u47uPTJ122TGXHL3PiQ_7w'
}

After Decryption
Код:
Expand Collapse Copy
{
  command: 'login',
  username: 'fsalinas12',
  password: '052A1A3C0142AD636571F88EA2506EAC',
  hwid: 'B689E0F6033D6369780DD6E649A0DA29',
  token: 'G5uqEUETtZvyQkuLvNO84A',
  iv: 'u47uPTJ122TGXHL3PiQ_7w'
}

Encryption
The body of each HTTP request and response is encrypted using AES-256-CBC with a randomly generated session IV that is initialized from the server. Both client and server will have a shared secret key. Each generated IV is stored in memory on the server and will become invalid after 30 seconds or destroyed after single use.

Each client request will include a randomly generated sequence of bytes encrypted using the session IV, which the server will decrypt for the client to compare.
I made this visual to show how the client communicates with the server.
68747470733a2f2f692e6779617a6f2e636f6d2f37396433653536636639646433336435303335356430343161376338383435662e6a7067
it doesn't look bad at all! this is the kind of good stuff that should not be posted on these forums for people to paste, good job with it!
 
  • Люблю это
Реакции: r9x
it doesn't look bad at all! this is the kind of good stuff that should not be posted on these forums for people to paste, good job with it!
This would be the perfect forum to post this, as hes literally just copied a github repo and changed it to look a bit different. Heres the github link

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
no typescript????
 
This would be the perfect forum to post this, as hes literally just copied a github repo and changed it to look a bit different. Heres the github link Hidden content
this has been released over 2 years ago, no one you included knew this repo, stop crying, there is full credits to fsalinas, also changed a bit of things, not just styling ;)
 
there is not an admin option, you just generate a key and make an account, that's it :D
Yes, you can make a webpart for that aswell, with the use of chatgpt will not be that hard
I checked the code and found that it is secure from most open source auth. Now I installed it on my VPS server and I am preparing the loader. Thanks for sharing!
 
  • Мне нравится
Реакции: r9x
i feel sorry for anyone who seriously tries to use this
 
wdym? This is the strongest auth shared in the forum. It gets the IV key and token key randomly on every login, making it almost impossible to crack lmao. It can be made more powerful with a few updates e.g. version check etc.
"makes it almost impossible to crack"...
If only auth was the only thing preventing the cheat from being cracked LMFAO, you're clearly clueless.
 
fix streamable link
 
Назад
Сверху Снизу