1. Куча / Говнокод #25861

    −102

    1. 1
    Забаньте stertor'а.

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

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

    • Если бы. Этот день стал бы самым счастливым для меня.
      Ответить
    • Ахах
      Turbo Dump  Version 6.5.2.0 Copyright (c) 1988-2014 Embarcadero Technologies, Inc.
                          Display of File stub.bin
      
      Old Executable Header
      
      DOS File Size                                       1740h  (  5952. )
      Load Image Size                                     1460h  (  5216. )
      Relocation Table entry count                          0026h  (    38. )
      Relocation Table address                              0040h  (    64. )
      Size of header record      (in paragraphs)            000Eh  (    14. )
      Minimum Memory Requirement (in paragraphs)            052Dh  (  1325. )
      Maximum Memory Requirement (in paragraphs)            A52Dh  ( 42285. )
      File load checksum                                    0000h  (     0. )
      Overlay Number                                        0000h  (     0. )
      
      Initial Stack Segment  (SS:SP)                    0243:4000
      Program Entry Point    (CS:IP)                    0000:0180
      
      Relocation Locations (38 Entries)
      
          0000:0008    0000:0020    0000:009B    0000:00AC    0000:00CD
          0000:00D7    0000:00E7    0000:0115    0000:0142    0000:0183
          0000:018E    0000:01A6    0000:01AB    0000:01BE    0000:01C3
          0000:01D2    0000:01D7    0000:01F3    0000:01F8    0000:0211
          0000:0216    0000:021B    0000:024D    0000:0252    0000:0264
          0000:026F    0000:027C    0000:0299    0000:029E    0000:02A3
          0000:02AD    002B:0001    002B:011B    002B:0310    002B:0CE9
          002B:0D04    002B:0D1A    002B:0D39
      
      ERROR: Unknown secondary signature: 5A4D
      Ответить
      • смутно помню что MZ можно писать и как MZ, но видимо абракадабро про это не знает

        Ай да Марк Збыковски, ай да плевок в вечность
        Ответить
        • Лол, сейчас попробую вутесвопнуть и посмотреть чего получится
          Ответить
          • Нет, тепрь по другому обсирается
            Turbo Dump  Version 6.5.2.0 Copyright (c) 1988-2014 Embarcadero Technologies, Inc.
                                 Display of File stub.bin
            
            Old Executable Header
            ERROR: Invalid signature for an .EXE file - found 4D5A, expected 5A4D
            Ответить
            • Прошу прощения, а что за прыщепердолинг вы обсуждаете?
              Ответить
              • Лично я змиюсь с трубо дупа, который нашел в заголовке e_lfanew = 00000000, туда сикнул и прочитал заголовок еще раз, удивившись сигнатуре MZ
                Ответить
                • А я ламер, я забыл про байтордер и 5A4D прочитал как ZM.
                  А почему он два раза прочитал?
                  Потому что указатель lfanew на тт же самый хедер?
                  а какой магикнамбер должен быть у новово хедера?
                  Ответить
                  • Я проверил, оно запускается и с MZ и с ZM. Марк охуенно себя увековечил.

                    >> указатель lfanew на тт же самый хедер
                    >>
                    Ну он просто обнулен чтобы вопросов не возникало.

                    >> какой магикнамбер
                    >>
                    Их много разных бывает
                    Ответить
                    • тогда почему обосрался турбо? и что такое вторичный зоголовок?
                      Ответить
                      • вероятно потому что слепленных вместе MZ + MZ не бывает, так бы он вообще зациклился
                        Ответить
                  • >> а какой магикнамбер должен быть у новово хедера?

                    PE у экзешников (а также dll, sys etc) Win32 (и Win64). 32-битные и 64-битные отличаются «моделью процессора», которая идёт вскоре после сигнатуры.

                    NE у 16-битных экзешников Windows 3.x и OS/2.

                    LE у VXD в Windows 3.x и 95/98/Me. Они 32-битные, кстати.

                    LX у 32-битных экзешников OS/2.

                    Другие сигнатуры используются расширителями DOS. Но зачастую даже у расширителей DOS сигнатуры стандартные (например, LE у DOS4GW, PE у борландовского 32RTM).
                    Ответить
                    • https://www.list-org.com/image/www/site_77818.jpg
                      Ответить
                    • тогда почему обосрался турбо? и что такое вторичный зоголовок?!
                      Ответить
                      • вероятно потому что слепленных вместе MZ + MZ не бывает, так бы он вообще зациклился
                        Ответить
                      • Ну вообще e_lfanew = 00000000 означает, что второго заголовка не будет, это чистый досовский экзешник (без виндовой или какой-то ещё части).

                        Почему обосралась утилита «Turbo Dump», я не знаю. По идее она должна была ответить, что больше заголовков нет.
                        Ответить
                        • >> e_lfanew = 00000000 означает, что второго заголовка не будет
                          >>
                          А это есть в спеках?
                          Ответить
                          • Надо поглядеть.

                            Смотри, когда-то «Windows» и «OS/2» не было, файлы с сигнатурой MZ были только для «DOS». Потом под e_lfanew приспособили одно из неиспользуемых полей. Угадай, чем старые линкеры по умолчанию забивали неиспользуемые поля.
                            Ответить
                            • >> одно из неиспользуемых полей
                              >>
                              Ничего подобного. Заголовой DoS - 28 байт.
                              Ответить
                              • Ты прав. Всё, что после e_ovno (количество оверлеев), не является обязательным. e_lfanew как раз находится в необязательной части и может быть засрано чем угодно. Чтобы убедиться, что e_lfanew не перекрыто кодом, нужно проверить размер заголовка (e_cparhdr). Если размер заголовка позволяет вместить e_lfanew, то его можно читать, иначе его и смотреть бессмысленно.
                                Ответить
                              • struct DOS_Header 
                                 {
                                // short is 2 bytes, long is 4 bytes
                                     char signature[2] = { 'M', 'Z' };
                                     short lastsize;
                                     short nblocks;
                                     short nreloc;
                                     short hdrsize;
                                     short minalloc;
                                     short maxalloc;
                                     void *ss; // 2 byte value
                                     void *sp; // 2 byte value
                                     short checksum;
                                     void *ip; // 2 byte value
                                     void *cs; // 2 byte value
                                     short relocpos;
                                     short noverlay;
                                     short reserved1[4];
                                     short oem_id;
                                     short oem_info;
                                     short reserved2[10];
                                     long  e_lfanew; // Offset to the 'PE\0\0' signature relative to the beginning of the file
                                 }


                                я хз что эти дятлы из pre99 времен называют словом шот, но думаю что это два байта

                                как-то выходит сильно больше 28ми

                                правда, все что ниже cs может уже и новодел
                                Ответить
                                • Всё, что ниже noverlay, является новоделом.

                                  relocpos — это важная инфа, она указывает на таблицу, само существование которой отличает EXE от COM. Без этой таблицы EXE-файл нельзя загрузить по произвольному адресу.

                                  Использовалось ли где-то поле noverlay, я не знаю. Например, Борланд стандартные досовские оверлеи не использовал, он использовал свой формат оверлеев с сигнатурой FBOV. Оверлей можно было пришить к экзешнику подобно тому, как PE пришивается к MZ.
                                  Ответить
                                  • куи-куи
                                    ты прав
                                    вот тут хорошо написино
                                    https://books.google.ru/books?id=Id9cYsIdjIwC&pg=PA57&lpg=PA57&dq=relocpos&source=bl&ots=zv1APBlxwx&sig=ACfU3U1jkvnV3GTPQ1oAZgsGGus6wGqxrQ&hl=en&sa=X&ved=2ahUKEwjMyKLy9-LkAhWa7aYKHbciAQ4Q6AEwAHoECAkQAQ#v=onepage&q=relocpos&f=false
                                    Ответить
                                    • гг

                                      скачал тут https://www.twirpx.com/file/1236597/

                                      буду читат
                                      Ответить
                                      • Это какой-то pudn для русни?
                                        Ответить
                                        • нет, это для программитов

                                          тебе там не инересно будет, забей
                                          Ответить
                                          • >> twirpx
                                            >> для программитов
                                            Как же я угораю, с ватн­ика-программита!

                                            Кстати, у книги какая-то хуита с годом издания 1999 или 2000

                                            А еще
                                            $Revision: 2.2 $
                                            $Date: 1999/06/09 00:48:48 $
                                            вместо библиографической справки
                                            Ответить
                                      • Почти дословно повторяет майкрософтовский текст, лол.
                                        Ответить
                                        • Алсо, ни слова про NE и прочие LX, говно, короче.
                                          Ответить
                                          •                                                                ,                                         ..  ..  ..     
                                            `7MMF'  ,d8o                              69  69        ,dMMMP'                                           `bq `bq `bq   
                                              MM   6P'                                 `--'        dP                                                   YA  YA  YA  
                                              MM  ,9      ,6"Yb.  `7MM' ,M8 ,pW"Wq.`7MMF'`7MMF'    M,dW"Wb.   ,6"Yb.  `7MM"""M ,pW"Wq.`7MMpdMAo.        `Mb `Mb `Mb 
                                              MMmd<      8)   MM    MM  j  6W'   `Wb MM   ,MM      MW'   `Wb 8)   MM    MM   `6W'   `Wb MM   `Wb         8M  8M  8M 
                                              MM  `YM.    ,pm9MM    MMmd   8M     M8 MM ,' MM      MM     M8  ,pm9MM    MM    8M     M8 MM    M8         8M  8M  8M 
                                              MM   `Mb   8M   MM    MM `M  YA.   ,A9 MM'   MM      YA.   ,A9 8M   MM    MM    YA.   ,A9 MM   ,AP        ,M9 ,M9 ,M9 
                                            .JMML.  `MMa.`Moo9^Yo..JMM. YMk `Ybmd9'.JMML..JMML.     `Ybmd9'  `Moo9^Yo..JMML.   `Ybmd9'  MMbmmd'         dM  dM  dM  
                                                                                                                                        MM            .pY .pY .pY   
                                                                                                                                      .JMML.         ''  ''  ''
                                            Ответить
                                          • lol
                                            
                                            
                                                           ____                    _____     _   _   _   _    _    
                                             _   _   _ __ |  _ \ ___    _ __  _   |_   _|__ | | | | | | | |  / \   
                                            | | | | | '_ \| |_) / _ \  | '_ \| | | || |/ _ \| |_| | | |_| | / _ \  
                                            | |_| | | | | |  __/ (_) | | | | | |_| || | (_) |  _  | |  _  |/ ___ \ 
                                             \__,_| |_| |_|_|   \___/  |_| |_|\__,_||_|\___/|_| |_| |_| |_/_/   \_\
                                                                                                                   
                                            __        ___      __  ______  
                                            \ \      / (_)_ __ \ \/ /  _ \ 
                                             \ \ /\ / /| | '_ \ \  /| |_) |
                                              \ V  V / | | | | |/  \|  __/ 
                                               \_/\_/  |_|_| |_/_/\_\_|
                                            Ответить
                              • ЭТО У ВАТНИКОВ ИЛИ У ВСЕХ?
                                Ответить
                                • Это у ватников. У Чака Норриса, например, экзешники вообще без заголовка.
                                  Ответить
                        • может турбо дампу похую на досовские икзешники в 2014 годуу?
                          Ответить
                          • А вот это всё он вывел не для досовского экзешника?
                            Initial Stack Segment  (SS:SP)                    0243:4000
                            Program Entry Point    (CS:IP)                    0000:0180


                            Значит, дампилку досовской части всё-таки сохранили, но убрали какой-то if, который проверяет отсутствие второй части.
                            Ответить
    • показать все, что скрытоАх ты, паскуда, тоже хотел меня извести.
      Ответить

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