Часто вижу рекомендации по изучению данных мануалов. Такой вопрос: насколько оно того стоит? Есть желание познать дзен в ассме, на данный момент иду по урокам Iczelion'а. Основная цель: vx p.s. инглишом владею хорошо. Хотелось бы услышать мнение Indy_ по поводу того как вообще развиваться в vx. Сейчас есть опыт системного програмирования под *nix'ы, но хочу сменить профиль в сторону win32. Можно в личку.
psh3nka, Вы сюда через дамаг попали, но не суть важно. Там они не правы.) Вопрос общий, поэтому нельзя ответить конкретно. Интел доки являются фундаментальными по архитектуре. Любой фундаментальный механизм в них описан досконально, следовательно любой вопрос, который является фундаментальным и связан с архитектурой описан в этих доках. Есть amd аналогичные доки, там немного иной стиль описания. Но более годными считаются(и я так думаю) маны Intel. Без этих фундаментальных знаний вы не сможите понять как всё устроено в этих системах. Изначально нужны базовые знания, поэтому маны разделены на соответствующие части. Изучение их происходит по логическим цепочкам - когда базовое понимание наступит, тогда в дальнейшем понимать(получать инфу) станет просто. Так же в Интел манах важна внимательность, это не общего назначения документация, а чёткая на железо, поэтому каждое предложение в них несёт реальную инфу и это нельзя пропустить. > Хотелось бы услышать мнение Indy_ по поводу того как вообще развиваться в vx Для начала нужно понять что есть викс, зачем вам это нужно(источник интереса, хотя это понятно что всё с этим связано весьма интересно, так как во первых отлично от всего остального, логично етц). Так же следует сказать сразу что сейчас произошло разделение по уровню знаний. Техники виксов сейчас стали весьма сложны, что требует обширной фундаментальной базы знаний, вот пример http://wasm.in/forum/threads/wsw.31899/#post-384452
Простое изучение этих мануалов скучное занятие и к тому же бесполезное. Лично я начал подробно и досканально узучать эти малуалы лишь тогда, когда пришлось писать свою виртуальную машину для x86 кодеса. До этого только мельком туда заглядывал. Очень туманная у вас цель. Советую выбрать в качестве основной более достижимую цель. А vx уже заниматься "по вечерам", т.к. это по большей части как искусство (не всем дано). Я вот себя к vx никак не отношу (видимо не дано), хоть и работаю в сфере создания "зловредов". Вот это вас потянуло. На мой взляд сейчас вся системная разработка плавно переходит как раз на *nix'ы. Я вот и сам последние 2 года занят погружением в андройды и ARM'ы. На никсах тоже полно работёнки в сфере vx. Недавно обращались по поводу патчинга модема на Qualcomm устройстве. Поэтому советую учесть нынешние реалии.
Да. А на дамаг я попал через факав Спасибо вам за разернутый ответ. Учту. На данный момент vx меня привлекает своей сложностью и в то же время недоступностью. Основной(!) задачей сейчас является приобретение той самой фундаментальной базы. В идеале конечно потом хотелось бы монетизировать приобретенные знания, но это не горит. Я готов потратить на обучение ровно столько времни, сколько понадобится для углубленного понимания сферы. С "характером работ" пока точно не определился (оно и понятно, не все еще испробовано и изучено), но если привнести больше конкретики, то исходники Pony для меня являются основным ориентиром к чему стоит стремиться на данный момент. Что можете посоветовать касательно фундамента помимо Iczelion'a ?
Спасибо за ответ! Дело в том, что в данный момент работаю в сфере *nix разработки, поэтому уже немного подташнивает от них. Все предыдущие несколько лет жизни с ними связаны. Поэтому ,пока идет развитие на работе, в свободное время хочется двигаться немного в ином направлении. Выше я конкретизировал свои ближайшие цели в ответе Indy_.
есть довольно много книг которые неплохо бы прочитать . В качестве общего развития рекомендую книги Соломона и Русиновича, а так же маст хэв Рихтера. Это сильно укрепит вашу базу по знанию Windows платформы и ее внутреннего устройства (но только поверхностно - детали придется добывать самим). Но это не даст вам развития без практики. Поэтому - научитесь ставить себе задачи сами. Тогда у вас не будет вопросов "зачем мне читать Intel Manuals" - Их и не надо читать по типу какой то повести от корки до корки - их надо открывать как справочник и находить там нужные вещи, которые нужны для решения поставленной задачи. Вы же не читаете MSDN просто так от нефиг делать по алфавиту? Вот тут так же. Ну а если вы пришли из мира опенсурса - нужно будет вам научится реверсингу. Вот тут и пригодится знание асма. Как то так
psh3nka, Получить реальный результат - в теме викс это знания и общее понимание на высоком уровне, к примеру способность посмотреть код и сразу найти в нём уязвимости. Это возможно при отличном понимании не только языковых конструкций, но так же архитектуры. Так же это знание техник и способность их создавать, что возможно только при отличном общем понимании. Что бы получить результат, нужно изучать, непрерывно. Перерыв создаёт проблемы, так как происходит утеря смысла. Не нужно начинать со всякого дерьма, типо малвари. Нужно отлаживать и реверсить обычные нормальные коды, это приведёт к вопросам, поиску ответов в матчасти и закреплению инфы(осознанию). Постепенно со временем это приведёт к общему пониманию. Трогать малварь вообще не следует по началу, это создаст не корректное понимание, по множеству причин - кривых глобальных техник, выносящие новичку мозг морфы/обфускации/виртуализации и прочее. И главное - идеологии(FUD и прочий фейк). Следует выбрать простейшую интересную задачу, изучить её досконально, проанализить. Потом подумать над полученными знаниями - с чем они связаны, как всё устроено. Так рекурсивно возникнут новые задачи. Тогда придёт со временем осознание, так всегда и везде.
TermoSINteZ, Не согласен. Их не читают, если есть понимание архитектуры. Иначе они изучаются последовательно. Пока не придёт общее понимание. Вы бы полезли кернел отлаживать не зная как базовой так и системной архитектуры, много бы вы там отладили и поняли..
TermoSINteZ, Что именно не читал, о чём вы говорите. Вот если я к примеру какую то архитектуру не знаю, что я буду делать - я в начале изучу архитектуру(базовую) и систему команд. У меня вот идея на пике запилить девайс из пар темы, но я не помню систему команд. Хотя в общем понимаю архитектуру. Что бы реализовать нужно взять ман на проц и полностью его изучить. Мне как минимум вспомнить систему команд. Вы как всегда что то отрешённое говорите. Увидеть в дизасме код к примеру - для человека первый раз который это увидит придётся обратится к базовым докам и в начале по архитектуре, только потом по системе команд. И это при условии норм знания алгоритмов и общих принципов - способность описать формально идею, алгос.
Indy_, говорю о том, что вы как всегда читаете между строк. А потом пишете "не согласен" и потом выдаете, то о чем писал собеседник. Круто
TermoSINteZ, Это вы читаете между строк и пишите это только что бы найти причину меня забанить, имхо. Кстате а чего ваш блог заглох овер N лет назад, вы вообще что то делаете кроме как модерации с целью бана ?
Indy_, Что-то делаю, сам пока не понимаю что, но делаю. Блог - это не то. А вот на васме публикации - уже полезнее. Чтож , на этом и остановимся, не будем мешать ТСу узнавать , как стать vx-сером. Кстати, "vx" - если напечатать на русской раскладке будет "мч" - неплохо так совпало.
Понял вас. Больше всего на данный момент стремно именно увязнуть в процессе обучения для того, чтобы потом начать учиться в vx. Одно дело разбирать малварь, понимать что она делает и как работает, другое учить кучу мат.части, чтобы потом *может быть* перейти к изучению самой малвари. А под простейшими задачами вы что подразумеваете? К слову об архитектуре. Несколько месяцев назад просмотрел все 12 уроков Кринкина по архитектуре пк, так что базовые представления имеются.
Это все ерунда. Вы бы лучше прочитали архитектуру, поставили задачу и сделали бы свою vx поделку. Пусть даже поделку но свою. Без копипаста, без всяких "посмотрел и скопировал" Зря потраченное время, ничего личного не имею к автору сие труда, но лично вы просто потратили время. Смотреть уроки - это все равно, что смотреть телевизор. Считайте, что все придется изучать заново. Оно не закрепится в памяти как надо. Просто на будущее вам совет, не делать так больше.
psh3nka, > увязнуть в процессе обучения для того, чтобы потом начать учиться в vx. Как вы не поймёте. Нету никакого для вас викс. Для вас есть предмет изучения. > Одно дело разбирать малварь, понимать что она делает и как работает Я могу открыть отладчиком любое место не то что юзер кода, но ядра и буду отлично ориентироваться там. Так как я читаю асм кодес не хуже чем русский язык. Но на это ушло овер десять лет. Это просто к примеру, не знаю как есчо обьяснить. В таком случае я открываю семпл отладчиком и листая его дизасм понимаю что оно делает и как работает. При отладке я знаю все фичи ядра, как и что нужно сделать и как оно работает. Без этого понимания так сделать невозможно. Это понимание основано на длительном изучении матчасти и непрерывной практике. И начинал я как и вы с простых вещей. В этом есть есчо и эмоциональный момент - так например некоторый обьект может казаться слишком сложным для понимания, что подавляет желание его узнать и сам процесс его изучения.
Хорошо. Забыли о vx. Тогда как примерно может выглядить путь развития начиная с углубленного изучения архитектуры и манов? Архитектура->ассм->реверс->...
Для меня это было очень хорошим введением. Самое главное ,что было интересно. К тому же я не просто сидел и вдуплял в монитор Все анализировалось, записывалось, рисовалось и гуглилось за дополнительной инфой.
psh3nka, Проще показать на примере. Мне вообще не интересна уже малварь, иногда очень редко я что то изучаю по семплам, вот к примеру https://ru-sf.ru/threads/konkurs-s-prizami-ot-nano-antivirus.3192/ это пятиминутные факав тесты. Они являются примитивными и никакого для меня интереса не представляют. Сегодня я смотрел сурцы ядра(wrk) что бы понять почему в логе по рабочему набору сохраняются адреса смещённые на 1. Ядро не вносит поправки, посему пришлось обратится к манам для подробного изучения сохраняемой инфы в ловушках. У вас влечение к малваре - это не vx, был тех пик, теперь же вся малварь является унылым говном. Это даже нет смысла изучать, лучше посмотреть реализацию защиты протекторов, это защита софта. Но опять же это интересно с алго стороны и мне, так как я собираюсь обрабатывать это автоматикой(тема для вас оверхед). Вам это не нужно. И не с этого начинают. Возьмите отладчик и откройте им элементарное приложение. Пусть это будет классическим блокнотом. И изучите как это всё устроено и работает. Когда будет общее знание то вы автоматически сможите понимать как работает какой то малварный семпл. Или любой иной код. Просто у малварки свои пусть и примитивные и стандартные, но техники. Так же для их понимания необходимо знать фундамент. Общее знание включает в себя частное, а интересующий вас "vx" это знание частное.