1.2, Кирилл (??), 13:08, 04/11/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
> Представлен седьмой конкурс ..
Ну вот так вот и собираюсь кодовую базу АНБ-шники для своих коварных целей. Даже ТЗ по сути их задачи раскрывает.
И понятно почему именно Си выбран.
| |
|
2.3, Аноним (-), 13:10, 04/11/2014 [^] [^^] [^^^] [ответить]
| +/– |
Чтобы было сложнее - потому что усложнить работу с памятью больше, чем в C может не каждый
| |
|
3.10, Аноним (-), 14:27, 04/11/2014 [^] [^^] [^^^] [ответить]
| +25 +/– |
>Чтобы было сложнее - потому что усложнить работу с памятью больше, чем в C может не каждый
Работа с памятью очень простая и подчиняется принципу: нагадил - убери за собой. Да такое поведение несколько отличается от поведения животных, однако в этом и есть суть культуры.
| |
|
4.12, Аноним (-), 16:50, 04/11/2014 [^] [^^] [^^^] [ответить]
| +4 +/– |
Во-во, джавакодерам, GO-кодерам и прочим, кто не осилил адресную арифметику, этой простой истины не понять.
| |
4.13, YetAnotherOnanym (ok), 17:52, 04/11/2014 [^] [^^] [^^^] [ответить]
| +/– |
Примечательно, что противоположный принцип (нагадил - уходи и не возвращайся, GC всё сделает) применяется в эрланге.
| |
|
5.15, Аноним (-), 20:21, 04/11/2014 [^] [^^] [^^^] [ответить]
| +/– |
А сама виртуальная машина эрланга на чём написана? Не на С случайно?
| |
|
6.17, Demo (??), 20:50, 04/11/2014 [^] [^^] [^^^] [ответить]
| –5 +/– |
> А сама виртуальная машина эрланга на чём написана? Не на С случайно?
На C#.
| |
|
|
4.19, Аноним (-), 23:48, 04/11/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну вот мы и пообсуждали запутанность кода... Вы хоть контекст обсуждения в заголовке читали? Причем тут вообще сборщик мусора? А давно шаманили, разбирая набор данных со строками и бинарными структурами? Из потока? Ах да, это не модно нынче, ну ну...
| |
4.33, chinarulezzz (ok), 18:42, 05/11/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
>>Чтобы было сложнее - потому что усложнить работу с памятью больше, чем в C может не каждый
> Работа с памятью очень простая и подчиняется принципу: нагадил - убери за
> собой. Да такое поведение несколько отличается от поведения животных, однако в
> этом и есть суть культуры.
сишники безкультурные? Даже костыляете анализаторы утечек для этого недоязычка.
| |
|
|
2.16, Demo (??), 20:46, 04/11/2014 [^] [^^] [^^^] [ответить]
| +/– |
> И понятно почему именно Си выбран.
Да. Лучше бы на питоне.
| |
|
3.26, Аноним (-), 05:32, 05/11/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Да. Лучше бы на питоне.
Да тут Шигорин как-то приводил пример. С переменными на японском. Отформатировано, конечно, нормально, но понятнее от этого не становится.
И кстати на питоне как раз можно без особого палива пару раз бэкспейс нажать в какой-нибудь достаточно большой программи. И поди там разберись - задумано так или баг/фича.
| |
|
4.32, chinarulezzz (ok), 18:39, 05/11/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> пару раз бэкспейс нажать
> И поди там разберись
о дааа)) подсвечивается код, выводится номер строки, сообщение IndentationError: *** и поди там разберись.
| |
|
5.39, Аноним (-), 13:55, 06/11/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не всегда:
flag = 1
....
for item in items:
if item = 1:
bad_items.append(item)
flag = 0
...
flag = 1
....
for item in items:
if item = 1:
bad_items.append(item)
flag = 0
...
| |
|
6.40, chinarulezzz (ok), 14:52, 06/11/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
>[оверквотинг удален]
> bad_items.append(item)
> flag = 0
> ...
> flag = 1
> ....
> for item in items:
> if item = 1:
> bad_items.append(item)
> flag = 0
> ...
и не понятно ничего, задумано так, или фича, ага ;-) таким же образом можно фигурную скобку переместить куда не/надо, и поди разберись... Детский сад какой-то)) Глянь настоящую неоднозначность http://underhanded.xcott.com/. Смысловое значение конструкций языка говорит что вроде всё ок, а на самом деле не ок. На нормальных языках эта бессмысленность не проканает. И слава богу.
| |
|
|
|
|
|
1.6, Ilya Indigo (ok), 13:31, 04/11/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Конкурс учредили случаем не АНБ-шники, для негласного набора разработчиков, например openSSL, или прочих проектов, куда нужно внедрить не очевидный бэкдор, и по возможности, что бы код был запутанным?
| |
|
2.22, anonymus (?), 01:26, 05/11/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Как раз наоборот. Конкурс учредили те, кто хочет привлечь внимание к проблеме вездесущести АНБ. Шаг первый в противостоянии с ним - продемонстрировать на практике, какими широкими возможностями он обладает, и насколько уязвима разработка.
| |
|
|
2.11, mine (ok), 16:22, 04/11/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
Проблема проблем - в кодстайле и нечитаемых апи винды.
| |
2.27, Аноним (-), 05:46, 05/11/2014 [^] [^^] [^^^] [ответить]
| +/– |
> "Давай поиграем в игру" http://q.viva64.com/
КГ/AМ, оно мне половину примеров не засчитало лишь за то что я кликнул немного неидеально. Не, ну хотя-бы всю невалидную конструкцию в целом можно засчитывать, или где? А то клацаем на явно неверном выражении. Обана - неверно. Оказывается - за то что клацнул не на переменную а на скобку рядом с ней. Однако.
| |
|
|
2.9, Аноним (-), 14:08, 04/11/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
По крайней мере код там читабельный, придерживаются стандартов ядра. Тут дело в другом...
| |
|
3.23, Led (ok), 01:44, 05/11/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> По крайней мере код там читабельный
Обычно об этом вопит тот, кто его не читал.
| |
|
4.41, некто1120 (?), 15:22, 06/11/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> > По крайней мере код там читабельный
> Обычно об этом вопит тот, кто его не читал.
Я читал, но просто из интереса, без практических целей. Ничего страшного не нашёл (но и глубоко не копался).
Можете привести пример плохого кода, ОТЛИЧНЫЙ от тех, о которых традиционно кричат тролли:
1. "они хранят возвращаемое значение в переменной r, а не variableStoringTheValueToBeReturnedFromTheFunction",
2. "у них тут switch (if/elseif) на 100500 вариантов занимает больше 20 строк",
3. "у них тут есть функции длиннее 3 строк, и комментарии короче 20 строк"
4. "они используют goto для выхода из вложенного цикла"
?
| |
|
3.34, chinarulezzz (ok), 18:43, 05/11/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
> По крайней мере код там читабельный, придерживаются стандартов ядра. Тут дело в
> другом...
там быдлокод читабельный)))
| |
|
|
1.18, Аноним (-), 23:20, 04/11/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Запутанная программа на с++: ставим в любом месте goto и переходим на ассемблерную вставку на пару сотен строчек.
| |
|
2.21, тоже Аноним (ok), 00:04, 05/11/2014 [^] [^^] [^^^] [ответить]
| +6 +/– |
Это нечто противоположное заданию.
На самом деле, в заголовке зря употреблен эпитет "запутанный".
Имеется в виду код с подвохом - он легко читается и вполне понятен, но при этом делает не то, что кажется на первый взгляд.
То есть потенциально проходящий даже независимый аудит СПО...
| |
2.29, Аноним (-), 05:47, 05/11/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Запутанная программа на с++: ставим в любом месте goto
...и все дружно пойдут выяснять: а куда оно ведет.
> и переходим на ассемблерную вставку на пару сотен строчек.
"Незаметно копаем на дороге в центре города пятиметровую яму, в надежде что никто не заметит".
| |
|
|
2.30, Аноним (-), 08:06, 05/11/2014 [^] [^^] [^^^] [ответить]
| +/– |
Brainfuck тогда уж, можно и незапутанный - один хрен, никто не поймет, что код делает.
| |
|
1.31, Аноним (-), 16:30, 05/11/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вообще, можно, например, объявить какой-то класс x с методом y, который делает что-то хорошее, а потом объявить класс X - потомок x, а метод y перегрузить, чтоб делал что-то плохое. и в одной подпрограмме объявить локальный объект z класса x, который отрабатывает как положено, а в другой - объект z класса X, в котором вызов того же с виду метода даст другой результат.
| |
|
|
3.42, Аноним (-), 14:29, 07/11/2014 [^] [^^] [^^^] [ответить]
| +/– |
Не поленился перейти по ссылке и посмотреть условия, в FAQ:
Can I use C++ instead of C?
If you actually want to do something like that, then sure. No COBOL, please.
Так что вышеприведенный коммент неуместен.
| |
|
|
1.38, Mt (?), 11:42, 06/11/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
The underhanded goal is this: write surveil() in such a way that the act of surveillance is subtly leaked to the user or to the outside world. PiuPiu can not reveal the act of surveillance, but your function is technically able to edit the Piu or user structure during scanning. Find a way to alter that data (this alone is a bit of a challenge, since you are not supposed to alter the data, just scan it) in such a way that an informed outsider can tell if someone is being archived. The leakage should be subtle enough that it is not easily noticed.
И хоть бы кто-то написал что цель задания была - написать код таким образом, чтобы факт проверки аккуратно "утек" наружу. Задача-то существенно сложнее и интереснее чем кажется из новости.
| |
|