Гайд Crackme челлендж на Python

Сложно?


  • Всего проголосовало
    6
Начинающий
Статус
Оффлайн
Регистрация
2 Янв 2023
Сообщения
17
Реакции[?]
1
Поинты[?]
0
Crackme челлендж
Код, приведенный ниже, представляет собой задачу crackme, которую вам нужно решить, чтобы выиграть челлендж.

Задача:
Напишите скрипт на Python, который может расшифровать сообщение, зашифрованное с помощью ключа, используемого в коде. Ваш скрипт должен принимать в качестве входных данных зашифрованное сообщение и ключ шифрования, а затем выводить расшифрованное сообщение.

Описание (Подсказка):
В коде определены две функции: `encrypt` и `decode`, а также ключ для шифрования. Функция `encrypt` использует XOR и кодирование Base64 для шифрования входного текста с помощью ключа.

Код задачи:
Задача:
import base64

def encode(text):
    encoded = base64.b64encode(text.encode()).decode()
    return encoded

def decode(encoded):
    decoded = base64.b64decode(encoded.encode()).decode()
    return decoded

def encrypt(text, key):
    key = key * len(text)
    ciphertext = "".join([chr(ord(text[i]) ^ ord(key[i])) for i in range(len(text))])
    return encode(ciphertext)

def decrypt(encoded, key):
    key = key * len(decode(encoded))
    ciphertext = decode(encoded)
    plaintext = "".join([chr(ord(ciphertext[i]) ^ ord(key[i])) for i in range(len(ciphertext))])
    return plaintext

key = "mysecretkey"
encrypted = encrypt("Welcome to the crackme challenge! Your task is to decrypt this message.", key)
print("Encrypted:", encrypted)

Решение задачи
ОТКРЫВАТЬ ТОЛЬКО В ТОМ СЛУЧАЕ, ЕСЛИ ВЫ УЖЕ РЕШИЛИ ЗАДАЧУ ИЛИ У ВАС НЕТ ПОНИМАНИЯ РЕШЕНИЯ

Решение:
import base64

def decode(encoded):
    decoded = base64.b64decode(encoded.encode()).decode()
    return decoded

def decrypt(encoded, key):
    key = key * len(decode(encoded))
    ciphertext = decode(encoded)
    plaintext = "".join([chr(ord(ciphertext[i]) ^ ord(key[i])) for i in range(len(ciphertext))])
    return plaintext

key = "mysecretkey"
encrypted = "RW5jcnlwdGVkOiBBcHBsZSB0byB0aGUgY3JhY2ttZSBjaGFsbGVuZ2UhIFlvdXIgdGFza3MzIHNpc3NlcyBpcyB0byBkZWNyeXB0IHRoaXMgbWVzc2FnZS4="
decrypted = decrypt(encrypted, key)
print("Decrypted:", decrypted)

Decrypted: Encrypted: Apple to the crackme challenge! Your tasks is to decrypt this message.
 
Начинающий
Статус
Оффлайн
Регистрация
28 Июл 2022
Сообщения
22
Реакции[?]
17
Поинты[?]
0
ура я решил

Python:
import base64

def decode(encoded):
    decoded = base64.b64decode(encoded.encode()).decode()
    return decoded

def decrypt(encoded, key):
    key = key * len(decode(encoded))
    ciphertext = decode(encoded)
    plaintext = "".join([chr(ord(ciphertext[i]) ^ ord(key[i])) for i in range(len(ciphertext))])
    return plaintext

key = "mysecretkey"
encrypted = "RW5jcnlwdGVkOiBBcHBsZSB0byB0aGUgY3JhY2ttZSBjaGFsbGVuZ2UhIFlvdXIgdGFza3MzIHNpc3NlcyBpcyB0byBkZWNyeXB0IHRoaXMgbWVzc2FnZS4="
decrypted = decrypt(encrypted, key)
print("Decrypted:", decrypted)
 
Начинающий
Статус
Оффлайн
Регистрация
2 Янв 2023
Сообщения
17
Реакции[?]
1
Поинты[?]
0
ура я решил

Python:
import base64

def decode(encoded):
    decoded = base64.b64decode(encoded.encode()).decode()
    return decoded

def decrypt(encoded, key):
    key = key * len(decode(encoded))
    ciphertext = decode(encoded)
    plaintext = "".join([chr(ord(ciphertext[i]) ^ ord(key[i])) for i in range(len(ciphertext))])
    return plaintext

key = "mysecretkey"
encrypted = "RW5jcnlwdGVkOiBBcHBsZSB0byB0aGUgY3JhY2ttZSBjaGFsbGVuZ2UhIFlvdXIgdGFza3MzIHNpc3NlcyBpcyB0byBkZWNyeXB0IHRoaXMgbWVzc2FnZS4="
decrypted = decrypt(encrypted, key)
print("Decrypted:", decrypted)
Это был пример решения, у тебя должен быть другой encrypted key, ну ладно
 
Начинающий
Статус
Оффлайн
Регистрация
15 Мар 2021
Сообщения
11
Реакции[?]
2
Поинты[?]
7K
письки:
import base64



def decode(encoded):

    decoded = base64.b64decode(encoded.encode()).decode()

    return decoded



def decrypt(encoded, key):

    key = key * (len(decode(encoded)) // len(key) + 1)  # генерируем ключ нужной длины

    ciphertext = decode(encoded)

    plaintext = "".join([chr(ord(ciphertext) ^ ord(key)) for i in range(len(ciphertext))])

    return plaintext



key = "mysecretkey"

encrypted = "V2VsY29tZSB0byB0aGUgY3JhY2ttZSBjaGFsbGVuZ2UhIFlvdXIgdGFzayBpcyB0byBkZWNyeXB0IHRoaXMgbWVzc2FnZS4="

print("Encrypted:", encrypted)



decrypted = decrypt(encrypted, key)

print("Decrypted:", decrypted)
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
28 Июл 2021
Сообщения
126
Реакции[?]
9
Поинты[?]
0
Python:
import base64

def decode(encoded):
    decoded = base64.b64decode(encoded.encode()).decode()
    return decoded

def decrypt(encoded, key):
    key = key * len(decode(encoded))
    ciphertext = decode(encoded)
    plaintext = "".join([chr(ord(ciphertext[i]) ^ ord(key[i])) for i in range(len(ciphertext))])
    return plaintext

key = "mysecretkey"
encrypted = "WVtcTQ9KXtbPSJQUHUTMBsbLW8+IAxgJiZwKTAeOj1Vd0RVGiFnUDNee04oEyhWez1WOn5deys"
decrypted = decrypt(encrypted, key)
print("Decrypted:", decrypted)
 
Разработчик
Статус
Оффлайн
Регистрация
1 Сен 2018
Сообщения
1,598
Реакции[?]
880
Поинты[?]
114K
Crackme челлендж
Код, приведенный ниже, представляет собой задачу crackme, которую вам нужно решить, чтобы выиграть челлендж.

Задача:
Напишите скрипт на Python, который может расшифровать сообщение, зашифрованное с помощью ключа, используемого в коде. Ваш скрипт должен принимать в качестве входных данных зашифрованное сообщение и ключ шифрования, а затем выводить расшифрованное сообщение.

Описание (Подсказка):
В коде определены две функции: `encrypt` и `decode`, а также ключ для шифрования. Функция `encrypt` использует XOR и кодирование Base64 для шифрования входного текста с помощью ключа.

Код задачи:
Задача:
import base64

def encode(text):
    encoded = base64.b64encode(text.encode()).decode()
    return encoded

def decode(encoded):
    decoded = base64.b64decode(encoded.encode()).decode()
    return decoded

def encrypt(text, key):
    key = key * len(text)
    ciphertext = "".join([chr(ord(text[i]) ^ ord(key[i])) for i in range(len(text))])
    return encode(ciphertext)

def decrypt(encoded, key):
    key = key * len(decode(encoded))
    ciphertext = decode(encoded)
    plaintext = "".join([chr(ord(ciphertext[i]) ^ ord(key[i])) for i in range(len(ciphertext))])
    return plaintext

key = "mysecretkey"
encrypted = encrypt("Welcome to the crackme challenge! Your task is to decrypt this message.", key)
print("Encrypted:", encrypted)

Решение задачи
ОТКРЫВАТЬ ТОЛЬКО В ТОМ СЛУЧАЕ, ЕСЛИ ВЫ УЖЕ РЕШИЛИ ЗАДАЧУ ИЛИ У ВАС НЕТ ПОНИМАНИЯ РЕШЕНИЯ

Решение:
import base64

def decode(encoded):
    decoded = base64.b64decode(encoded.encode()).decode()
    return decoded

def decrypt(encoded, key):
    key = key * len(decode(encoded))
    ciphertext = decode(encoded)
    plaintext = "".join([chr(ord(ciphertext[i]) ^ ord(key[i])) for i in range(len(ciphertext))])
    return plaintext

key = "mysecretkey"
encrypted = "RW5jcnlwdGVkOiBBcHBsZSB0byB0aGUgY3JhY2ttZSBjaGFsbGVuZ2UhIFlvdXIgdGFza3MzIHNpc3NlcyBpcyB0byBkZWNyeXB0IHRoaXMgbWVzc2FnZS4="
decrypted = decrypt(encrypted, key)
print("Decrypted:", decrypted)

Decrypted: Encrypted: Apple to the crackme challenge! Your tasks is to decrypt this message.
Так ты весь код уже дал
 
Начинающий
Статус
Оффлайн
Регистрация
2 Янв 2023
Сообщения
17
Реакции[?]
1
Поинты[?]
0
Так ты весь код уже дал
Я дал решение для тех, у кого не получилось решить задачу. Я код кинул в ознакомительных целях
письки:
import base64



def decode(encoded):

    decoded = base64.b64decode(encoded.encode()).decode()

    return decoded



def decrypt(encoded, key):

    key = key * (len(decode(encoded)) // len(key) + 1)  # генерируем ключ нужной длины

    ciphertext = decode(encoded)

    plaintext = "".join([chr(ord(ciphertext) ^ ord(key)) for i in range(len(ciphertext))])

    return plaintext



key = "mysecretkey"

encrypted = "V2VsY29tZSB0byB0aGUgY3JhY2ttZSBjaGFsbGVuZ2UhIFlvdXIgdGFzayBpcyB0byBkZWNyeXB0IHRoaXMgbWVzc2FnZS4="

print("Encrypted:", encrypted)



decrypted = decrypt(encrypted, key)

print("Decrypted:", decrypted)
не твой код
Python:
import base64

def decode(encoded):
    decoded = base64.b64decode(encoded.encode()).decode()
    return decoded

def decrypt(encoded, key):
    key = key * len(decode(encoded))
    ciphertext = decode(encoded)
    plaintext = "".join([chr(ord(ciphertext[i]) ^ ord(key[i])) for i in range(len(ciphertext))])
    return plaintext

key = "mysecretkey"
encrypted = "WVtcTQ9KXtbPSJQUHUTMBsbLW8+IAxgJiZwKTAeOj1Vd0RVGiFnUDNee04oEyhWez1WOn5deys"
decrypted = decrypt(encrypted, key)
print("Decrypted:", decrypted)
Не твой код
 
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
694
Реакции[?]
326
Поинты[?]
12K
Я дал решение для тех, у кого не получилось решить задачу. Я код кинул в ознакомительных целях

не твой код

Не твой код
Ты не понял, ты дал код исходного приложения, какой смысл в твоем крякми, если у челов есть исходник
 
Начинающий
Статус
Оффлайн
Регистрация
2 Янв 2023
Сообщения
17
Реакции[?]
1
Поинты[?]
0
Сверху Снизу