Расшифруйте RC4 с помощью Python, зная ключPython

Программы на Python
Anonymous
Расшифруйте RC4 с помощью Python, зная ключ

Сообщение Anonymous »

Надеюсь, у вас все хорошо.
Я пришел сюда с небольшой проблемой (извините за мой английский, это не мой родной язык).
У меня есть небольшое вредоносное ПО. проект в школе, во всем мире у меня есть кейлоггер, который создает файл, а затем шифрует содержимое этого файла с помощью шифрования RC4. (ниже два примера различного содержания этого файла)
Первый

Код: Выделить всё

========================
î³É†"Û4ZôßaV0%í;ËüüòaÐAiúˆcdÖ&
Второй

Код: Выделить всё

========================

ä¡Çš3µ{²agÄ}W8%í–YœèáŒ9¯ŽW‰‚”&ÂIAžŠmá'8V¡Uñši&Ædà·…í^ê¥>´©ÍjÌ{

ŒFÔ¿%ïÆñyFÎ3x°º“A)o4´´­‡—ÆéâùyÕ p‑@­®á÷Lì-»›ys‘ñî“wõl„/•+
w×jc´E"ؾ‑øSG,Üo`ürx;¼¡T#üdÊ-‡k«G‘å”b¿+†]Ù©–f:^É( ÁË è­Pàv8¹|籟D7…ÁSgœÛÚjá"æ‡=I•Âa|âOÄÝ\Ùþׯçð©Ð¨Û•Øâ¿tù5¾à…y¸Æy

========================

‰Î$œk{²aΞ:Xyc¢“ðÆ¯¨ÉxéÁR ËÌ~Ž

========================

IéÓí­q3C¦_Å)$Ãü¥Âƒ7Ð&èIΞ:XycjõúØ·v¯ìzëà—'ì`

========================

±Öšk{ð,•Ã{V4#

========================

ü§ÎâK³[’2…×bx2|p‚³ÐæˆéXÉár ëì^ iÈòãˆK7Ï4àZG¯

‰—¥ÃpÂTÅι Âu‚HÚ±+ïÈñýj«=v¾´O'a°Äß­‰—ÆéìùyÕ ž@­®á÷Bì#»›w}‘þã“wûl„/›% yÙdmºK"ؾ‑ùPI"Üo`ürx;¼¡T#ü

========================

========================

õ¡‹Ñ$Ý:þ;‡›iT|É9ZlcÒCkøŠafÔ$ãB™izl*Wò¾ójÐÃÄ

========================

========================
Теперь, проведя реверс-инжиниринг, я нашел ключ: Если вы хотите сохранить секрет, вы также должны скрыть его от себя
Поэтому моей целью было расшифровать содержимое файла, чтобы увидеть, какие данные записывает кейлоггер, поэтому вот мой код на Python (на основе страницы RC4 в Википедии).

Код: Выделить всё

#!/usr/bin/env python
class WikipediaARC4:
def __init__(self, key = None):
self.state = list(range(256)) # initialisation de la table de permutation
self.x = self.y = 0 # les index x et y, au lieu de i et j

if key is not None:
self.init(key)

# Key schedule
def init(self, key):
for i in range(256):
self.x = (ord(key[i % len(key)]) + self.state[i] + self.x) & 0xFF
self.state[i], self.state[self.x] = self.state[self.x], self.state[i]
self.x = 0

# Générateur
def crypt(self, input):
output = [None]*len(input)
for i in range(len(input)):
self.x = (self.x + 1) & 0xFF
self.y = (self.state[self.x] + self.y) & 0xFF
self.state[self.x], self.state[self.y] = self.state[self.y], self.state[self.x]
output[i] = chr((ord(input[i]) ^ self.state[(self.state[self.x] + self.state[self.y]) & 0xFF]))
return ''.join(output)

if __name__ == '__main__':
test_vectors = [['If you want to keep a secret, you must also hide it from yourself', 'î³É†"Û4ZôßaV0%í;ËüüòaÐAiúˆcdÖ&']]
for i in test_vectors:
print(i[0])
print(WikipediaARC4(i[0]).crypt(i[1]))
Когда я запускаю свой код, это мой результат

Код: Выделить всё

If you want to keep a secret, you must also hide it from yourself xBë⁃ìÖú½ÜûuåÐÅÙrJM©[&$5ȿÅk
И вот мой вопрос. Я не знаю, действительно ли это так, потому что расшифрованный контент, похоже, не имеет особого значения. Кто-нибудь из вас есть мысли по этому поводу?
Спасибо, ребята!
Примечание: два изображения RC4 во вредоносном ПО
InitRC4
callRC4

Подробнее здесь: https://stackoverflow.com/questions/788 ... ng-the-key

Вернуться в «Python»