- 1
https://aww.moe/0fmynm.mp4
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−18
https://aww.moe/0fmynm.mp4
Интересно, зачем он там редактирует выхлоп из hex-rays (32 секунда)? Исходники потеряли?
Увы, ссылку потерял.
Они считают более простым непосредственно латать двоичный объектный код, используя прекрасную программу под названием SuperZap (или ее эквивалент на не-IBM машинах). Этот метод настолько хорош, что многие программы, работающие на ЭВМ фирмы ИБМ, не имеют ничего общего со своим собственным текстом на Фортране. В большом количестве случаев первоначальный символьный текст программы вообще не существует. Когда наступает время подправить такого рода программу, никакой администратор даже не думает послать на эту работу кого-либо, кроме настоящего программиста - никакой сосунок (структурный программист) не будут знать даже с чего начать. Это называется защита от несанкционированного доступа.
Многие ПХП программисты идут на сайт по ФТП и там латают HTML, CSS и PHP
В итоге их код не имеет ничего общего с тем что лежит у них в VCS
Ты хочешь сказать, что они используют VCS?!
Разве что заливают в git архивы Versia1.zip Versia2.zip, примерно как этот умник
"Алё, Вась? Слыш, не выкладывай ничего на сайт 15 минут, хорошо? Мне там надо кое-чо поправить'
http://govnokod.ru/17307#comment259930
Это ещё пустяки. Гораздо интереснее, когда в какой-нибудь организации бухгалтеры звонят друг другу по телефону: «Алё, Люсь! Ты можешь не делать никаких операций 15 минут? Мне нужно платёж провести». Транзакции придумали задроты.
Жаль что нет нормального декомпилятора для 16-бит интел, тогда б вот такого http://govnokod.ru/22504#comment374388 возможно не пришлось делать
> На самом деле, современные версии HexRays (плагин
> для превращения кода в C-код для IDA Pro)
> восстанавливают код достаточно точно.
[/quote]
ахахахахахахааа
Jeff Dean написал плагин к IDA который генерирует код си сразу с комментариями
Один раз в жизни он написал алгоритм O(log(N)): это был алгоритм для решения halting problem.
http://govnokod.ru/13242
Боюсь, что для процессоров с переменным размером инструкций и для программ, использующих царские оптимизации, нормального декомпилятора не будет.
это какой-то царский способ экономить место?
>>, что для процессоров с переменным размером инструкций и для программ, использующих царские оптимизации
да ну конечно не будет
поди мне -O4 декомпилируй
Это способ вые продемонстрировать своё превосходство.
На самом деле в некоторых случаях он действительно может быть полезен. Например, для прошивок и для всяких embedded-приложений.
С этим как раз особых проблем быть не должно. Допустим, есть некая последовательность байт и есть знание того, что будет именно происходить при прыжке в то или иное место. Скажем, вот такой пример для 64-битного Intel/AMD проца:
Есть множество мест, в которые можно прыгнуть, и при этом будет выполнятся та или иная цепочка инструкций. Это все можно скомипилировать в некую лапшу из кусков кода, которые друг в друга прыгают, и зная длины инструкций, можно их таким способом связать. Скажем, тот пример можно декомпилировать примерно так
Сложнее будет декомпилировать какую-нибудь питушню с самомодифицирующимся кодом, динамически-распаковывающимся кодом, всякой хуитой с сегментными регистрами (например https://ru.wikipedia.org/wiki/Unreal_mode ) и прочими подобными извращениями