- 1
https://aww.moe/0fmynm.mp4
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−18
https://aww.moe/0fmynm.mp4
Интересно, зачем он там редактирует выхлоп из hex-rays (32 секунда)? Исходники потеряли?
j123123 22.03.2017 13:57 # −6
Commando 22.03.2017 14:04 # −3
j123123 22.03.2017 14:57 # −5
inkanus-gray 22.03.2017 15:08 # −5
Увы, ссылку потерял.
j123123 22.03.2017 15:14 # −4
inkanus-gray 22.03.2017 16:14 # −3
Они считают более простым непосредственно латать двоичный объектный код, используя прекрасную программу под названием SuperZap (или ее эквивалент на не-IBM машинах). Этот метод настолько хорош, что многие программы, работающие на ЭВМ фирмы ИБМ, не имеют ничего общего со своим собственным текстом на Фортране. В большом количестве случаев первоначальный символьный текст программы вообще не существует. Когда наступает время подправить такого рода программу, никакой администратор даже не думает послать на эту работу кого-либо, кроме настоящего программиста - никакой сосунок (структурный программист) не будут знать даже с чего начать. Это называется защита от несанкционированного доступа.
barop 22.03.2017 16:26 # −9
Многие ПХП программисты идут на сайт по ФТП и там латают HTML, CSS и PHP
В итоге их код не имеет ничего общего с тем что лежит у них в VCS
roman-kashitsyn 22.03.2017 16:28 # −1
Ты хочешь сказать, что они используют VCS?!
Разве что заливают в git архивы Versia1.zip Versia2.zip, примерно как этот умник
CHayT 22.03.2017 17:08 # −1
barop 22.03.2017 18:06 # −10
"Алё, Вась? Слыш, не выкладывай ничего на сайт 15 минут, хорошо? Мне там надо кое-чо поправить'
inkanus-gray 22.03.2017 18:13 # −5
http://govnokod.ru/17307#comment259930
Это ещё пустяки. Гораздо интереснее, когда в какой-нибудь организации бухгалтеры звонят друг другу по телефону: «Алё, Люсь! Ты можешь не делать никаких операций 15 минут? Мне нужно платёж провести». Транзакции придумали задроты.
roman-kashitsyn 22.03.2017 15:29 # −1
barop 22.03.2017 16:00 # −9
j123123 22.03.2017 16:06 # −3
barop 22.03.2017 16:08 # −9
j123123 22.03.2017 22:25 # −6
Жаль что нет нормального декомпилятора для 16-бит интел, тогда б вот такого http://govnokod.ru/22504#comment374388 возможно не пришлось делать
barop 22.03.2017 22:33 # −9
> На самом деле, современные версии HexRays (плагин
> для превращения кода в C-код для IDA Pro)
> восстанавливают код достаточно точно.
[/quote]
ахахахахахахааа
Jeff Dean написал плагин к IDA который генерирует код си сразу с комментариями
inkanus-gray 22.03.2017 22:55 # −5
barop 22.03.2017 23:14 # −11
inkanus-gray 22.03.2017 23:30 # −4
barop 22.03.2017 23:41 # −8
Один раз в жизни он написал алгоритм O(log(N)): это был алгоритм для решения halting problem.
gostinho 23.03.2017 22:12 # −15
inkanus-gray 22.03.2017 22:47 # −5
http://govnokod.ru/13242
Боюсь, что для процессоров с переменным размером инструкций и для программ, использующих царские оптимизации, нормального декомпилятора не будет.
barop 22.03.2017 22:51 # −10
это какой-то царский способ экономить место?
>>, что для процессоров с переменным размером инструкций и для программ, использующих царские оптимизации
да ну конечно не будет
поди мне -O4 декомпилируй
inkanus-gray 22.03.2017 23:02 # −4
Это способ вые продемонстрировать своё превосходство.
На самом деле в некоторых случаях он действительно может быть полезен. Например, для прошивок и для всяких embedded-приложений.
j123123 22.03.2017 23:42 # −4
С этим как раз особых проблем быть не должно. Допустим, есть некая последовательность байт и есть знание того, что будет именно происходить при прыжке в то или иное место. Скажем, вот такой пример для 64-битного Intel/AMD проца:
Есть множество мест, в которые можно прыгнуть, и при этом будет выполнятся та или иная цепочка инструкций. Это все можно скомипилировать в некую лапшу из кусков кода, которые друг в друга прыгают, и зная длины инструкций, можно их таким способом связать. Скажем, тот пример можно декомпилировать примерно так
Сложнее будет декомпилировать какую-нибудь питушню с самомодифицирующимся кодом, динамически-распаковывающимся кодом, всякой хуитой с сегментными регистрами (например https://ru.wikipedia.org/wiki/Unreal_mode ) и прочими подобными извращениями