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

Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,799
Реакции[?]
586
Поинты[?]
2K
Ты нифига нового не придумал для кряка вантапа, даже thirdperson тот же взять... Любой мог бы сделать, но нет...
Ты мемный чувак, что ты сделал? Спастил клемп из скрипта сливы и сделал плавное 3 лицо? Ого достижение
 
всем прив верите ли вы в призраков ???
Забаненный
Статус
Оффлайн
Регистрация
17 Авг 2018
Сообщения
863
Реакции[?]
338
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Правила:
1. Не использовать деобфускацию
Что за бред ? Это тоже самое если при crackme C++ ты будешь просить не дизассемблировать программу...
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,748
Реакции[?]
1,466
Поинты[?]
2K
Что за бред ? Это тоже самое если при crackme C++ ты будешь просить не дизассемблировать программу...
ну так js не компилируемый язык, а C++ компилируемый, ты же не будешь сидеть разбирать машинный код?
 
Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,799
Реакции[?]
586
Поинты[?]
2K
Что за бред ? Это тоже самое если при crackme C++ ты будешь просить не дизассемблировать программу...
Потому что я выложил сурс, а значит теперь видно саму конструкцию функции(хз как назвать) и при деобфускации ты можешь просто найти похожий код и вырезать проверки(т.к. изза сурса ты понимаешь как эта хуйня работает и что нужно вырезать, а что нужно оставить).
 
всем прив верите ли вы в призраков ???
Забаненный
Статус
Оффлайн
Регистрация
17 Авг 2018
Сообщения
863
Реакции[?]
338
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну так js не компилируемый язык, а C++ компилируемый, ты же не будешь сидеть разбирать машинный код?
Так какая разница, если для одного нужен преттифер, а для другого дизассемблер
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,748
Реакции[?]
1,466
Поинты[?]
2K
Так какая разница, если для одного нужен преттифер, а для другого дизассемблер
Только преттифер тебе может дать полный код, когда при дизассемблере ты получишь псевдокод, который еще и реверсить придется
 
всем прив верите ли вы в призраков ???
Забаненный
Статус
Оффлайн
Регистрация
17 Авг 2018
Сообщения
863
Реакции[?]
338
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Только преттифер тебе может дать полный код, когда при дизассемблере ты получишь псевдокод, который еще и реверсить придется
А стринги в хексе ты наизусть знаешь ?)
 
$$ roblox A4 production's coder $$
Пользователь
Статус
Оффлайн
Регистрация
9 Ноя 2019
Сообщения
424
Реакции[?]
83
Поинты[?]
1K
делать защиту для джски в кряке - это надо быть ебанутым. уж лучше забить хуй на то, что твою джску когда нибудь да сольют вместе с паролем/уберут защиту.
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,748
Реакции[?]
1,466
Поинты[?]
2K
делать защиту для джски в кряке - это надо быть ебанутым. уж лучше забить хуй на то, что твою джску когда нибудь да сольют вместе с паролем/уберут защиту.
От защиты есть смысл, я уже придумал штуку, которая почти что защищает от деобфускации, скрипт просто не запустится если прошлись деобфускатором :roflanEbalo:, если хочешь заставить скрипт работать то нужно знать, что да как работает и что нужно фиксить.
 
Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,799
Реакции[?]
586
Поинты[?]
2K
Легенда форума
Статус
Оффлайн
Регистрация
16 Сен 2018
Сообщения
4,004
Реакции[?]
1,947
Поинты[?]
7K
꧁꧂
Участник
Статус
Оффлайн
Регистрация
23 Мар 2020
Сообщения
549
Реакции[?]
356
Поинты[?]
10K
idesync dermagister
JavaScript:
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
 
Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,799
Реакции[?]
586
Поинты[?]
2K
idesync dermagister
JavaScript:
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
Можно было проще лошарик
 
꧁꧂
Участник
Статус
Оффлайн
Регистрация
23 Мар 2020
Сообщения
549
Реакции[?]
356
Поинты[?]
10K
Можно было проще лошарик
я подробно расписал процесс расшифровки. как получить строки, которые зашифрованные с помощью фейковых индексов и перемешанного массива.
обычно, когда кода много, это очень полезно.
к тому же, можно получить этот массив, написать на нод.джс скрипт, который находит все вхождения функции-шифратора (getString), и заменяет их на их настоящее значение
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,339
Реакции[?]
2,261
Поинты[?]
165K
я подробно расписал процесс расшифровки. как получить строки, которые зашифрованные с помощью фейковых индексов и перемешанного массива.
обычно, когда кода много, это очень полезно
Я пока код не смотрел, дай мне обсуфед, попробую крякнуть
 
꧁꧂
Участник
Статус
Оффлайн
Регистрация
23 Мар 2020
Сообщения
549
Реакции[?]
356
Поинты[?]
10K
Я пока код не смотрел, дай мне обсуфед, попробую крякнуть
это не крякми, это решение крякми тса. просто я хочу, чтобы ты учёл свои ошибки, которые ты сделал, когда пытался крякать
 
Сверху Снизу