MASM64 SDK

Discussion in 'WASM.X64' started by Mikl___, Dec 2, 2018.

  1. UbIvItS

    UbIvItS Well-Known Member

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

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317
    q2e74 likes this.
  3. UbIvItS

    UbIvItS Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 5, 2007
    Messages:
    6,242
    q2e74 likes this.
  4. M0rg0t

    M0rg0t Well-Known Member

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

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317
    я как раз шеллкоды пишу на плюсах... довольно удобно делать класс, в котором хранятся указатели на PEB, разресолвенные API и тд, при этом указатель на эти вещи, буффер под которые выделен на стеке, передается в неявном виде... ну и плюс иногда удобно заюзать RAII например, плюс компилятор который недаст неправильно вызвать API... понятно, что большие шеллы никто не пишет, но я уже так привык к этим удобным вещам, что без них уже не могу...
     
  6. SadKo

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

    Blog Posts:
    8
    Joined:
    Jun 4, 2007
    Messages:
    1,610
    Location:
    г. Санкт-Петербург
    GCC пытается векторизовать, но все его попытки выглядят смешно.
     
  7. Rockphorr

    Rockphorr Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2004
    Messages:
    2,625
    Location:
    Russia
    Перспектива 1. Вечная. Каталог мнемоник инструкций.
    Перспектива 2. Не менее вечная. Каталог реализаций типовых алгоритмов с учетом различий в разрядности операндов.
    Всякие упоротости масмом фасмом или есчо чем не серьезны.
    Вообще, лично мне не хватает стандартного языка разметки исходников. Всякое фасмовское задротство - костыли и очень специфичные.
     
    UbIvItS likes this.
  8. Rel

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317
    есть же всякие высокоуровневые ассемблеры... вот недавно наткнулся на https://www.x-sharp.net/ - проект, который запилили в контексте менеджд операционной системы COSMOS для удобства трансляции MSIL в нативный код, как некое промежуточное представление... имхо довольно интересный проект... по сути препроцессор/транспилятор, генерирующий NASM исходники на выходе...
     
    Mikl___ likes this.
  9. f13nd

    f13nd Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 22, 2009
    Messages:
    2,020
    Code (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

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317
    вся эта "дичь" ради трансляции MSIL в баре-бонес нативный код... чтобы ОС писать на си-шарпах... больше не для чего в принципе...
     
  11. f13nd

    f13nd Well-Known Member

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

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    Rel,

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

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

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

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317
    никогда си-кода не видел?
     
  14. M0rg0t

    M0rg0t Well-Known Member

    Blog Posts:
    0
    Joined:
    Oct 18, 2010
    Messages:
    1,585
    я на Си пробовал, потом забил и все. Сишный компилер сейчас вставляет огромную кучу мусора в код, там нет и никогда не будет такого управления кодом, как на Асме. Про С++ вообще молчу (не знаю, как там, но думаю что еще хуже).

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

    Intro Active Member

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

    f13nd Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 22, 2009
    Messages:
    2,020
    Так и скажи, что опыт в ассемблере у тебя довесок к сишному.
     
  17. Rel

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317
    я компилю GCC/MinGW, на венде со студии перешел давным давно, когда они запретили асм-вставки под x64, меня многое не устраивало в ней, но это стало последней каплей))...

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

    Intro Active Member

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

    UbIvItS Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 5, 2007
    Messages:
    6,242
    в сущности всё есть в gcc, окромя поддержки масма. все эти масмы/фасмы/уасмы/.. есмь дикобразные костыли и лучше о них забыть чисто с практической тчк зрения :)
     
  20. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    Rel,

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

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

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