MASM64 SDK

Тема в разделе "WASM.X64", создана пользователем Mikl___, 2 дек 2018.

  1. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    морф можно пилить на чём угодно, но самый скоростной код получается на труЪ асме. Конечно, можно упомянуть, что такой способ приводит к нечитабельным портянкам / полное отсутствие кросс-платформы / большая проблема с секурой / отладкой /.. Но эти коды самые быстрые. А на втором месте с/с++ с морфом чрез указатели на функции. строго говоря, морфа во втором случае нет == есть run-time overload function.
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    имеется ввиду https://ru.wikipedia.org/wiki/Шитый_код ?
     
    q2e74 нравится это.
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    q2e74 нравится это.
  4. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.576
    Rel, лично я юзаю Асм для шеллкодов и для быстрого создания РоС, чтобы не парится с разными там сишными приведениями типов и прочей ересью. Так что Асм нужен и будет нужен, а если вам не нужен, то это такое дело. бесконечный холивар. Есть моменты, когда без ШК на Асме никак, и это факт, тем более странно такое слышать от вас. Если бы какой-то веб-кодер или шарпер писал, еще понятно.
     
  5. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    я как раз шеллкоды пишу на плюсах... довольно удобно делать класс, в котором хранятся указатели на PEB, разресолвенные API и тд, при этом указатель на эти вещи, буффер под которые выделен на стеке, передается в неявном виде... ну и плюс иногда удобно заюзать RAII например, плюс компилятор который недаст неправильно вызвать API... понятно, что большие шеллы никто не пишет, но я уже так привык к этим удобным вещам, что без них уже не могу...
     
  6. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    GCC пытается векторизовать, но все его попытки выглядят смешно.
     
  7. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    Перспектива 1. Вечная. Каталог мнемоник инструкций.
    Перспектива 2. Не менее вечная. Каталог реализаций типовых алгоритмов с учетом различий в разрядности операндов.
    Всякие упоротости масмом фасмом или есчо чем не серьезны.
    Вообще, лично мне не хватает стандартного языка разметки исходников. Всякое фасмовское задротство - костыли и очень специфичные.
     
    UbIvItS нравится это.
  8. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    есть же всякие высокоуровневые ассемблеры... вот недавно наткнулся на https://www.x-sharp.net/ - проект, который запилили в контексте менеджд операционной системы COSMOS для удобства трансляции MSIL в нативный код, как некое промежуточное представление... имхо довольно интересный проект... по сути препроцессор/транспилятор, генерирующий NASM исходники на выходе...
     
    Mikl___ нравится это.
  9. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Код (C):
    1. function strlen {
    2. ESI = ESP[4] // get pointer to string passed as first argument
    3. ECX ^ ECX // clear ECX
    4. Loop:
    5. AL = ESI[ECX] //get next character
    6. AL ?= 0 // is it 0? save to FLAGS
    7. if = return // if ZF is set, return
    8. ECX++ // else increment ECX
    9. goto Loop // loop...
    10. }
    11. //Method 2: using if
    12. function strlen {
    13. ESI = ESP[4] // get pointer to string passed as first argument
    14. ECX ^ ECX // clear ECX
    15. Loop:
    16. AL = ESI[ECX]
    17. if AL = 0 return// AL = 0? return
    18. ECX++
    19. goto Loop // loop....
    20. }
    Примеров серьезней нету, семплы на гитхабе 3 байта. Если кто-то ждал сишных операторов для ассемблера (без точкозапятых!), то сбыча мечт состоялась. Могу ошибаться, но сишные операторы в ассемблере, который нельзя называть, через директиву struc можно прикрутить не хуже. Штука очень странная. Если вся эта дичь только ради си-подобного синтаксиса, не вижу в этом ничего интересного.
     
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    вся эта "дичь" ради трансляции MSIL в баре-бонес нативный код... чтобы ОС писать на си-шарпах... больше не для чего в принципе...
     
  11. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Но ведь... но там же... слоган "x86 like it should be"
    --- Сообщение объединено, 13 дек 2018 ---
    Как забавный курьез: там на картинке с зелеными буквоцифрами (взятой из интернетов) ассемблер очень смахивающий на 8085. x86 like it should be.
     
  12. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Rel,

    > я как раз шеллкоды пишу на плюсах...

    Ну а пример покажите ?

    Интересно ведь посмотреть, я просто не помню что бы от вас что то" было.
     
  13. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    никогда си-кода не видел?
     
  14. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.576
    я на Си пробовал, потом забил и все. Сишный компилер сейчас вставляет огромную кучу мусора в код, там нет и никогда не будет такого управления кодом, как на Асме. Про С++ вообще молчу (не знаю, как там, но думаю что еще хуже).

    чем вы компилите их, если не секрет?
     
  15. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    600
    Для некоторых проектов использовать что-то кроме ассемблера сильно затруднительно. Но при этом желательно поддержка высокоуровнего кода, .if, .while, .for, ООП с виртуальными функциями и так далее, так как проект может быть довольно сложный. Частично это обеспечивает только UASM, другие ассемблеры гораздо хуже. Мне вот FASM что совсем не нравится, думаю его даже не стоит изучать, ну или изучать ровно столько, чтобы в чужих исходниках немного разбираться. А UASM хорош тем что написан на С и сами исходники доступны. Я вот исправил баг где внутренний макрос @ProcName не возвращал имя функции(возвращал непонятно число). Ещё добавил @PtrName, возвращает имя структуры на которую ссылается указатель, заданный для регистра(заданной командой ASSUME), локальной или глобальной переменной. Правда сделал это довольно по быдлокодерски, но если её реализовать как надо, то можно портировать некоторые шаблоны из С++, vector, map и т.д.
     
  16. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Так и скажи, что опыт в ассемблере у тебя довесок к сишному.
     
  17. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    я компилю GCC/MinGW, на венде со студии перешел давным давно, когда они запретили асм-вставки под x64, меня многое не устраивало в ней, но это стало последней каплей))...

    помимо сишечки есть всякие бейсики, которые тож довольно низкоуровневые, в том плане, что там нет каких-то огромных раньаймов со сборкой мусора и тд... если интересно, то могу порекомендовать PureBasic (проприетарный, но дешевый и есть на торрентах, если что)... его компилятор генерит код на фасме, если мне память не изменяет...
     
    Indy_ нравится это.
  18. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    600
    От бейсиков я ещё в 2004 решил отказаться, в пользу паскаля, хотя использовал его ещё некоторое время. Пюрбасик я установил... а потом удалил, не делал даже хеловорды, да не люблю я бейсик. Я считаю что он умер как язык, к нулевым где-то, просто не перевариваю его, я да же код на асме в стиле бейсика не люблю, пример, исходники того же FASMа, какой-то ужас, что есть исходники, что их нет, хрен поймёшь.
    ЗЫ
    Вот если С/С++ компилятор который в ассемблер-код транслирует, да ещё чтобы в блоке _asm не трогал код, чтобы самим MASM'ом их компилировать, то да, такой компилятор подойдёт для моего проекта. Но я думаю нужно сам UASM развивать в сторону высокоуровневости.
     
    Последнее редактирование: 15 дек 2018
  19. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    в сущности всё есть в gcc, окромя поддержки масма. все эти масмы/фасмы/уасмы/.. есмь дикобразные костыли и лучше о них забыть чисто с практической тчк зрения :)
     
  20. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Rel,

    > никогда си-кода не видел?

    Мне не сам формат интересен, а непосредственно механизмы, реализация, нп как вы обходите защиту и как работает ваш шелл. Сейчас куча защитных механизмов, поэтому запустить шелл - большое дело. Естественно это интересно.
    --- Сообщение объединено, 15 дек 2018 ---
    > помимо сишечки есть всякие бейсики

    Пури весьма сильный компилер. Точнее это транслятор скрипта в фасм. Можно получить сурец на асм и далее его билдить(option: commented если правильно помню). А есчо он 32/64 и портабельный под никсы. Вот только синтаксис там треугольный", дикий изврат. Хотя в принципе это не проблема, можно написать простейший тексовый транслятор, что бы синтаксис изменить. Главное что это очень сильный компилер, особенно математики. Я его выхлоп по FPU долго использовал, что бы не писать это вручную.
     
    Последнее редактирование: 15 дек 2018