Мемчики wasm.in

Тема в разделе "WASM.HEAP", создана пользователем Rel, 24 июн 2020.

  1. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Ох, ну вы и душнилы... Мемасик про си смешной независимо от того сколько у Тома Круза кожи на жопе.
     
    TermoSINteZ нравится это.
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Синтаксис ужасный: бесконечные begin-end, точки с запятыми просто везде, переменные нельзя посреди функции объявить, длинные ключевые слова и тд. Сами компиляторы FreePascal и Delphi в целом неплохо выглядят по функционалу, жалко, что эти комьюнити идут по пути улучшения тулинга и толком не улучшают язык.
     
  3. Subrealist

    Subrealist Member

    Публикаций:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    134
    Перфокарты это святое. Помню в детстве где они только не использовались, и коробочки из них делали, и закладки, и кулинарные рецепты на них писали, и в библиотечном каталоге они же были, и, как писал Крис Касперски: "Почему так легко представить хакера, поклоняющегося дырке в перфокарте, и так трудно, поклоняющегося Windows" (цитирую по памяти)
    --- Сообщение объединено, 9 июл 2022 ---
    TrashGen, ну это как "Чтобы купить что-то ненужное, нужно сначала продать что-то ненужное"
     
    TrashGen нравится это.
  4. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Дело вкуса, но он "ужасен" и у многих Алгол последовавших языков и нет нормальных вариантов, как в Форт, программировать без связи формальных и фактических параметров функций парадигмы конкатенативных языков :)

    https://concatenative.org
     
    Последнее редактирование: 9 июл 2022
  5. Subrealist

    Subrealist Member

    Публикаций:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    134
    Вообще, идеальный язык это Lisp, так как он создан самим Господом Б-гом и вся Вселенная написана именно на нём. Утверждать, что какой-то язык лучше Лиспа есть сущее богохульство!
     
  6. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Да, но только скобок для его создания понадобилось очень много. :)
    На лурке в статье по Форт есть сравнение языков с точки зрения отношения к скобкам.

    P.S. Про покупку-продажу не наоборот в оригинале? т.к. следующая фраза @"А, у нас денег нет" от кота Матроскина.
     
  7. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.186
    Адрес:
    подполье
    нет, ну не обязательно же покупать лично покупателю. покупателем может выступать тот у кого есть шекель, допустим. покупатель может тупо в почтовый ящик нуждающемуся набросать шекелей. если бы у меня было миллион денег я бы сейчас весь его раздал по тысяче тысяче нуждающихся, если бы был уверен, что они именно нуждаются, а не пойдут и пробухают этот рубль)
     
  8. Subrealist

    Subrealist Member

    Публикаций:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    134
    Ну так то да, но смысл продать у них там именно в том, чтобы купить.

    Для создания скобок то и не понадобилось, изначально он был в машинных кодах написан. А вот потребовал да, много. Я думаю, в этом скрыта какая-то важная истина.
     
  9. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.186
    Адрес:
    подполье
    если кто то сомневаеццо в том, шо тращген и не думает шутить и жадничать, и для тех, кто просто забыл и\или не видел по болезни^^
     
  10. Subrealist

    Subrealist Member

    Публикаций:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    134
    Вот вот, о чём и речь, продавать может оказаться и не обязательно, если найдётся тот, кто шекелей в почтовый ящик набросает. Но вот что дальше тот рубль будет потрачен, этого никто не отменял. Хотя, конечно, в Торе и сказанно:
    "Треть зарой в землю, треть пусти в дело, на треть живи"
     
  11. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.186
    Адрес:
    подполье
    ну да. жить на минималках одним днем вот уже с месяц как моё кредо, бро) не жалуюсь. это стезя, которую я принимаю и хоярю по ней как птица с перебитыми крыльями и сломанными ногами. нисколько себя не жаль в этом, зачем я вообще нужен однавосьмимиллиардная пылинка, если буду жить для себя и лишь ради этого?
    --- Сообщение объединено, 9 июл 2022 ---
    не говорил, вродебы, хотел развестись и поменять дом на собаку, чтобы освободить целых 2 живых существа от клеток: себя и собаку) жона чото не согласилась и так и оставляет нас обоих в ненужном нам уже рабстве

    язык тут прикольный порекомендовали, только не знаю пока что с ним делать)
     

    Вложения:

  12. Rel

    Rel Well-Known Member

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

    Единственные более менее современные Форты - это 8th и Factor, да и то сейчас сложно представить человека, которых их выберет для какого-либо программного проекта, даже на эмбеддед системах уже давно всякие микропетоны и джаваскрипты работают.

    С этим сложно спорить, можно посмотреть хотя бы на Racket, который позволяет любой синтаксис наложить поверх sexpr.
     
  13. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    8-th и Factor всё же не Форт в классике его понимания и построения.
    Есть, конечно, ещё какие то варианты, но без целевой программы их включения в программы изучения какой то тематики, продвижения в этом направлении, конечно же, не будет.

    Вот и для Вас слова Forth (Форт) всего лишь пустые звуки. :)
    --- Сообщение объединено, 9 июл 2022 ---
    A Racket-based Forth / Macro Assembler on steroids for PIC18F
    https://github.com/zwizwa/staapl
     
  14. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Дельфи лепит код из паттернов (как выяснилось гцц делает так же, но умеет при -O3 кое-как свернуть его до чего-то более-менее приличного), а дельфи оставляет за собой такое:
    Код (Text):
    1. .004B0F00 8A86 05050000 mov al,byte ptr ds:[esi+505]
    2. .004B0F06 34 01         xor al,1
    3. .004B0F08 8886 05050000 mov byte ptr ds:[esi+505],al    ;BYTE[esi+505]^=1, 14 байт, 'xor byte ptr ds:[esi+505],1'={80B6 05050000 01}, 7 байт
    4. .004B0F0E 33DB          xor ebx,ebx
    5. .004B0F10 8D7D FE       lea edi,dword ptr ss:[ebp-2]
    6. .004B0F13 8B86 EC010000 mov eax,dword ptr ds:[esi+1EC]    ;значение eax хоронится, смысла значению оставаться в регистре не было, нет оправданий.
    Дурная примета, когда компилер можно узнать по почерку. Это навскидку, первое что попалось на глаза. Весь дельфяшный код изобилует перегруженностью и бредом. Вероятно это не главная причина почему исполняемые файлы весят адовы мегабайты, но одна из них.
     
    Artem_N нравится это.
  15. M0rg0t

    M0rg0t Well-Known Member

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

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Так и с дельфи проблем нету, декомпилер школьника об него не сломается.
    Это старое доброе "купи себе кампуцер пошире, чтоб все влазило". С таким подходом вообще никакой разницы между компилерами нету, бери любой, не забудь пожать UPX'ом.
     
  17. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Интересно, а как в IDA будет представлен такой код минимального "Форт" на Си? и понимаем ли он при этом столкнувшемуся с ним?
    // gcc forth.c -o forth

    #include <stdio.h>
    #include <string.h>

    // Main Memory
    char memory[100000];
    char *mem = memory;

    // Dictionary entry type
    typedef struct {
    char name[100];
    void* code;
    } dict_t;

    #define ALLOC(x) \
    mem; \
    memcpy(mem, (char*)&(x), sizeof(x)); \
    mem += sizeof(x); \

    #define DEFINE(x,y) \
    (*dsp); \
    strcpy((*dsp)->name, x); \
    (*dsp)->code = y; \
    (*dsp)++; \

    #define NEXT \
    (*ip)++; \
    goto ***(ip); \

    int main() {

    /* Pointers */

    void **instruction_pointer;
    void ***ip = (void ***)ALLOC(instruction_pointer);

    long *stack_pointer;
    long **sp = (long **)ALLOC(stack_pointer);

    void **return_stack_pointer;
    void ***rsp = (void ***)ALLOC(return_stack_pointer);

    dict_t *dictionary_stack_pointer;
    dict_t **dsp = (dict_t **)ALLOC(dictionary_stack_pointer);

    /* Stacks */

    long stack[10];
    *sp = (long *)ALLOC(stack);

    void *return_stack[10];
    *rsp = (void **)ALLOC(return_stack);

    dict_t dictionary_stack[10];
    *dsp = (dict_t *)ALLOC(dictionary_stack);

    /* Memory */
    char code[] = "ok>";
    void *cp = code;

    dict_t *bye = (dict_t *)DEFINE("bye", &&bye);
    dict_t *lookup = (dict_t *)DEFINE("lookup", &&lookup);
    dict_t *ok = (dict_t *)DEFINE("ok", &&ok);

    void *word[] = { lookup->code, ok->code, bye->code };
    *ip = (word)-1;

    NEXT;

    return 0;

    ok:
    puts(code);
    gets(code);
    puts(code);
    NEXT;

    bye:
    puts("bye");
    return 0;

    lookup:
    puts("Run Code");
    NEXT;
    }

    Или такой Не минималистический Форт с расширением объектами (C++)
    Или такой Небольшой проект "Си" то Forth сделанный с использованием парсера Bison
    ...
    Другие Форт реализации коих туева куча. :)
    Как такой проект Форта,, где основное тело системы загружается как оверлей
    ...
    BCForth в иллюстрации к материалу книги

    Introduction to Programming with C++ for Engineers
     
    Последнее редактирование: 9 июл 2022
  18. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    В сообщениях от Ethereal на киберфоруме есть в одном посте где он предлагает для усложнения реверса использовать шитый код (для приемлемомой скорости его выполнения) Форта - фактически прыжки на команды виртуальной машины и предполагает, что даже в размере файла 300Кб его реверс будет очень затратной задачей для понимания логики программы.

    Там же увидел его сообщение в одном треде как он "взломал" защиту Cerber под DOS.
    Интересно, что уже около года он не постил сообщений на этом форуме.

    P.S. А, не кажется ли модераторам форума, что текущее обсуждение немного отклонилось от темы топика? :)
     
    Последнее редактирование: 9 июл 2022
  19. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
  20. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Да так, мой внутренний граммар наци иногда страдает.

    upload_2022-7-9_22-6-36.png