Решил процитировать собственно написанную статью, которая размещена в моем блоге. Написана только для новичков (так как в асме я сам таковым являюсь). Если что-либо не так написал - пожалуйста поправьте, или напишите мне, чтобы поправил я. Данная статья не несет какой-либо конкретной спец. информации, а является скорее сборником ссылок на полезный материал. Меня, как человека, который интересуется разработкой и структурой приложений всегда интересовала одна деталь - это то, чем, как и на чем возможен взлом приложения. Допустим для избавления от триал-периода или банальной русификации. И интересовало чисто теоретически пока я не занялся я проходить один интересный Quest, на мною любимом Античате.Это был 2-ой по счету quest, который разрабатывал для аЧата уважаемый Rebz. Первый квест я прошел относительно давно, а до второго (вышедшего в феврале этого года) руки дошли только сейчас. Одно задание в этом квесте (который, кстати сказать имеет очень интересный сюжет) заключается в том, что надо получить мыло и ключ из программы, написанной на делфи и запакованной PECompact-ом. Я не стану рассказывать, как это сделать (кому надо догадается сам), но не в этом суть. Если интересно - можете сами попробовать пройти квест - это очень интересно и познавательно. Меня заинтересовал сам процесс работы, который подтолкнул меня к изучению низкоуровнего программирования aka Assembler-а, без знания которого, проделать все вышеуказанное слишком непонятно и сложно (хотя вполне возможно с помощью FAQ-а по квесту и топов на форуме). И начал я изучение с поисков того, чего собственно и собираюсь изучать - учебником, туториалов и прочих материалов, так или иначе связанных в данным вопросом. По-гуглив и почитав форумы я хочу выложить ссылки на найденные мною материалы, а также ссылки, которые могут нам пригодиться в освоении языка. Начнем-с: Ресурсы, которые нам помогут: CRACKL@B - гениальный ресурс, в представлении не нуждается [WASM] - огромная библиотека статей, туториалов и прочего, касающегося Asm-а Конференция OverClockers.ru Форум VinGrad.ru Подраздел программирования Antichat Ресурс KALASHNIKOFF.RU Пособия, учебники и прочее: Зубков С.В. ”Assembler - Язык неограниченных возможностей” 1999 год Издательство «ДМК Пресс» Сборник туториалов от Iczelion`a на русском [W A S M _ R U] СТАТЬИ Компиляторы - Программирование на языке Assembler в FASM АССЕМБЛЕР И ПРОГРАММИРОВАНИЕ ДЛЯ IBM PC - Под редакцией Еpшова В.Г. ЯЗЫК МАКРОАССЕМБЛЕРА IBM PC - (Справочное пособие) Составитель: В.Н.Пильщиков (МГУ, ВМК) Flat assembler 1.64 - Мануал программера Далее, перед нами стоит проблема выбора компилятора. На данный вопрос у каждого найдется свое мнение, поэтому я считаю, что решать лучше вам самим. Мой же выбор пал на 2 из них: MASM v 9.0 (Именно он описывается в книге Зубкова) FASM v1.67.21 На этой ноте я закончу первую часть данного HOWTO и начну изучение Великого и Могучего Asm-а. З.Ы. На момент написания статьи все ссылки были живы. Если сейчас, кликнув мышкой по какой-либо из ссылок и получив ошибку 404 не ругайте автора aka меня, а просто попробуйте найти данный материал сами (открою тайну - на поиски данного материала у меня ушло времени меньше, чем на написание данного howto
это не ужасно, но это и так написано на каждом интернет-углу. Человек, который собирается что-то учить и не может найти даже такую информацию сам - просто бесполезен и потерян.
Noman Всего конечно много написал! Но в P.S. бы выразил какую именно книгу взять и начать + компилятор к этой книге, чтобы не попутались в инфе...
Я не стал этого писать по той причине, что у каждого собственное мнение на этот счет, и однозначно писать, с чего начать я просто не имею права. Могу лишь выразить свое имхо, Зубков + masm
Noman Согласен! Я тоже за MASM, ибо все серьезные проекты ( к примеру Pinch\MicroJoiner) которые известны на сей день - это на MASM'e... ИМХО начать с MASM. В дополнение темы советовал бы начать с книги - "САМОУЧИТЕЛЬ ASSEMBLER" Александр Крупник, книга не требует никаких начальных знаний по программированию и наченается с того, что учат складывать ДВА + ТРИ P.S. Noman За старание +2
>> ибо все серьезные проекты ( к примеру Pinch\MicroJoiner) которые известны на сей день - это на MASM'e... пинч и микроджойнер это ж офигеть серьезные проекты.. ) их написали на масме, наверно, тока потому, что их автор пишет под этот транслятор.. как будто, например, на фасме нельзя написать им аналоги.. а Крупник мне не особо понравился - все очень уж кратко и упрощенно у него.. лучше уж начать с учебника Юрова + Зубков..
Digimortal Тоже прав по своему! Fasm тоже рулит. Думаю не стоит разводить тему-спор на чем лучше Каждый в силу тех или иных причин идет по своему пути развития, советует то, что близко ему, свои книги и свои методы P.S. Каждому своё (С)
Ссылка на -> Зубков С.В. ”Assembler - Язык неограниченных возможностей” 1999 год Издательство «ДМК Пресс» , т.е. http://www.os.edu.ulsu.ru/files/zubkov.chm - БИТАЯ!!! Noman Перезалей, плз, хочу поглядеть как и про что пишут!
О спасибо, благодаря такой информации я наконец стану кодером на осенблере... И ещё вы зря делаете выбор в сторону MASM/TASM, особенно когда учитесь. FASM - единственный, пожалуй, удобный инструмент. Там не нужно заморачиваться с тем, чем заморачиваются кодеры на Visual Studio 6.0. Там все логично, эстетично, закончено и понятно. Мы что-то говорли с Great о том, что мол, нет в FASM нормальных макросов - но это не настолько большая проблема. И ещё посл. версия фасма не такая как в первом посте - давно вышла новая.
Исходники из книги Калашникова - Ассемблер? Это просто, компилить лучше масмом через Volkov Commander в винде, если вдруг кто взялся)
http://bit-bait.ucoz.ru/Manuals/assembler_na_primeraxbazovyy.rar Воть очень хорошая книжка! Название: Ассемблер на примерах. Базовый курс Автор: Рудольф Марек Эта книга представляет собой великолепное практическое руководство по основам программирования на языке ассемблера. Изложение сопровождается большим количеством подробно откомментированных примеров, что способствует наилучшему пониманию и усвоению материала. Доходчиво объясняются все основные вопросы программирования на этом языке. Вы узнаете, как писать ассемблерные программы под разные операционные системы (Windows, DOS, Linux), как создавать резидентные программы, как писать ассемблерные вставки в программы на языках высокого уровня и многое другое. Попутно вам будут разъяснены основные моменты работы процессора, операционных систем, управления памятью и взаимодействия программ с аппаратными устройствами ПК - то есть все то, без знания чего нельзя обойтись при программировании на языке низкого уровня, которым и является ассемблер. Книга написана доступным языком. Лучший выбор для начинающих.
Digimortal Насчет Юрова не знаю, но Зубков вообще "не зачет" для начинающего!!! Только инфа без обоснований и соответствующих примеров... Нельзя такое советовать (гм, минисправочничек на chm), т.к. начинающего эта непонятка испугает и отпугнет от дальнейшего изучения... Нужна хорошая книга с примерами и картинками Что-то то, как предложил Lamia
tclover Я видел только литературу Зубкова предложенную здесь!!! Мб full-версия книжки лучше, но chm - это не книга, а справочник получился. Любая книга хороша по своему, но здесь дело не в том... Для начинающего пользователя, который вообще не знает программирования и хочет начать этим заниматься, то эта книга, скромно говоря, не очень подходит... P.S. А вообще лучшие книжки по асму смотрим ЗДЕСЬ