• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

JS-скрипт [OTC3] Security + crackme

Ты нифига нового не придумал для кряка вантапа, даже thirdperson тот же взять... Любой мог бы сделать, но нет...
Ты мемный чувак, что ты сделал? Спастил клемп из скрипта сливы и сделал плавное 3 лицо? Ого достижение
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Правила:
1. Не использовать деобфускацию
Что за бред ? Это тоже самое если при crackme C++ ты будешь просить не дизассемблировать программу...
 
Что за бред ? Это тоже самое если при crackme C++ ты будешь просить не дизассемблировать программу...
ну так js не компилируемый язык, а C++ компилируемый, ты же не будешь сидеть разбирать машинный код?
 
Что за бред ? Это тоже самое если при crackme C++ ты будешь просить не дизассемблировать программу...
Потому что я выложил сурс, а значит теперь видно саму конструкцию функции(хз как назвать) и при деобфускации ты можешь просто найти похожий код и вырезать проверки(т.к. изза сурса ты понимаешь как эта хуйня работает и что нужно вырезать, а что нужно оставить).
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну так js не компилируемый язык, а C++ компилируемый, ты же не будешь сидеть разбирать машинный код?
Так какая разница, если для одного нужен преттифер, а для другого дизассемблер
 
Так какая разница, если для одного нужен преттифер, а для другого дизассемблер
Только преттифер тебе может дать полный код, когда при дизассемблере ты получишь псевдокод, который еще и реверсить придется
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Только преттифер тебе может дать полный код, когда при дизассемблере ты получишь псевдокод, который еще и реверсить придется
А стринги в хексе ты наизусть знаешь ?)
 
делать защиту для джски в кряке - это надо быть ебанутым. уж лучше забить хуй на то, что твою джску когда нибудь да сольют вместе с паролем/уберут защиту.
 
делать защиту для джски в кряке - это надо быть ебанутым. уж лучше забить хуй на то, что твою джску когда нибудь да сольют вместе с паролем/уберут защиту.
От защиты есть смысл, я уже придумал штуку, которая почти что защищает от деобфускации, скрипт просто не запустится если прошлись деобфускатором :roflanEbalo:, если хочешь заставить скрипт работать то нужно знать, что да как работает и что нужно фиксить.
 
Комментим весь этот мусор и все
1631463743835.png
 
@iDesync @dermagister
JavaScript:
Expand Collapse Copy
var strings = ['test', 'Script\x20items', 'Rage', 'Color', 'Visuals', 'AddCheckbox', 'SetEnabled', '863912lFZUMg', 'menu_controler', 'Section', 'Customize', 'GetValue', 'Draw', '305877EvyezD', 'AddDropdown', '34812DGZUbh', 'Anti-Aim', '996921AzFKuI', 'User\x20name:', '7IAXhlp', '1032620JNdrqW', 'GetString', '469716GsPETs', 'security', '345qVcTfp', '10GTsgQX', 'jklsad', '332220exaVNz'];
/*1. We need to run the code which sorts the array to the original state
This code was turned into readable state before, but it wasn't so hard, so i will not show how i did it.
I did it with my hands, not with a deobfuscator.

while (true) {
    try {
        var check = parseInt(strings[10]) / 0x1 + parseInt(strings[13]) / 0x2 * (parseInt(strings[1]) / 0x3) + -parseInt(strings[15]) / 0x4 + -parseInt(strings[12]) / 0x5 * (parseInt(strings[3]) / 0x6) + parseInt(strings[7]) / 0x7 * (-parseInt(strings[23]) / 0x8) + -parseInt(strings[5]) / 0x9 + parseInt(strings[8]) / 0xa;
        if (check === 0x5cece) break;
        else strings.push(strings.shift());
    } catch (_0x1bd6cb) {
        strings.push(strings.shift());
    }
}*/

//After running this code i got the result:
strings = ["Draw", "305877EvyezD", "AddDropdown", "34812DGZUbh", "Anti-Aim", "996921AzFKuI", "User name:", "7IAXhlp", "1032620JNdrqW", "GetString", "469716GsPETs", "security", "345qVcTfp", "10GTsgQX", "jklsad", "332220exaVNz", "test", "Script items", "Rage", "Color", "Visuals", "AddCheckbox", "SetEnabled", "863912lFZUMg", "menu_controler", "Section", "Customize", "GetValue"];

//To get string from this array you need to use index parameter from getString function and substract 249. It will be the index.
function getString(index){
    return strings[index - 249];
}

/*2. Now you need to restore important functions
From this:
UI['AddTextbox'](getString(0xff)); */
//To this:
UI.AddTextbox("User name:");
var test = false;

//Then i just restored the function with method i written above
function security() {
    //Commenting the auth code
    /*if (UI.GetString("Script items", "User name:") != 'jklsad') zxc = 0x0;
    else zxc = 0x1;*/
    //if (UI.GetString('Script items', 'User\x20name:') != 'jklsad' || test == 0x1) return;
    if(test == false /* && UI.GetString('Script items', "User name:") == 'jklsad' && zxc == 0x1*/){
        UI[getString(0xfb)](getString(0x112), [getString(0x10b), getString(0xfd), getString(0x10d), 'Keybinds', getString(0x113), getString(0x10c)]);
        UI[getString(0x10e)](getString(0x109));
        test = true;
    }
}
Cheat.RegisterCallback(getString(0xf9), getString(0x104));

function menu_controler() {
    var some_tab_active = UI.GetValue("Script items", "Section") == 0;
    UI.SetEnabled("Script items", 'test', some_tab_active);
}
Cheat.RegisterCallback('Draw', getString(0x111));

//Total times i looked in the source code: 0
//Total times i loaded the script before it started to work (don't count typos): 0
 
@iDesync @dermagister
JavaScript:
Expand Collapse Copy
var strings = ['test', 'Script\x20items', 'Rage', 'Color', 'Visuals', 'AddCheckbox', 'SetEnabled', '863912lFZUMg', 'menu_controler', 'Section', 'Customize', 'GetValue', 'Draw', '305877EvyezD', 'AddDropdown', '34812DGZUbh', 'Anti-Aim', '996921AzFKuI', 'User\x20name:', '7IAXhlp', '1032620JNdrqW', 'GetString', '469716GsPETs', 'security', '345qVcTfp', '10GTsgQX', 'jklsad', '332220exaVNz'];
/*1. We need to run the code which sorts the array to the original state
This code was turned into readable state before, but it wasn't so hard, so i will not show how i did it.
I did it with my hands, not with a deobfuscator.

while (true) {
    try {
        var check = parseInt(strings[10]) / 0x1 + parseInt(strings[13]) / 0x2 * (parseInt(strings[1]) / 0x3) + -parseInt(strings[15]) / 0x4 + -parseInt(strings[12]) / 0x5 * (parseInt(strings[3]) / 0x6) + parseInt(strings[7]) / 0x7 * (-parseInt(strings[23]) / 0x8) + -parseInt(strings[5]) / 0x9 + parseInt(strings[8]) / 0xa;
        if (check === 0x5cece) break;
        else strings.push(strings.shift());
    } catch (_0x1bd6cb) {
        strings.push(strings.shift());
    }
}*/

//After running this code i got the result:
strings = ["Draw", "305877EvyezD", "AddDropdown", "34812DGZUbh", "Anti-Aim", "996921AzFKuI", "User name:", "7IAXhlp", "1032620JNdrqW", "GetString", "469716GsPETs", "security", "345qVcTfp", "10GTsgQX", "jklsad", "332220exaVNz", "test", "Script items", "Rage", "Color", "Visuals", "AddCheckbox", "SetEnabled", "863912lFZUMg", "menu_controler", "Section", "Customize", "GetValue"];

//To get string from this array you need to use index parameter from getString function and substract 249. It will be the index.
function getString(index){
    return strings[index - 249];
}

/*2. Now you need to restore important functions
From this:
UI['AddTextbox'](getString(0xff)); */
//To this:
UI.AddTextbox("User name:");
var test = false;

//Then i just restored the function with method i written above
function security() {
    //Commenting the auth code
    /*if (UI.GetString("Script items", "User name:") != 'jklsad') zxc = 0x0;
    else zxc = 0x1;*/
    //if (UI.GetString('Script items', 'User\x20name:') != 'jklsad' || test == 0x1) return;
    if(test == false /* && UI.GetString('Script items', "User name:") == 'jklsad' && zxc == 0x1*/){
        UI[getString(0xfb)](getString(0x112), [getString(0x10b), getString(0xfd), getString(0x10d), 'Keybinds', getString(0x113), getString(0x10c)]);
        UI[getString(0x10e)](getString(0x109));
        test = true;
    }
}
Cheat.RegisterCallback(getString(0xf9), getString(0x104));

function menu_controler() {
    var some_tab_active = UI.GetValue("Script items", "Section") == 0;
    UI.SetEnabled("Script items", 'test', some_tab_active);
}
Cheat.RegisterCallback('Draw', getString(0x111));

//Total times i looked in the source code: 0
//Total times i loaded the script before it started to work (don't count typos): 0
Можно было проще лошарик
 
Можно было проще лошарик
я подробно расписал процесс расшифровки. как получить строки, которые зашифрованные с помощью фейковых индексов и перемешанного массива.
обычно, когда кода много, это очень полезно.
к тому же, можно получить этот массив, написать на нод.джс скрипт, который находит все вхождения функции-шифратора (getString), и заменяет их на их настоящее значение
 
я подробно расписал процесс расшифровки. как получить строки, которые зашифрованные с помощью фейковых индексов и перемешанного массива.
обычно, когда кода много, это очень полезно
Я пока код не смотрел, дай мне обсуфед, попробую крякнуть
 
Я пока код не смотрел, дай мне обсуфед, попробую крякнуть
это не крякми, это решение крякми тса. просто я хочу, чтобы ты учёл свои ошибки, которые ты сделал, когда пытался крякать
 
Назад
Сверху Снизу