"Опыт дизассемблирования большой .com - программы" - читать интересную книгу автора (Крупник А.Б.) ОПЫТ ДИЗАССЕМБЛИРОВАНИЯ БОЛЬШОЙ .COM ПРОГРАММЫ
А.Б.КРУПНИК В данной статье мне хочется рассказать о дизассемблировании большой программы (графического редактора). Не будучи знатоком ассемблера, не зная до сих пор, как использовать большинство возможностей своего дизас- семблера(DisDoc 2.3), я все же решился написать эту статью, так как пре- красно помню, в какой кромешной тьме начинал заниматься дизассемблирова- нием. Тогда, год назад, я попробовал дизассемблировать простенькую програм- му и был страшно удивлен тем, что дизассемблер делает это неправильно, и при повторном ассеблировании программа не работала так, как надо. Тогда же мне удалось поговорить со знающим человеком и, хотя я чувствовал себя на- ивным дурачком, мне удалось выяснить главное: ПОЛНОЕ,АВТОМАТИЧЕСКОЕ ДИЗАС- СЕМБЛИРОВАНИЕ НЕВОЗМОЖНО, над тем текстом, который выдает дизассемблер, нуж- но довольно долго работать, прежде чем ассемблирование этого текста даст ра- ботоспособную программу. В дальнейшем я постараюсь рассказать о тех приемах, которые превращают "плохой" текст в "хороший" , т.е. в текст, который не только дает корректно бы усовершенствовать исходную программу. ПОЧЕМУ DisDoc? SOURSER - это название знают все, кто хотя бы краем уха слышал о дизас- себлировании. Считается, что это дизассеблер замечательный, мощный, не име- ющий конкурентов. Я думаю, что слухи об огромных преимуществах SOURSERа силь- но преувеличены. У меня сложилось такое впечатление, что при дизассемблирова- нии небольших программ (до 7 кб.) SOURSER предпочтительнее. Когда программа велика (в моем случае - 58 кб ), SOURSER работает очень медленно и, на мой взгляд, не дает никаких преимуществ. Выбор дизассемблера DisDoc 2.3 был для меня во многом случаен. Начиная ра- боту, я получил тексты на ассемблере как с помощью SOURSERa (версия 3.07), так и с помощью дизассемблера DisDoc 2.3. Затем оба текста после устранения очевид- ных ошибок были ассемблированы. И вот, то, что было выдано SOURSERом, повисло сразу, а то, что выдал DisDoc 2.3, прежде чем повиснуть, вывело на экран нес- колько линий. Это и определило выбор. В процессе работы я не раз имел возмож- ность оценить основное преимущество дизассемблера DisDoc - интуитивно понятный, неизощренный, удобный и компактный листинг. Чтобы понять дальнейшее, необходимо познакомиться с отрывком из листинга, кото- рый выдает DisDoc 2.3 |
|
|