CrackMe CrackMe ( 1/3 ) Python

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
4 Авг 2024
Сообщения
132
Реакции
4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это простой crackme, созданный на Python с использованием нескольких уровней обфускации.
Ваша задача - найти правильный пароль, который позволит вам успешно пройти проверку.

Правила:
1. Найдите правильный пароль
2. У вас есть 5 попыток
3. Пароль содержит буквы и цифры
4. Пароль имеет длину от 8 до 16 символов

vt -
Пожалуйста, авторизуйтесь для просмотра ссылки.
( 6 детектов слишком круто )
 

Вложения

( 6 детектов слишком круто )
Уже 9, не благодари

---


понял.
Он кстати даже не запускается
Python:
Expand Collapse Copy
"""
Enigma Crackme Challenge
Автор: Claude
Уровень сложности: Средний
Цель: Найти правильный пароль
"""
import base64
import hashlib
import random
import time
import sys
import os

def _integrity_guard():
    try:
        with open(__file__, 'rb') as f:
            content = f.read()
        if b'# -*- coding: utf-8 -*-' not in content[:100]:
            print('Ошибка целостности: файл был изменен')
            sys.exit(1)
        lines = content.split(b'\n')
        if not lines[0].startswith(b'#!/usr/bin/env python'):
            print('Ошибка целостности: заголовок был изменен')
            sys.exit(1)
        if b'# End of file checksum: ' not in lines[-1]:
            print('Ошибка целостности: контрольная сумма отсутствует')
            sys.exit(1)
    except Exception:
        print('Не удалось проверить целостность файла')
        sys.exit(1)

def _transform_1(s, key=7):
    result = ''
    for c in s:
        result += chr(ord(c) ^ key)
    return result

def _transform_2(s, shift=3):
    if len(s) <= 1:
        return s
    mid = len(s) // 2
    return _transform_2(s[mid:], shift) + _transform_2(s[:mid], shift)

def _transform_3(s, salt='enigma'):
    h = hashlib.sha256((s + salt).encode()).hexdigest()
    return h[:16]

def _obscure_key(key):
    parts = []
    for i in range(0, len(key), 2):
        if i + 1 < len(key):
            parts.append(key[i:i + 2])
        else:
            parts.append(key[i])
    random.shuffle(parts)
    return ''.join(parts)

def _generate_dynamic_key(static_key, seed):
    dynamic_key = ''
    for i, c in enumerate(static_key):
        dynamic_key += chr((ord(c) + seed + i) % 256)
    return dynamic_key
_c1 = base64.b64decode('U2VjcmV0UGFzc3dvcmQxMjM=').decode()
_c2 = _transform_1('Zpv!ibwf!tpmwfe!uif!dibnmfohf"', 1)
_c3 = _transform_1('Jodpssfdu!qbttxpse/!Usz!bhbjo/', 1)

class _VerifierEngine:

    def __init__(self, seed=42):
        self.seed = seed
        self._init_dynamic_vars()

    def _init_dynamic_vars(self):
        self.key_a = _transform_3(_c1, str(self.seed))
        self.key_b = _transform_2(self.key_a)
        self.key_c = _obscure_key(self.key_b)
        t = int(time.time())
        self.token = _transform_3(str(t), self.key_a)

    def _verify_part1(self, password):
        if len(password) < 8 or len(password) > 16:
            return False
        has_digit = False
        has_alpha = False
        for c in password:
            if c.isdigit():
                has_digit = True
            if c.isalpha():
                has_alpha = True
        return has_digit and has_alpha

    def _verify_part2(self, password):
        p1 = _transform_1(password, 7)
        p2 = _transform_2(p1)
        p3 = _transform_3(p2, self.token)
        dyn_key = _generate_dynamic_key(p3, self.seed)
        target_hash = '7c4a8d09ca3762af'
        computed_hash = hashlib.sha256((dyn_key + self.key_c).encode()).hexdigest()[:16]
        return computed_hash == target_hash

    def verify(self, password):
        if not self._verify_part1(password):
            return False
        return self._verify_part2(password)
   
def main():
    _integrity_guard()
    engine = _VerifierEngine()
    max_attempts = 5
    attempts = 0
    print('\n==================================================')
    print('Добро пожаловать в Enigma Crackme Challenge!')
    print('==================================================')
    print('\nПравила:')
    print('1. Найдите правильный пароль')
    print('2. У вас есть', max_attempts, 'попыток')
    print('3. Пароль содержит буквы и цифры')
    print('\n')
    while attempts < max_attempts:
        try:
            password = input(f'Попытка {attempts + 1}/{max_attempts}. Введите пароль: ')
            print('Проверка', end='')
            for _ in range(3):
                time.sleep(0.3)
                print('.', end='', flush=True)
            print('\n')
            if engine.verify(password):
                print(_c2)
                break
            print(_c3)
            attempts += 1
        except KeyboardInterrupt:
            print('\nВыход из программы...')
            sys.exit(0)
    if attempts >= max_attempts:
        print('\nВы исчерпали все попытки. Попробуйте снова позже.')
if __name__ == '__main__':
    main()
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Уже 9, не благодари

---


понял.
Он кстати даже не запускается
Python:
Expand Collapse Copy
"""
Enigma Crackme Challenge
Автор: Claude
Уровень сложности: Средний
Цель: Найти правильный пароль
"""
import base64
import hashlib
import random
import time
import sys
import os

def _integrity_guard():
    try:
        with open(__file__, 'rb') as f:
            content = f.read()
        if b'# -*- coding: utf-8 -*-' not in content[:100]:
            print('Ошибка целостности: файл был изменен')
            sys.exit(1)
        lines = content.split(b'\n')
        if not lines[0].startswith(b'#!/usr/bin/env python'):
            print('Ошибка целостности: заголовок был изменен')
            sys.exit(1)
        if b'# End of file checksum: ' not in lines[-1]:
            print('Ошибка целостности: контрольная сумма отсутствует')
            sys.exit(1)
    except Exception:
        print('Не удалось проверить целостность файла')
        sys.exit(1)

def _transform_1(s, key=7):
    result = ''
    for c in s:
        result += chr(ord(c) ^ key)
    return result

def _transform_2(s, shift=3):
    if len(s) <= 1:
        return s
    mid = len(s) // 2
    return _transform_2(s[mid:], shift) + _transform_2(s[:mid], shift)

def _transform_3(s, salt='enigma'):
    h = hashlib.sha256((s + salt).encode()).hexdigest()
    return h[:16]

def _obscure_key(key):
    parts = []
    for i in range(0, len(key), 2):
        if i + 1 < len(key):
            parts.append(key[i:i + 2])
        else:
            parts.append(key[i])
    random.shuffle(parts)
    return ''.join(parts)

def _generate_dynamic_key(static_key, seed):
    dynamic_key = ''
    for i, c in enumerate(static_key):
        dynamic_key += chr((ord(c) + seed + i) % 256)
    return dynamic_key
_c1 = base64.b64decode('U2VjcmV0UGFzc3dvcmQxMjM=').decode()
_c2 = _transform_1('Zpv!ibwf!tpmwfe!uif!dibnmfohf"', 1)
_c3 = _transform_1('Jodpssfdu!qbttxpse/!Usz!bhbjo/', 1)

class _VerifierEngine:

    def __init__(self, seed=42):
        self.seed = seed
        self._init_dynamic_vars()

    def _init_dynamic_vars(self):
        self.key_a = _transform_3(_c1, str(self.seed))
        self.key_b = _transform_2(self.key_a)
        self.key_c = _obscure_key(self.key_b)
        t = int(time.time())
        self.token = _transform_3(str(t), self.key_a)

    def _verify_part1(self, password):
        if len(password) < 8 or len(password) > 16:
            return False
        has_digit = False
        has_alpha = False
        for c in password:
            if c.isdigit():
                has_digit = True
            if c.isalpha():
                has_alpha = True
        return has_digit and has_alpha

    def _verify_part2(self, password):
        p1 = _transform_1(password, 7)
        p2 = _transform_2(p1)
        p3 = _transform_3(p2, self.token)
        dyn_key = _generate_dynamic_key(p3, self.seed)
        target_hash = '7c4a8d09ca3762af'
        computed_hash = hashlib.sha256((dyn_key + self.key_c).encode()).hexdigest()[:16]
        return computed_hash == target_hash

    def verify(self, password):
        if not self._verify_part1(password):
            return False
        return self._verify_part2(password)
  
def main():
    _integrity_guard()
    engine = _VerifierEngine()
    max_attempts = 5
    attempts = 0
    print('\n==================================================')
    print('Добро пожаловать в Enigma Crackme Challenge!')
    print('==================================================')
    print('\nПравила:')
    print('1. Найдите правильный пароль')
    print('2. У вас есть', max_attempts, 'попыток')
    print('3. Пароль содержит буквы и цифры')
    print('\n')
    while attempts < max_attempts:
        try:
            password = input(f'Попытка {attempts + 1}/{max_attempts}. Введите пароль: ')
            print('Проверка', end='')
            for _ in range(3):
                time.sleep(0.3)
                print('.', end='', flush=True)
            print('\n')
            if engine.verify(password):
                print(_c2)
                break
            print(_c3)
            attempts += 1
        except KeyboardInterrupt:
            print('\nВыход из программы...')
            sys.exit(0)
    if attempts >= max_attempts:
        print('\nВы исчерпали все попытки. Попробуйте снова позже.')
if __name__ == '__main__':
    main()


Все спасибо,тема решена
 
Это простой crackme, созданный на Python с использованием нескольких уровней обфускации.
Ваша задача - найти правильный пароль, который позволит вам успешно пройти проверку.

Правила:
1. Найдите правильный пароль
2. У вас есть 5 попыток
3. Пароль содержит буквы и цифры
4. Пароль имеет длину от 8 до 16 символов

vt -
Пожалуйста, авторизуйтесь для просмотра ссылки.
( 6 детектов слишком круто )
с самого начала пишет "не удалось проверить целосность файла"
 
Назад
Сверху Снизу