• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Расшифровка Файла

  • Автор темы Vasilii14
  • Дата начала
Статус
Закрыто для дальнейших ответов.
V

Vasilii14

Здравствуйте, существует алгоритм шифрования файла.

Вот алгоритм:

C++:
#include <stdio.h>

int main(int argc, char *argv[])
{
FILE* fp,*fo;
unsigned char key[16];	//Ключ шифрования
unsigned char ck;		  //Свертка пароля
unsigned char buf[16];
int i,n;

if(argc!=4)
{
printf("Usage:\n\t myencrypt source.file.name encrypted.file.name password\n");
return 0;
}

n = strlen(argv[3]);

// Упаковываем пароль в один байт
for(i=0;i<n;i++) 
ck^=i%2?argv[3][i]:(argv[3][i]+i*5)%255; 
//Генерируем ключ длиной 16 байт из одного байта
for(i=0;i<16;i++)
key[i]=(char)((ck^(char)i*13)+203);

fp = fopen(argv[1],"rb+");
fo = fopen(argv[2],"wb+");

n=strlen(argv[1]);

for(i=0;i<n;i++)
argv[1][i]^=key[i%16];

fwrite(&n,sizeof(n),1,fo);
fwrite(argv[1],1,n,fo);

do{
n=fread(buf,1,16,fp);

for(i=0;i<n;i++) 
buf[i]^=key[i];

fwrite(buf,1,n,fo);
}while(!feof(fp));


fclose(fp);
fclose(fo);
}

Необходимо либо вывести 50 различных подходящих паролей, либо написать программу расшифровывающую исходный файл.
Не могли бы вы подсказать алгоритм расшифровки? Просто не могу понять, каким образом добиться расшифровки. Заранее спасибо!
 
L

lazybiz

А чему у тебя ровна переменная ck?
Откуда этот код?
 
V

Vasilii14

Итак дана программа, которая шифрует данные. На входе имеет имя входного файла, имя выходного, и ключ. То есть строка вызова этой программы будет myencrypt file.ext file.enc пароля. Это значит, что будет зашифрован файл file.ext на выходе будет зашифрованый файл file.enc. Чтобы передать параметры в отладчик программы, необходимо зайти в свойства проекта, выбрать вкладку Debug. И вписать там аргументы вызова программы.

Вот условие. В институте лабораторная работа, не могу додуматься с чего вообще начать, все сдал, а эту подсунули, так еще и не объяснили как делать
 
V

Vasilii14

Да дело не в этом, не знаю с чего начать вплане решения задачи о дешифровки. С языком все в порядке. Хотя бы способ, как можно расшифровать. Я просто не понимаю алгоритм, с чего начинать
 
L

lazybiz

Так у тебя алгоритм шифрования не работает. Зачем в этом случае думать об алгоритме расшифровки?
 
V

Vasilii14

Ну вот так нынче в институтах дают задания значит ) Ну ладно, извините тогда за беспокойство

Добавлено: Ну а вообще, впринципе, на каком принципе строится расшифровка, при знании алгоритма?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!