1. Ruby / Говнокод #25821

    0

    1. 1
    2. 2
    3. 3
    4. 4
    квик куик
    давайте обсуждать
    
    манки-патчинг это зло или добро?

    куииик

    Запостил: MAPTbIwKA, 10 Сентября 2019

    Комментарии (15) RSS

    • мартышкины заплатки
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • В «Си» нет мартышкиных заплаток. Потому я за «Си».
      Ответить
      • показать все, что скрытоvanished
        Ответить
        • Приведите пример хотя бы в «Ruby», чтобы даже обезьяна поняла, что это такое.
          Ответить
          • def p a
                #kkkuiik
            end
            
            
            p "a" # look, ma, p is broken


            в пиздончике так иногда патчат ``sys.stdout`` чтобы кышировать
            Ответить
        • В "РНР" возможно всё, если делать это через жопу. Есть и для этого костыль:
          https://www.php.net/manual/en/function.runkit-method-redefine.php
          Ответить
          • Именно поэтому я за «PHP».
            Ответить
          • А ведь полезная штука. Можно залатать методы фреймворка, не наследуясь от них и не патча файлы самого фреймворка.
            Ответить
          • Прикольно:
            https://www.php.net/manual/en/function.runkit-constant-redefine.php
            Ответить
            • antirunkit_protected_constant -- Define constant that can't be redefined even by runkin ($ 2.99)
              Ответить
              • runkit_real_redefine_constant -- Redefine constant protected by antirunkit_protected_constant
                Ответить
      • Есть, но надо к этому подготовиться и объявлять не функции, а указатели. Типа:
        char *_puts(char *s) {...}
        char *(*puts)(char*) = &_puts;


        В форте тоже можно, если используется косвенный шитый код и есть доступ к полям статьи, нужно просто записать адрес заменяющего кода. С остальными видами ШК тоже можно, но придеться заниматься модификацией нативного кода.
        Ответить
      • Хорошая мартышка может напатчить и сишный код тоже.
        Во-первых можно поменять код в памяти. В режиме, где страницы могут быть защищены от записи, сделать это не так-то просто, но можно (во всяком случае в мартышка-ос).

        Во-вторых можно намутить с препроцессором, подменив, напрмиер, printf
        Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий