Каков самый прохладный взлом, который Вы видели или сделали? [закрытый]

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

37
задан 5 revs, 3 users 100% 30 August 2014 в 21:09
поделиться

43 ответа

Простой. Один из моих ранних наставников ушел на летних каникулах с его семьей. Когда он возвратился, он сразу сидел на терминале и ввел в стандартной программе GMAP, скомпилированный (убирают) и выставил его. Я спросил, мог ли я помочь тестированию, и он сказал, что оно в порядке, он был бы "песок, протестированный" оно. Ха? По-видимому, он скучал на пляже, так нашел плоский кусок песка, кодированного, и проверил его - "проверенный песок". Блестящий парень.

0
ответ дан jsfain 27 November 2019 в 03:59
поделиться

Это - старое произведение, но для меня это было устройство Вареного пудинга:

http://en.wikipedia.org/wiki/Duff 's_device

(по некоторым причинам я не могу заставить скидку с цены показывать тот URL ссылкой)

<час>
strcpy(to, from, count)
char *to, *from;
int count;
{
    int n = (count + 7) / 8;
    switch (count % 8) {
    case 0: do { *to = *from++;
    case 7:      *to = *from++;
    case 6:      *to = *from++;
    case 5:      *to = *from++;
    case 4:      *to = *from++;
    case 3:      *to = *from++;
    case 2:      *to = *from++;
    case 1:      *to = *from++;
               } while (--n > 0);
    }
}
2
ответ дан Michael Burr 27 November 2019 в 03:59
поделиться

Я записал простой пакетный файл Windows, чтобы позволить мне быстро играть треки, соответствующие некоторому шаблону из моей музыкальной библиотеки (на f: диск) на крайне медленной машине (вводный iTunes занимает приблизительно 3 минуты на этой машине!). Это поддерживает регулярные выражения через эти findstr команда и использует mplayer, чтобы играть треки. Все, что я должен сделать, нажимают Windows+R и тип:

play u2

или:

play "neighbo.+rhood"

или:

play "blink[0-9][0-9][0-9]"

пакетный файл похож на это, в play.bat.

cd /d f:
findstr /I /R %1 dirlist.txt > playlist.txt
mplayer -playlist playlist.txt

И mplayer и play.bat должны быть добавлены к Вашему пути.

5
ответ дан Ferruccio 27 November 2019 в 03:59
поделиться

Не сделанный мной, конечно, но я недавно столкнулся с ним, и это выглядело прохладным:

Игра Самопечати Жизни в C#

"Игра Conway’s Жизни очаровывала программистов в течение многих десятилетий. Даже при том, что его правила смехотворно просты, вселенная Conway’s дает начало множеству планеров, космических кораблей, осцилляторов, орудий планеров и других форм “life”. Самопечатающим программам столь же любопытно, и - скорее удивительно - имеют важное место в теории вычисления.

, Что происходит, когда Вы комбинируете два? Вы собираетесь узнать, но одна вещь наверняка: фактор гиковатости должен быть довольно высоким.

я записал немного программы C#, которая содержит сетку Игры Жизни. Программа совершенствует игровую сетку к следующему поколению и распечатывает копию себя с обновленной сеткой. Можно взять вывод, скомпилировать его с компилятором C#, выполнить его, и you’ll получают следующее поколение игры. Можно выполнить итерации процесса или изменить начальное состояние сетки вручную".

Переходят по ссылке выше для исходного кода.

5
ответ дан Evgeny 27 November 2019 в 03:59
поделиться

Я когда-то взломал вместе простую командную строку стиля DOS для пси-частицы 3a во время университетской лекции. Это могло только сделать основной список каталогов, просмотр, скопировать & переместитесь, но это выглядело соответствующе - полный экран мелкий шрифт.

, О, и я запрограммировал вонь для 68008 с горшками для входа и осциллографом для вывода. Не то, чтобы трудно с помощью dev платы, но было что-то прохладное об игре его на osc.

5
ответ дан Draemon 27 November 2019 в 03:59
поделиться

Мы были скомпрометированы в небольшой компании, в которой я работал некоторыми, предположительно, российскими хакерами. Самостоятельно и несколько других разработчиков хотели видеть, как, и таким образом, я раскрыл самый изящный Сценарий PHP, я когда-либо видел вниз с нашего сервера, и быстро удалял его из нашей живой машины.

Это был троянский конь, названный c99shell, который сделал так много с так мало, что это было и ужасно и красиво одновременно. Вещь имела встроенный GUI с изображениями с помощью base64 для вывода их от PHP, таким образом, все было сам содержавшее. Список функций был болен! Эта вещь могла запустить оболочки, сканирование для строк подключения, сама блокировка вниз и много другой полезный вещи для взломщика.

Это было красиво.

Все в офисе думали, что я был гаек, но действительно, действительно этот код имел довольно мало мысли, помещенной в него. Они сохранили размер файла небольшим, чтобы красться мимо тех противных пределов загрузки и даже имели закодированное уведомление по электронной почте base64, которое собрало всю информацию для взломщика.

8
ответ дан willasaywhat 27 November 2019 в 03:59
поделиться

Устройство Tesla установило рекорд для искусственной молнии (42 метра или 130 футов), и весь свет в Колорадо-Спрингсе гас.

8
ответ дан Serhat Ozgel 27 November 2019 в 03:59
поделиться

Я сказал бы Вам, но они могут хотеть мое свидетельство об окончании средней школы назад, если я признался в нем;)

7
ответ дан tloach 27 November 2019 в 03:59
поделиться

Назад в эпоху DOS, я записал программу сценариев для демонстрации программного обеспечения моей компании. Эта программа сценариев запустила бы приложение и затем открылась бы окна сверху приложения, описала бы некоторые его функции с помощью анимированного типа, затем закрыла бы окно, нажатия клавиш канала к приложению, ожидала бы приложения, чтобы отобразить надлежащий экран, и затем открыться больше окон. Это имело свой собственный язык сценариев и даже редактор сценариев, таким образом, я мог прервать сценарий, отредактировать его, и затем продолжить выполнять его. Большая часть - то, что это работало сверх неизмененной версии нашего приложения.

целое демонстрационное приложение было записано в C и ассемблере. Это сцепило прерывания таймера и клавиатуры для взаимодействия с приложением. Я записал все, включая библиотеку работы с окнами.

6
ответ дан Kluge 27 November 2019 в 03:59
поделиться
8
ответ дан 27 November 2019 в 03:59
поделиться

Несколько лет назад я написал программу для отображения текста в больших блочных буквах, чтобы положить их в заголовок моих исходных файлов, чтобы я мог печатать их умножению в очень маленьком шрифте. Я построил небольшой стол с информацией пикселя на квадрате 5x5, чтобы распечатать символы. У него были только заглавные буквы и цифры. Итак PA PA станет ...

####    #
#   #  # #
####  #   #
#     #####
#     #   #

Некоторое время спустя я нашел в оригинальном списке IBM PC BIOS, который пришел с ссылкой IBM PC Technigal, что у него был генератор символов 8x8. Поэтому я нашел его и извлек его из дампа памяти. Поэтому я смог сгенерировать полный набор символов, поэтому я мог бы использовать строчные буквы ...

## ###   ####
 ##  ##     ##
 ##  ##  #####
 #####  ##  ##
 ##      ### ##
####
0
ответ дан 27 November 2019 в 03:59
поделиться

Однажды я использовал кнопки в FoxPro (Windows) для создания гистограммы в самой первой написанной мной программе. Для меня это было действительно круто.

0
ответ дан 27 November 2019 в 03:59
поделиться

Поэма Дэвида Карлайла для TeX:

\let~\catcode~`76~`A13~`F1~`j00~`P2jdefA71F~`7113jdefPALLF
PA''FwPA;;FPAZZFLaLPA//71F71iPAHHFLPAzzFenPASSFthP;A$$FevP
A@@FfPARR717273F737271P;ADDFRgniPAWW71FPATTFvePA**FstRsamP
AGGFRruoPAqq71.72.F717271PAYY7172F727171PA??Fi*LmPA&&71jfi
Fjfi71PAVVFjbigskipRPWGAUU71727374 75,76Fjpar71727375Djifx
:76jelse&U76jfiPLAKK7172F71l7271PAXX71FVLnOSeL71SLRyadR@oL
RrhC?yLRurtKFeLPFovPgaTLtReRomL;PABB71 72,73:Fjif.73.jelse
B73:jfiXF71PU71 72,73:PWs;AMM71F71diPAJJFRdriPAQQFRsreLPAI
I71Fo71dPA!!FRgiePBt'el@ lTLqdrYmu.Q.,Ke;vz vzLqpip.Q.,tz;
;Lql.IrsZ.eap,qn.i. i.eLlMaesLdRcna,;!;h htLqm.MRasZ.ilk,%
s$;z zLqs'.ansZ.Ymi,/sx ;LYegseZRyal,@i;@ TLRlogdLrDsW,@;G
LcYlaDLbJsW,SWXJW ree @rzchLhzsW,;WERcesInW qt.'oL.Rtrul;e
doTsW,Wk;Rri@stW aHAHHFndZPqpa.rtMRrgeLinZ.irLtYer.W,:jbye

запустите pdftex с этим файлом и удивитесь.

2
ответ дан 27 November 2019 в 03:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: