1. Assembler / Говнокод #17538

    +198

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    org 100h ; DOS, чёрной пеленой покрытый DOS...
    
    delGovnocode:
    mov eax,govnokod ; Помещаем в EAX говнокод
    xor eax,eax ; Обнуляем EAX
    
    govnokod db "AllGovnocodeInTheWorld" ; говнокод

    Самый эффективный способ уничтожения говнокода, который является говнокодом.

    Запостил: Mihip, 28 Января 2015

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

    • Степоненки сын?
      Ответить
    • Неправильное решение. Оно только уничтожает ссылку, но не сам говнокод.

      Вот как надо чистить:
      delGovnocode:
      mov esi,govnokod ; Помещаем в ESI адрес говнокода
      xor eax,eax ; Обнуляем EAX
      mov ecx, end_of_govnokod - govnokod
      cld
      rep stosb
      ret
      
      govnokod db "AllGovnocodeInTheWorld" ; говнокод
      end_of_govnokod db 0
      Ответить
      • > end_of_govnokod
        Скоро на экранах страны.
        Ответить
      • Shitcode =)
        Ответить
        • Это действительно говнокод. У строковых инструкций источник DS:[ESI] (или EAX), а приёмник ES:[EDI] (или EAX).

          Итого должна быть инструкция mov edi,govnokod (и при этом нужно убедиться, что в ES лежит селектор нужного сегмента).
          Ответить
          • > в ES лежит селектор нужного сегмента
            В современных осях, как правило, юзается flat адресация и во все сегментные регистры уже загружены правильные селекторы.
            Ответить
            • А вдруг автор — задрот и использует PAE? Ну а вдруг?
              Ответить
              • > PAE
                Зачем оно нужно в 2015 году?
                Ответить
                • Некоторые до сих пор не могут признать существования новых технологий с 1980 года
                  Ответить
                  • А некоторые не могут признать существования новых технологий с 1970 года и до сих пор пишут на языке, в котором модули и даже именованные константы эмулируются с помощью препроцессора.
                    Ответить
                    • Спасибо K&R за наше счастливое детство!
                      Ответить
                      • Спасибо Царю за то, что благодаря его энтузиазму всякие недоязыки до сих пор используются.
                        Ответить
                        • такие как С или такие как С++?
                          Ответить
                          • Оба, на самом деле. Но в крестах препроцессор всё-таки можно почти не юзать (кроме header guard'а и #include).
                            Ответить
                            • Или можно так юзать, что сам Господь устрашится.
                              Ответить
    • "ovnocodeInTheWorld" осталось, баран.
      Ответить
    • movzx для кого?
      Ответить
    • В школе ассемблер проходите?
      Ответить

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