Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Конкурс (https://forum.antichat.xyz/showthread.php?t=47189)

Tid0Wlas 20.08.2007 20:48

Конкурс
 
НУЖНО ВВЕСТИ ТАКОЙ ПАРОЛЬ, ЧТОБЫ ПРОИЗОШЛА ОШИБКА. КТО ПЕРВЫЙ ТОТ И ПОБЕДИЛ. ВЫ ДОЛЖНЫ ОБЪЯСНИТЬ СУТЬ ЭТОГО БАГА И НАПИСАТЬ ЭТУ СТРОКУ НА ФОРУМЕ. Да и ещё на если, кто думает, что это развод чистой воды (прпаши ближнего своег) иди на (http://www.kiber-zona.org/index.php?showtopic=2044) форум киберзоны конкурс и смотри мой ответ с прохлждением.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define len 255

int test();

int main()
{
int i = test();
system("PAUSE");
}

int test()
{
char buff[len],forprint[len];
printf("ENTER PASSWORD: ");
fgets(&buff[0], len-1, stdin);
strcpy(&forprint[0], &buff[0]);
buff[strlen(&buff[0])-1] = '\0';

//-------------------------------------------------start

register int i=0,a=0;
size_t n;

n = strlen(buff);

for (;i<n;i++)
{
if (a >= 32764)
a = 0x00;
else
a += buff[i];
}

for (i=0;i<n; i++)
{
buff[i] = (buff[i] ^ a) ^ (n^i);
}
//--------------------------------------------------------AND

if (strcmp("}trrwy", &buff[0])==0)
{
printf("PASSWORD Ok: ");
printf(forprint);
}
else
{
printf("INVALID PASSWORD: ");
printf(forprint);
}
}

Ni0x 20.08.2007 21:10

Зачем выкладываешь вопрос, если рядом лежит ответ? А вообще ничего интересного, помимо %s можно и другие типы подставлять.

ZaCo 20.08.2007 22:35

>>buff[strlen(&buff[0])-1] = '\0';
класс

Ni0x 20.08.2007 22:53

ZaCo, непросто класс, это просто верх искусства. Собственно вопрос к ТС, зачем было писать такой извратный код, если главной фичой была уязвимость в printf ? Дело в том, что знающий человек сразу проверит программу на переполнение буффера и на уязвимости в таких функциях, как printf, а новичек даже заморачиваться не будет на такую ерунду, следовательно незачот. Мне так и вообще не понравился такого плана конкурс, складывается впечатление, что автор начитался Криса Касперски и начал релизить сомнительного рода конкурсы.

Tid0Wlas 21.08.2007 17:16

Цитата:

Сообщение от Ni0x
Зачем выкладываешь вопрос, если рядом лежит ответ?

Как правило решают сами, а потом смотрят в "ШПОРУ"
Я не говорил, что квест сложный, квест простой.


Время: 05:37