Ассемблер и Си для Хакера #2. RadAsm и Pelles C. Простая программа на Masm32 и Си.

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии •

  • @eugenevladoff2758
    @eugenevladoff2758 9 месяцев назад +4

    Очень по кайфу такое смотреть.

  • @Alexander_Gurov_RF
    @Alexander_Gurov_RF 9 месяцев назад +1

    Я Pelles C пользовался - очень хорошая штука. Удобно для прототипирования на чистом си.

    • @firststepsforward
      @firststepsforward  9 месяцев назад

      Да. Просто и функционально.

  • @IVAR-uq6qz
    @IVAR-uq6qz 10 месяцев назад +5

    Большое спасибо!

  • @MixTeamLP
    @MixTeamLP 3 месяца назад

    обожаю лоу левел кодинг. Написал свой яп на чистом си со своим асемблером и компилятором но пора и реальный асм выучить. Лайк подписка

  • @carcinogen0075
    @carcinogen0075 4 месяца назад

    золотой человек, спасибо большое!

  • @AMith-lv2cv
    @AMith-lv2cv 10 месяцев назад +2

    🔥просто шик

  • @mr.Dristed
    @mr.Dristed 9 месяцев назад +1

    отличные видосья. подписался. спасибо

  • @dregster564
    @dregster564 9 месяцев назад +2

    ваще круто!

  • @shinjinko
    @shinjinko 4 месяца назад

    Спасибо за видео!!)

  • @aluka8413
    @aluka8413 2 месяца назад

    Спасибо!

  • @-wx-78-
    @-wx-78- 9 месяцев назад

    9:26 Директива “option casemap: none” работает как раз наоборот: определённые или описанные в зоне её действия идентификаторы сравниваются буквально так, как указаны. Есть ещё “casemap: notpublic”, тогда регистрозависимы только публичные/внешние (это значение по умолчанию), и “casemap: all” - все переводятся в верхний регистр.
    16:50 Код очень похож, но лучше было бы показать именно тот ассемблерный исходник, что был ранее. 😉

    • @firststepsforward
      @firststepsforward  9 месяцев назад

      Да, всё верно. Надо было вообще убрать option casemap: none. В опциях - ML.EXE /Cp.

    • @-wx-78-
      @-wx-78- 9 месяцев назад +1

      @@firststepsforward Не-не, notpublic и all для других целей; в 16-битной винде были паскалевские соглашения о вызове, значит внешние имена в верхнем регистре (тогда и локальные различать не стоит). Если внимательно присмотреться, четверть (если не половина) опций ассемблера/линкера - костыли различной степени корявости. Чего одна секретная /KnowEAs у 16-битного линкера стоит. 😉
      Покрутил на досуге прогу по-разному: сразу из-под ML 512 байт; если руки приложить (но не слишком) - 454 (прибил ILT, приклеил IAT к IDT и использовал то, что менеджер памяти NT+ выдаёт новые страницы занулёнными). Чтобы сильно меньше - надо изгаляться: стаб 64 плюс заголовки PE 24+224 плюс одна секция 40, итого те же самые 352. Код и строки 60 (если без ExitProcess, ретом), ещё импорт… не разгуляешься. Разве что сделать импорт по ординалу.

    • @firststepsforward
      @firststepsforward  9 месяцев назад

      По ординалу не надёжно, никто не знает о намерениях Microsoft - могут переделать библиотеки. Лучше по именам, мне кажется.

  • @madeinussr1983
    @madeinussr1983 4 месяца назад

    А вот и мой комментарий. Пригодится))

    • @firststepsforward
      @firststepsforward  4 месяца назад

      Благодарю! Конечно пригодится!

  • @ДональдДрамб
    @ДональдДрамб 11 дней назад

    Скачивать exe с неизвестного сайта от анонимного автора в серии видео Ассемблер и Си для ХАКЕРА (!), устанавливать от имени администратора запароленный exe, содержащий WinSpy, Spy++ - звучит как анекдот.
    Возможно пароль установлен для дальнейших уроков дизасемблирования, в результате которых найдется пасхалка, например в виде имени автора, пусть будет Сергей Валериевич Л, но за видеоуроки - спасибо

    • @firststepsforward
      @firststepsforward  11 дней назад

      Сапсибо!
      Я уже неоднократно пояснял: можно скачать обыкновенный архив, а не самораспаковывающийся exe-шник. Внутри подробная инструкция по ручной настройке.
      Мне кажется, что я экономлю время пользоватилям - ничего искать не нужно.
      В RadAsm-e много темплейтов: как макросов, так и блоков кода.
      Время от времени я увеличиваю их количество, добавляю утилиты.
      Pelles C тоже можно скачать отдельными официальными установщиками.
      Я веду канал и мне не нужно ради своего же интереса за кем-то шпионить.
      Есть целые операционки целевые (Kali Linux) - многие пользуются и вроде никто не в обиде!
      Кстати, Spy++ - официальная утилита Microsoft, входящая в состав MS VS...
      Как-то так...

  • @Bomon4ik
    @Bomon4ik 2 месяца назад

    06:00 все таки не называют транслятор компоновщиком, линкер это компоновщик. Трнаслятор или компилятор создают объектный код в одном или нескольких файлах и компоновщик принимая их на вход создает исходный исполняемый файл или библиотеку

    • @firststepsforward
      @firststepsforward  2 месяца назад

      Да, Вы правы.
      Спасибо за исправление.

  • @SergGin1
    @SergGin1 9 месяцев назад

    1:09 В лицензии грамматические ошибки встречаются: "Международным Длибо (без д) национальным", "За любое подобное незЕконное использование", "ни какие (нужно без пробела), прИтензии (правильно через Е)", ближе к концу 2 пробела после точки.

    • @firststepsforward
      @firststepsforward  9 месяцев назад

      Благодарю! Буду перезаливать - исправлю.

  • @SonicegorsanCode
    @SonicegorsanCode 5 месяцев назад

    6:20 Пока сидел и делал записи, столкнулся вроде как с противоречием, записал его так:
    Есть логический нюанс, суть которого в том, что по определению `реализация ассемблера (MASM, FASM, ...) и есть *программа ассемблер*` (если Я правильно понял). Одновременно с этим, реализация задаёт, сколько проходов нужно для компиляции с использованием **программы ассемблера**.
    Из этого Я сделал вывод, что определение не совсем верно, ведь **ассемблер** не может задавать, сколько раз в компиляции **он сам** и сопутствующие программы (линковщик) будут использованы. Следовательно MASM, FASM и прочие - более широкое абстрактное понятие реализации Языка Ассемблера, а не конкретный исполняемый файл трансляции машинного кода. Только так он может описывать весь процесс реализации компиляции с различиями в разных реализациях и включать саму программу ассемблер внутри.
    Вроде слишком заумно получилось, короче если Я правильно понял, ML.exe - Ассемблер. И MASM - Ассемблер, который задаёт, сколько проходов с использованием Ассемблера (ML.exe) будет происходить. Тут есть противоречие терминов, или Я что-то не правильно понял?

    • @firststepsforward
      @firststepsforward  5 месяцев назад

      В англоязычной среде примерно так:
      - Assembly Language представляет собой язык программирования.
      - Assembly часто используется в качестве сокращенной формы для обозначения языка ассемблера (сокращённо от Assembly Language).
      - Assembler - это программа, выполняющая трансляцию исходного кода на языке ассемблера в машинный код (ml.exe - в masm).
      В русскоязычной среде примерно так:
      - Язык ассемблера - язык программирования, который использует мнемоники и команды, соответствующие инструкциям процессора. То есть, то же, что Assembly Language или сокращённо Assembly в англоязычной среде. Так же, как и у англоговорящих, словосочетание "Язык ассемблера" часто сокращается до "Ассемблер".
      - Ассемблер - это программа, которая преобразует исходный код, написанный на языке ассемблера, в машинный код, понятный компьютеру(ml.exe - в masm).
      Сложилось так, что слово Assembly не прижилось в русскоговорящей среде, поэтому как программу, так и язык часто называют словом "Ассемблер".
      Нужно обращать внимания на контекст информации, чтобы не ошибиться в значениях.
      Язык ассемблера - это общее понятие, однако существуют различные реализации и варианты этого языка, включающие различные инструменты для работы с ним, такие как FASM, MASM, TASM и т.п. Каждый из них имеет свои особенности и возможности, что делает их подходящими для различных задач и целей разработки программного обеспечения.
      Как-то так...

    • @SonicegorsanCode
      @SonicegorsanCode 5 месяцев назад

      ​@@firststepsforward Понял, спасибо за развёрнутый ответ по этому вопросу.
      Выпавшее при заимствовании слово объясняет, почему программу и Язык называют Ассемблером. Теперь стало в разы понятнее.

  • @openFrimeTv
    @openFrimeTv 3 месяца назад

    все классно, только я рассчитывал увидеть баре метал как говориться) чтоб понять а как же рисуется окно в ассемблере. через либы это похоже на работу языков высокого уровня

    • @firststepsforward
      @firststepsforward  3 месяца назад

      Ассемблер и Си для Windows приложений подразумевает работу с Win32 Api как в консольных, так и оконных приложениях и многое другое - смотрите соответствующие ролики.
      Вопрос написания операционки, где есть необходимость исходников окон и т.п. пока не рассматриваем.
      Пока здесь - Ring 3 програмирование, отладка, дизассемблирование и т.п.

    • @openFrimeTv
      @openFrimeTv 3 месяца назад

      @@firststepsforward понял, спасибо. буду знать в какую сторону гуглить

    • @firststepsforward
      @firststepsforward  3 месяца назад

      Пожалуйста.
      Если Вас сильно интересует отрисовка окон на низком уровне - начинайте с MS DOS, а затем ищите литературу по Windows 1.0 - 3.1. Будет практически всё на английском.
      Но вообще исходники операционки Мелкомягкие никогда не выкладывали. Для доса - оконный интерфейс будет скорее всего, для винды - врядли.

  • @norskiy9765
    @norskiy9765 19 дней назад

    invoke, как я понял, это инструкция ассемблеру, что бы он понял, что мы используем "функции" в ассемблере? Ну, функций в ассемблере нет, есть только метки как я понял(как start метка), к которой мы переходим с помощью invoke, так ведь?

    • @firststepsforward
      @firststepsforward  19 дней назад

      invoke - это директива masm и masm32. Используется совместно с оператором addr. Также для совместимости это всё и в тех же целях используется в fasm.
      Очень подробно о функциях и процедурах в видео:
      17. Стек без push и pop
      18. Регистр ebp и кадр стека
      19. Соглашения о вызове функций
      При стандартном подходе в языках высокого уровня понятие функция и процедура различаются тем, что функция может возвращать значение, а процедура значения не возвращает.
      На практике - эти понятия используются как полные синонимы.
      Когда говорят: "В ассемблере всё, что имеет имя - это метка", то ошибаются. Это не совсем так. Это делают для того, чтобы упростить понимание указателя (или адреса памяти) - очень важного понятия.
      Нужно понимать, что если рассматривать ассемблер как чистый машинный код (как мы это видим в отладчике и дизассемблере), то тогда - это только регистры, код (комманды ассеблера), данные (байты, биты, слова ...), и указатели на код и данные. В таком случае не будет даже меток.
      А если мы рассматриваем какой-нибудь конкретный ассемблер в качестве языка программирования (masm, masm32, fasm и т.д.), то это полноценный язык со своими особенностями и синтаксисом. Есть в ассемблерах и функции и структуры и объединения и строки - всё, что есть в Си (ну почти всё) будет и в ЯЗЫКЕ ассемблера. Часто это выражено в виде макросов, часто встроено в ассемблер в виде директив.
      Реально ассемблер очень похож на Си, а где-то даже проще и понятнее. Страуструп называл Си "Ассемблером для ленивых". Теперь fasm или masm32 можно назвать "Си для ленивых" :)

  • @MSaidu-sj6vx
    @MSaidu-sj6vx 9 месяцев назад +2

    Ну, ASM для меня "китайская грамота", а под Линукс программирую на C, так что разберусь. Интересную информацию даёте!

  • @ЕвгенийПанов-п7б
    @ЕвгенийПанов-п7б 2 месяца назад

    Спасибо, единенное юникод не использует 2 байта на символ, он для разных символов использует разное количество байт.
    А именно если байт начинается с нулевого бита, то он использует один (то-есть этот) байт для кодирование ascii символа (точнее 7 бит, потому что первый бит это 0). Если байт начинается с бит 110, а после него идет байт который начинается на биты 01, то он использует два байта для кодирования символа (точнее те 11 бит которые от них остались). Так же есть вариант когда байт начинается на 1110 и на 11110.
    Или другими словами в юникоде есть 4 вида символов:
    [0.......] - обычный английский ASCII символ
    [110.....] [10......] - символы занимающие 2 байта (и имеющие 11 бит для кодирования)
    [1110....] [10......] [10......] - 3 байта (16 значащих бит)
    [11110...] [10......] [10......] [10......] 4 байта (21 значащих бит)
    Например эмоджи пиццы 🍕 состоит из четырёх байт: [11110]000 - [10]011111 - [10]001101 - [10]010101

    • @firststepsforward
      @firststepsforward  2 месяца назад

      Да, Вы правы, это так. Я упоминал в видео "Ассемблер и Си для Хакера #13. Функции работы со строками", что в Unicode строке один символ занимает от 2 до 4-х байт.
      Но...
      В Windows функции, использующие UNICODE, такие как MessageBoxW, принимают строки в формате UTF-16. В кодировке UTF-16 один символ представлен как последовательностью из 2 байт (16 бит). Однако, для кодовых точек, которые находятся за пределами т.н. базовой многоязычной плоскости (BMP), требуется две пары байтов (или 4 байта - т.н. суррогатные пары).
      В таких случаях один символ UNICODE может занимать 4 байта.
      Честно сказать, я не пробовал использовать MessageBoxW и подобные W-функции c 4 байтным Юникодом. Очень сомневаюсь, что они будут работать с "суррогатными парами", хотя - чем Microsoft не шутит:).
      На практике...
      В заголовочных файлах для Win Api для членов той же MessageBoxW (..., LPCWSTR lpText, ...) :
      #define LPCWSTR const wchar_t*
      #define wchar_t unsigned short
      unsigned short занимает 2 байта (16 бит) в памяти, не зависимо от битности операционки.
      Члены некоторых функций Win32 Api представляют собой UNICODE строки. Но эти строки - на латинице, поэтому - размер символа UNICODE - WORD или двойное слово.
      Вот пример: в MASM32 для функции BCryptOpenAlgorithmProvider (Ассемблер и Си для Хакера #27. Хэш) вторым параметром задается BCRYPT_MD5_ALGORITHM. Это указатель на Юникод строку. Определяем её так :
      BCRYPT_MD5_ALGORITHM dw 'M', 'D', '5', 0
      В результате прога работает корректно.
      Юникод строка в ассемблере вообще всегда задаётся через определение последовательности двойных слов (dw).
      По поводу языков: для всех славянских, европейских, азиатских языков 2 байт хватает.
      Так что, система пока работает.
      На практике как-то так...
      Огромное спасибо за интерес к каналу!

  • @Alex-wo4th
    @Alex-wo4th Месяц назад

    Прошу помогите пожалуйста. Пытаюсь установить hlp для х64(моей системы) выдает ошибку "Обновление не применимо к вашему компьютеру". У меня система 64-х разрядная.

    • @firststepsforward
      @firststepsforward  Месяц назад

      В readme.txt есть ответ. Не нужно запускать инсталятор, если у Вас 10-ка или 11-ка.
      Нужно так:
      После установки необходимо скопировать файл winhlp32.exe (в архиве ...\install_hlp\WinXP-winhlp32.zip) в windows директорию вашей операционной системы,
      если этого файла нет или заменить указанным файлом одноименный файл вашей операционки. При этом при необходимости нужно выйти в защищенный режим или воспользоваться
      программой Unlocker. Файл winhlp32.exe - это 32-х битное системное приложение из Windows XP. Он предназначен для чтения разнообразных файлов помощи (*.hlp) среды разработки RadAsm (в основном для masm32).
      Если не работает сразу - перегрузите систему.

    • @Alex-wo4th
      @Alex-wo4th Месяц назад

      @@firststepsforward Благодарю за ваш ответ, но вы уверены что я должен именно х32 скопировать туда, ведь у меня 64х разрядная система? Я попробовал так сделать и у меня слетела винда, сейчас я её уже восстановил

  • @sergepisarsky2038
    @sergepisarsky2038 3 месяца назад

    Почему нет нумерации строк кода в RADAsm. Если компилятор указывает на ошибки в той или иной строке, как найти эту строку тогда?

    • @firststepsforward
      @firststepsforward  3 месяца назад

      Внизу слева главного окна программы есть маленькая кнопочка с рисуночком "123" (Show\Hide Linenumbers)...

  • @BoZaRUssR
    @BoZaRUssR 10 месяцев назад +1

    Как то стремно устанавливать программы, скаченные не с официальных сайтов, завернутые в инсталлятор человеком который знает assembler. Может все же лучше видос как все скачать с официальных источников и установить и настроить в рукопашную?

    • @ligecss1928
      @ligecss1928 10 месяцев назад +1

      Я думал, что если вам нужна инструкция по установке программ из экзешников, то вам слегка рановато учить ассемблерные языки низкое программирование :)

    • @firststepsforward
      @firststepsforward  10 месяцев назад

      Если есть необходимость - могу без установщика архив выложить. В таком случае Вам вручную нужно будет править файлы настроек RadAsm. Инструкция в корневой директории.

    • @BoZaRUssR
      @BoZaRUssR 10 месяцев назад

      @@firststepsforward Ну я понимаю, что удобно выложить свой тулчейн, дабы потом не закидали вопросами, что не работает то или другое. Но выглядит это как-то бестактно что ли, не этично. Уж лучше запилить видос где вся настройка будет показана и пояснено, что и зачем. Потом по ходу уроков показывать где какие плагины да библиотеки надо добавить. И зачем все это нужно.
      Есть ли необходимость в архиве без установщика? Да зачем. Весь этот набор завернутый в инсталлятор можно прекрасно разархивировать. Кстати, в какой системе этот инсталлятор создан?

    • @firststepsforward
      @firststepsforward  10 месяцев назад +4

      -Во-первых, я Вас не заставляю ничего делать. Не хотите - не качайте. Ищите сами.
      Проекты отдельных программ, включая RadAsm. Давно не поддерживаются. В интернете вы найдёте варианты не от разработчиков.
      -Во-вторых, Installer.exe я не декомпилировал. Код файла написан мной.
      -В-третьих, я периодически обновляю пакет программ и делаю корректировку ini файлов RadAsm, чтобы утилиты удобно вызывались из среды разработки. Я думаю, что для вас это может вызвать затруднение.
      -В-четвёртых, на канале будут видео о реверс-инжиниринге, методах отладки, способах защиты от взлома и детекту вирусных угроз. Вы сами сможете убедиться в безопасности архива.
      -В-пятых, я Вас не оскорбляю.

    • @BoZaRUssR
      @BoZaRUssR 10 месяцев назад +1

      ​@@firststepsforward ну если вы и ligecss1928 одно и тоже лицо то тогда вы ответили мне не зря про декомпиляцию. Но и я пользователю ligecss1928 на его высмеивание моих навыков ответил соответственно, тем более после моего самого первого комментария делать такой выпад явно неуместно. Я прекрасно понимаю что install написан вами. Что вы там написали известно только вам. Я вас не обвиняю, что вы подламываете своих зрителей, но и обратного никто не доказал. Те кто учится по этим видео проверить не умеют. Тот кто умеет не будет тратить свое время. Совершить установку на виртуальную машину вы тоже не предложили.
      По поводу вашего третьего. А почему бы и нет? Предложите и покажите зрителям сделать все своими руками с чистой установки.
      По поводу первого. Ну этим софтом пользуется относительно мало людей, но достаточно для того чтобы задетектить скам и опубликовать это. У вас же под этим видео всего 390 просмотров. И скорей всего эти просмотры повторны. Когда учишься, часто пересматриваешь. А парой и с разных устройств.
      Вот если бы канал существовал уже давно и на нем давно были бы видео о реверс-инжиниринге, методах отладки, способах защиты от взлома и детекту вирусных угроз-то может доверия и было бы больше.
      Не обижайтесь и поставьте себя на место своих зрителей. Не уровня хомячок которые слепо повторят за вами все что покажите, а тех кто уже врубается какой силой вы обладаете. Вы не публичная анонимная личность. Вы можете как научить так и уничтожить личность. Зачем вам просто так учить других остается под вопросом.
      По поводу пятого. Я вас тоже не оскорблял только если вы не ligecss1928

  • @КириллИванов-м8м
    @КириллИванов-м8м 10 месяцев назад

    Уважаемый, может я что-то пропустил, как к скратым видео доступ получить?

    • @firststepsforward
      @firststepsforward  10 месяцев назад

      Нет скрытых видео пока. Выкладываю по-очереди.

  • @Hach
    @Hach 2 месяца назад

    Курс подойдет пользователям unix?

    • @firststepsforward
      @firststepsforward  2 месяца назад +1

      Пока только Windows. Позже посмотрю. Актуальность у ассемблера для Юникс систем не такая высокая. В особенности по Ютубу. Возможно, я чего-то пока не разглядел...

  • @andreysh4882
    @andreysh4882 Месяц назад

    Сайт pelles c не работает, может выложите.

    • @firststepsforward
      @firststepsforward  Месяц назад

      Нда, вот тебе и раз...
      Выложу сегодня на Яндекс. Установщик - 12.0 версия (setup.exe). Это на март 2024 года. Позже я не проверял. Ссылка будет на: assembler-code.com/programmnoe-obespechenie

    • @firststepsforward
      @firststepsforward  Месяц назад

      Загрузил. Можете качать.

    • @andreysh4882
      @andreysh4882 Месяц назад

      @@firststepsforward Нашел, спс.

    • @firststepsforward
      @firststepsforward  Месяц назад

      @@andreysh4882 :)

  • @andreykalugin8075
    @andreykalugin8075 5 месяцев назад

    Спасибо за годный контент! На 10ке при установке Windows8.1-KB917607-x64 пишет, что обновление не применимо к вашему компьютеру. Хелп в редасме не работает, что делать?

    • @firststepsforward
      @firststepsforward  5 месяцев назад

      Благодарю за положительную оценку моего творчества:).
      Решение вопроса по чтению хелпов описано в readme.txt файле, который в директории FASM64:
      ...
      2. ...
      После установки необходимо скопировать файл winhlp32.exe (в архиве ...\install_hlp\WinXP-winhlp32.zip) в windows директорию вашей операционной системы, если этого файла нет или заменить указанным файлом одноименный файл вашей операционки. При этом при необходимости нужно выйти в защищенный режим или воспользоваться программой Unlocker. Файл winhlp32.exe - это 32-х битное системное приложение из Windows XP (файл можно найти на установочной дискете). Он предназначен для чтения разнообразных файлов помощи (*.hlp) среды разработки RadAsm (в основном для masm32).
      ...
      То есть:
      - разархивируйте файл WinXP-winhlp32.zip, результат - файл winhlp32.exe
      - скопируйте winhlp32.exe в windows директорию Вашей операционки. Если операционка установлена на диск С:\, то путь: c:\Windows\
      - перезагрузите комп
      - при необходимости действия проводить с правами админа

  • @razmaatazi
    @razmaatazi 9 месяцев назад

    а как это всё на macOS поставить?

    • @firststepsforward
      @firststepsforward  9 месяцев назад

      Ассемблер - язык, который зависит от операционки. Никак поставить нельзя.
      Можно отдельно Pelles C, но код работать не будет. Плейлист "Ассемблер и Си для хакера" этого канала только для Windows.

    • @gfferre8494
      @gfferre8494 2 месяца назад

      parallels desktop

  • @codingcat9375
    @codingcat9375 9 месяцев назад

    Вам не кажется, что лучше установить его на виртуальную машину, чтобы не спалить процессор?

    • @firststepsforward
      @firststepsforward  9 месяцев назад +1

      Нет. Процессор вы не "спалите" это однозначно, но синий экран организовать нечаянно можно :).
      Обычно боятся того, чего не понимают. Я думаю, нужно попробовать понять.
      Если знать, как работает вирус - антивирусы вам точно не понадобятся. Никакие!
      И вообще, нужно стремиться не зависеть от антивирусов, фреймворков, и модных языков. Ведь согласитесь - неизвестно кто их пишет... Кто их продвигает... И зачем их пишут и продвигают:).
      Информация предопределяет выбор.

    • @СтарыйВаленок-к4л
      @СтарыйВаленок-к4л 4 месяца назад

      Спасибо, это как бальзам по сути. Непонятно, кто пишет и чего там ещё есть такого о чем молчат.

  • @ocrocrocr
    @ocrocrocr 2 месяца назад

    Ошибка при запуске RadASM cannot open file c:/user... ascciiTab.dll( А курс очень крутой, хочется его прям от начала до конца пройти и делать читы на майнкрафт

    • @firststepsforward
      @firststepsforward  2 месяца назад +1

      Ответ на это где-то уже был... asciiTab.dll - это дополнение а RadAsm для удобной работы с таблицей ASCII символов (такая маленькая радужная полосатенькая кнопочка на главной панели элементов управления RadAsm).
      На длл-ку ругается Windows Defender, так как дополнение использует хуки.
      Просто внесите в исключения антивира asciiTab.dll или директорию FASM64\RadAsm2\AddIns\.
      Если чего-то опасаетесь, то отключите этот плагин через настройки RadAsm (Главное меню->Option->AddIn Manager->asciiTab , снемите галочку ->Apply) и можете удалить файлы asciiTab.dll и asciiTab.emf из директории ...\FASM64\RadAsm2\AddIns\
      Всё!
      Благодарю за отзыв!

    • @6trica1a3
      @6trica1a3 2 месяца назад

      можно скачать с гитхаба проект RadASM2 и оттуда взять ascciiTab.dll. На неё ругаться не будет, просто добавит его в папку RadAsm2\AddIns

    • @firststepsforward
      @firststepsforward  Месяц назад

      О, на гитхабе? Я сам не знал, поэтому просто удалил ascciiTab.dll из сборки. Поищу и посмотрю.
      Я в сборке использую RadAsm 2.2 есть версия 3, но она мне кажется сырой.
      Пусть будет RadAsm 2.2

  • @alda12346
    @alda12346 2 месяца назад

    почему C, а не C++?

    • @firststepsforward
      @firststepsforward  2 месяца назад +1

      Это два разных языка. Как говорил Страуструп: "Си - это ассемблер для ленивых". Masm32 при использовании макросов для упрощения на 80% похож на Си по исходникам. Остальные 20% - только в пользу ассемблера.
      Язык - это не только код. Это компиляторы, линкеры, у скриптовых языков - целые виртуальные машины.
      При взгляде через отладчик - Сишный код очень чистый и не раздутый. Ничего лишнего. При некоторых настройках компилятора разницы с ассемблером не будет ВООБЩЕ.
      Программированные процедурное, очень приближено к ядру системы - функции Win32 Api.
      С++ - язык классов. Там все функции и данные обёрнуты в подфункции и подмножества, они в свою очередь в классы, к функциям прибавлен как минимум - один член this и так далее.
      Код в отладчике не чистый - куча мусора, не нужного хлама, много лишнего, которое практически невозможно убрать настройками компилятора.
      С++ язык классов, игры современные на 90% пишутся на С++ . Классы упрощают разработку, уменьшают времязатратность. Несмотря на кучу минусов, недоработок и других минусов минусов, С++ считается быстрым и лёгким.
      Но к копанию в коде Си очень близок, а С++ - очень далёк. С++ не приведёт к пониманию работы операционки. Он ограничит возможность понять как всё работает своим Классовым подходом.
      Он для геймдева. Для кодокопателей - Си.
      Примеры - смотрите в видосах по ревёрсингу. Поймёте всё при анализах Си-шных или ассембллерных программ и программ на С++
      Си - считается подмножеством С++, поэтому переход на язык более высокого уровня (высокий не значит более хороший, высокий - подразумевает уровень абстракции) достаточно прост.
      Как-то так...
      Благодарю за интерес.

    • @alda12346
      @alda12346 2 месяца назад

      @@firststepsforward спасибо за ответ :)

    • @firststepsforward
      @firststepsforward  2 месяца назад

      :)

  • @igorseledtsov7345
    @igorseledtsov7345 9 месяцев назад

    Зачем вообще использовать IDE при программировании на ассемблере?
    жто не только не нужно но и вредно

    • @firststepsforward
      @firststepsforward  9 месяцев назад +8

      Категорически не согласен!
      Одна из целей канала - показать возможность создания с помощью ассемблера полноценных современных приложений для Windows. Быстро, просто и эффективно. Кодокопание в смысле реверсинга, вирусологии, патчинга - это вторые 50% возможностей ассемблера для Windows. По-моему, их не стоит рассматривать в отрыве от создания ассемблерных программ.
      -Без IDE реализация полноценного проекта, в особенности, если он состоит из нескольких частей, будет очень затратна по времени и силам.
      -Вероятность неочевидных ошибок вырастет.
      -Разработка Фронтенда пользовательской части проекта превращается в трату сил и средств.
      -Отсутствие подсказок членов Win32 Api функций приведёт к постоянному обращению к хелпу, что отнимает время.
      -Ассемблер с использованием только Ноутпада отталкивает потенциальных желающих его изучать, что уже привело к катастрофе - язык крайне не популярен, его возможности в полном объёме не известны начинающим программистам и т.п.
      -И ещё куча всего.
      Ваше утверждение верно при одном условии : сильная предрасположенность к языку.
      Даже, если основная цель - не программирование, а реверсинг, вирусология, русификация и патчинг программ, без IDE существенно сложнее.
      Рекомендую посмотреть видео 6 и 7 (как выйдет) .
      Благодарю за интерес.

    • @AvitoBot
      @AvitoBot 9 месяцев назад +1

      ​@@firststepsforwardспасибо за ваш труд
      Спасибо за ясность ума

  • @user-lk7nd2ot4g
    @user-lk7nd2ot4g 7 месяцев назад

    Я бы предпочёл NASM.

    • @firststepsforward
      @firststepsforward  7 месяцев назад

      Соглашусь с Вами - NASM тоже хорош. Мне кажется, что здесь больше дело вкуса и привычки, основа одна и разница не фатальная.

  • @alekskarron1961
    @alekskarron1961 10 месяцев назад +4

    если все так серьезно, думаю музыку над вообще убрать

    • @firststepsforward
      @firststepsforward  10 месяцев назад +2

      Может Вы и правы...

    • @smart_bar
      @smart_bar 10 месяцев назад

      либо трекерную поставить 💀

    • @dregster564
      @dregster564 9 месяцев назад

      не надо убирать, зачем?

    • @nnnvp
      @nnnvp 9 месяцев назад

      @@firststepsforward она всегда только мешает в разговорных видео
      тем более учебных

    • @firststepsforward
      @firststepsforward  9 месяцев назад +2

      Если музыки нет, можно поставить свою. Если не предрасположен к музыкальному фону, тогда лучше - тишина. Выбор сложен... Исхожу из субъективных ощущений и мнений публики. Всем не угодишь, а субъективно - музыкальный фон заполняет пустоту текста.
      Природа не терпит пустоты:).