├── package.json ├── README.md └── JSCodeCracker.js /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JSCodeCracker", 3 | "version": "1.0.0", 4 | "description": "Освітній CrackMe-проект на JavaScript для практики реверс-інжинірингу.", 5 | "main": "JSCodeCracker.js", 6 | "scripts": { 7 | "start": "node JSCodeCracker.js" 8 | }, 9 | "keywords": [ 10 | "CrackMe", 11 | "JavaScript", 12 | "Node.js", 13 | "Reverse Engineering", 14 | "Security" 15 | ], 16 | "author": "Ваше Ім'я", 17 | "license": "MIT", 18 | "dependencies": {} 19 | } 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JSCodeCracker 2 | 3 | JSCodeCracker — це освітній CrackMe-проект на мові JavaScript з використанням Node.js, призначений для розвитку навичок з реверс-інжинірингу та аналізу безпеки програмного забезпечення. Програма перевіряє введений користувачем пароль активації та надає зворотний зв'язок залежно від правильності введених даних. 4 | 5 | ## Огляд 6 | 7 | Цей проект створений для тих, хто бажає практикуватися у реверс-інжинірингу, аналізі коду та безпеці програмного забезпечення. JSCodeCracker використовує базові техніки обфускації, що ускладнюють аналіз коду та надають початкові виклики для новачків у сфері безпеки. 8 | 9 | ## Особливості 10 | 11 | - Простий інтерфейс командного рядка 12 | - Перевірка пароля активації з базовою обфускацією 13 | - Захист від простого аналізу коду 14 | - Детальна документація для початківців 15 | 16 | ## Встановлення 17 | 18 | ### Передумови 19 | 20 | - Node.js (версія 12.x або вище) 21 | - npm (Node Package Manager) 22 | 23 | ### Кроки установки 24 | 25 | 1. **Клонувати репозиторій:** 26 | ```bash 27 | git clone https://github.com/yourusername/JSCodeCracker.git 28 | cd JSCodeCracker 29 | ``` 30 | 31 | 2. **Встановити залежності:** 32 | ```bash 33 | npm install 34 | ``` 35 | 36 | ## Використання 37 | 38 | Запустіть програму за допомогою наступної команди: 39 | 40 | ```bash 41 | node JSCodeCracker.js 42 | -------------------------------------------------------------------------------- /JSCodeCracker.js: -------------------------------------------------------------------------------- 1 | const readline = require('readline'); 2 | 3 | // Функція для обфускації символів 4 | function obfuscate(char) { 5 | return String.fromCharCode(char.charCodeAt(0) ^ 0x5F); 6 | } 7 | 8 | // Функція для деобфускації символів 9 | function deobfuscate(char) { 10 | return String.fromCharCode(char.charCodeAt(0) ^ 0x5F); 11 | } 12 | 13 | // Функція для отримання правильного пароля 14 | function getCorrectPassword() { 15 | const originalPassword = "SecurePass123"; 16 | let obfuscated = ''; 17 | for (let char of originalPassword) { 18 | obfuscated += obfuscate(char); 19 | } 20 | return obfuscated; 21 | } 22 | 23 | // Функція для перевірки пароля 24 | function checkPassword(input) { 25 | const obfuscatedPassword = getCorrectPassword(); 26 | let deobfuscated = ''; 27 | for (let char of obfuscatedPassword) { 28 | deobfuscated += deobfuscate(char); 29 | } 30 | return input === deobfuscated; 31 | } 32 | 33 | // Основна функція 34 | function main() { 35 | console.log("Вітаємо у JSCodeCracker!"); 36 | const rl = readline.createInterface({ 37 | input: process.stdin, 38 | output: process.stdout 39 | }); 40 | 41 | rl.question("Будь ласка, введіть пароль активації: ", (answer) => { 42 | // Невелика затримка для ускладнення аналізу 43 | setTimeout(() => { 44 | if (checkPassword(answer)) { 45 | console.log("Вітаємо! Ви розбили JSCodeCracker."); 46 | } else { 47 | console.log("Пароль невірний. Спробуйте ще раз."); 48 | } 49 | rl.close(); 50 | }, 500); 51 | }); 52 | } 53 | 54 | main(); 55 | --------------------------------------------------------------------------------