Возвращение от машинного кода до исходного языка называют декомпиляцией. Дизассемблирование (идущий от машинного кода до ассемблера) может быть, покончили objdump -d
; objdump
часть стандарта binutils комплект средств разработки. В то время как декомпилятор может быть полезным инструментом в процессе, декомпилируя код с намерением изменения его, и перекомпиляция его редко является продуктивным способом изменить поведение программы. Вы проведете много времени, возвращая применимый исходный код, и что исходный код не будет ни в какой удобной в сопровождении форме.
Первый шаг в понимании, как программа работает, является средствами отладки. Используйте инструменты такой как strace
и ltrace
видеть, что системные вызовы и библиотека называют программой, делает. Используйте отладчик, такой как Gdb для продвижения через инструкции программы.
Если Вы очень удачливы, поведение, которое Вы ищете, может быть достигнуто с конфигурационным файлом или переменной среды. Следующий шаг сцепляется в программу и заменяет несколько функций Вашей собственной версией, при помощи LD_PRELOAD
связать библиотеку, определяющую Вашу собственную версию этих функций.
Декомпиляция обычно полезна, чтобы понять алгоритмы, используемые программой, например, записать другую программу с совместимым сетевым протоколом или форматом файла. Это - часто не очень полезный инструмент, когда Ваша цель состоит в том, чтобы изменить поведение программы.
Здесь есть две проблемы.
он должен иметь выключенные биты записи [119160] группы [119161] и [119162] другие [119163], чтобы другие пользователи не могли его изменить.
Чтобы это исправить, войдите в систему как [118811] root[118812] - вы сказали, что можете это сделать с помощью [118813]ssh[118814] - и наберите
или, в качестве альтернативы,
(В документе [118815] по стандартам для chmod[118816] более подробно описано, какие аргументы он использует)). Это восстановит биты режима в том виде, в каком они были при первой установке операционной системы. Когда вы перечисляете этот файл, он должен выглядеть следующим образом:
Как отметил @G-Man, файлы, находящиеся в режиме 777, могут быть перезаписаны недоверенными пользователями, и если это так, вы можете захотеть переустановить их с дистрибутивного носителя или из резервной копии.[118538].
Если вы получаете такое сообщение об ошибке
su: PAM adding faulty module: /lib64/security/pam_tally.so
su: PAM unable to dlopen(/lib64/security/pam_tally.so): /lib64/security/pam_tally.so: cannot open shared object file: No such file or directory
Выполните следующий шаг:
ln -s /lib64/security/pam_tally2.so /lib64/security/pam_tally.so
Затем попробуйте su. Он должен работать.