Ассемблер и не только. Вопросы новичка.

Тема в разделе "WASM.BEGINNERS", создана пользователем Sturluson, 9 апр 2010.

  1. Sturluson

    Sturluson New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2010
    Сообщения:
    1
    Здравствуйте.
    Начинаю самостоятельно изучать ассемблер и возникли вопросы.
    1. В книге начинается изучение с рассмотрения архитектуры Intel 8086. Вопрос: ведь на ассемблере можно программировать и не интеловские, а скажем мотороловские(это я так на вскидку)? Это тот же ассемблер, я так понимаю, но в чем разница? Компиляторы и системы комманд другие?
    2. Вирусы переполняют буфер, чтобы получить управление. Какой буфер? В случае с 8086 это что? А в современных процессорах это что кэш L1, L2?
    Я понимаю, что эти вопросы не совсем корректные, но всё-таки.
    Заранее спасибо.
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Sturluson
    сходи в википедию, чтоли
     
  3. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
    упейся ап стену, заранее - спасибо
     
  4. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    учите то что учите. плюньте пока на вирусы, моторы и буфера. не стоит с такого начинать. запутаетесь только
     
  5. PowerASM

    PowerASM New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    59
    Займитесь лучше спортом - полезнее. А еще одного гадельщика (читай вирусописателя) это и в институте обучат.
     
  6. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    PowerASM
    в смысле на гопа учиться или тело попрекраснее отращивать? уточните этот момент
     
  7. PowerASM

    PowerASM New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    59
    qqwe
    А вот это уже на Ваш выбор, но согласитесь, что это куда полезнее чем просиживать штаны за компом набирая очередного трояна.
     
  8. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    может ТС хочет авером стать %)
    но по любому я бы постеснялся лезть на форум с такими вопросами
     
  9. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    PowerASM
    кому полезнее, в каком смысле полезнее и при чем к асму трои с вирями?
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Если человеку интересна програмная часть вобщем, без каких либо целей, то спустя время он неизбежно свяжется с малварью, ибо накапливается опыт, решаемые задачи становятся сложнее и к ним пропадает интерес, таким образом удовлетворение он найдёт только в вирях/троянах/сплоетах и тп.
    Если человек начинает интересоваться с чёткой конечной целью, как например отлом софта или написание вирей, то думаю из этого ничего хорошего не выйдет, ибо стезя слишком узкая ;)
     
  11. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Sturluson
    Архитектура процессора -- это, грубо говоря, его вид с точки зрения программиста: набор регистров, система команд, организация прерываний и т.п. Язык ассемблера прямо отражает архитектуру процессора, поэтому для каждой архитектуры он свой. Так, такой простой оператор Паскаля, как A := B + C; на ассемблерах разных архитектур будет выглядеть совершенно по-разному. Например, если предположить, что A, B и C -- целочисленные переменные размером 16 бит, то:

    - на 8086 и его современных продолжателях -- процессорах архитектуры IA-32:

    Код (Text):
    1. mov  ax, B
    2. add  ax, C
    3. mov  A, ax
    - на PDP-11:

    Код (Text):
    1. mov  B, A
    2. add  C, A
    - на VAX-11:

    Код (Text):
    1. addw3  B, C, A
    Ну и так далее. Посему, изучив ассемблер для одной архитектуры, Вы не сможете автоматом писать программы для другой архитектуры, хотя освоение других ассемблеров будет намного проще: несмотря на все различия, между ними много общего.

    Кэши никакого отношения к "этому буферу" не имеют. Буфер, который можно переполнить, лежит обычно в стеке. Ну а что такое стек -- учите ассемблер, и узнаете.

    Пы.Сы. Если думаете заняться вирусописанием и прочей деструктивной деятельностью, лучше не начинайте: такие "кулхацкеры" -- обычные чудаки на букву м, мало что из себя представляющие в профессиональном плане, ну а в человеческом -- просто подонки, находящие для себя радость в тех пакостях, которые они способны сделать обычным пользователям ("ламерам").
     
  12. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    Я думаю, что просто ломать надо учится тогда, когда уже умеешь строить.
     
  13. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    r90
    Скорей, ты сможешь качественно ломать только в том случае, если уже научился качественно строить :)
     
  14. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    1. прикладное программирование = знание алгоритмов + знание языка
    2. программирование на ассемблере = прикладное программирование + знание архитектуры конкретной системы

    Какой буфер? - буфером называют память отведенную под данные, и "хорошие программы" сами
    все проверяют.

    настоятельно рекомендую, для начала, попрактиковаться П.1
    но коротко->
    Код (Text):
    1. a       db 10 dup (0)
    2. ...
    3. mov   ecx, 100
    4. mov   ebx, offset a
    5. a: mov byte ptr [ebx+ecx],ecx
    6. loop a
    7.  
    8. или аналог на С
    9.  
    10. char  a[10];
    11. ......
    12. count = 100;
    13. for (i=0; i < count; i++)
    14.             a[i] = count;
    это затрет твою прогу за переменной a на 90 байтов, "переполняет буфер"

    если ты не понял что здесь написано, то садись за учебники и приходи через пол года
     
  15. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    Код (Text):
    1.   a[i] = i;
     
  16. PowerASM

    PowerASM New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    59
    at0s
    Access violation when writing 0xXXXXXXXX - запись в секцию кода! К тому же (даже если и разрешить запись в секцию кода) на процессорах классом выше i486DX это должно дойти только до команды loop a, а дальше пойдет выполняться белиберда.
     
  17. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    PowerASM
    :) и метка А и буфер А, ну поставь С
    в этом и смысл, или ты хотел чтоб я сейчас написал полностью рабочую прогу
     
  18. PowerASM

    PowerASM New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    59
    at0s
    Я хотел сказать, что буфер не будет обнулен до конца.
     
  19. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    at0s
    А я всегда думал, что программирование на ассемблере - это системное программирование
     
  20. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Возьми отладчик и ответь на свои вопросы сам