Расшифруйте 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 + self.x) & 0xFF
self.state, self.state[self.x] = self.state[self.x], self.state
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 = chr((ord(input) ^ 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 во вредоносном ПО
void __cdecl initRC4(int param_1,int param_2)

{
undefined uVar1;
uint local_10;
int local_c;
int local_8;

/* 0x1530 2 initRC4 */
local_8 = 0;
for (local_c = 0; local_c < 0x100; local_c = local_c + 1) {
*(char *)(param_1 + local_c) = (char)local_c;
}
for (local_10 = 0; (int)local_10 < 0x100; local_10 = local_10 + 1) {
local_8 = (int)((uint)*(byte *)(param_1 + local_10) + local_8 +
(uint)*(byte *)(param_2 + (local_10 & 3))) % 0x100;
uVar1 = *(undefined *)(param_1 + local_10);
*(undefined *)(param_1 + local_10) = *(undefined *)(param_1 + local_8);
*(undefined *)(local_8 + param_1) = uVar1;
}
return;
}

undefined4 __cdecl FUN_004019a3(int param_1,int param_2)

{
HANDLE pvVar1;

FUN_00401bb0();
pvVar1 = CreateMutexA((LPSECURITY_ATTRIBUTES)0x0,1,"ND9487GF943GF4328FHG");
if (pvVar1 != (HANDLE)0x0) {
if (param_1 != 1) {
Sleep(5000);
DeleteFileA(*(LPCSTR *)(param_2 + 4));
}
FUN_004016de(s_lang32.ini_00403020);
initRC4(0x405400,0x403040);
FUN_0040192e();
FUN_00401969();
}
return 0;
}


Подробнее здесь: https://stackoverflow.com/questions/788 ... ng-the-key
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Расшифруйте RC4 с помощью Python, зная ключ
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Java 17 Разрешить RC4 HMAC, сохраняя при этом значениеallow_weak_crypto как false в krb5.conf
    Anonymous » » в форуме JAVA
    0 Ответы
    98 Просмотры
    Последнее сообщение Anonymous
  • Функция дешифрования API Windows RC4 работает на C++, но не на golang
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Есть ли способ использовать алгоритм потокового шифрования (ChaCha20, RC4...) для шифрования видео, сохраняя при этом во
    Anonymous » » в форуме Python
    0 Ответы
    102 Просмотры
    Последнее сообщение Anonymous
  • На PHP зашифруйте строку секретным ключом, а на Mac расшифруйте ее с помощью сценария bash.
    Anonymous » » в форуме Php
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

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