- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 21:36 , 16-Июл-21 (1) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 21:41 , 16-Июл-21 (2) +2
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Kuromi, 21:42 , 16-Июл-21 (3) +4
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., пох., 22:53 , 16-Июл-21 (16) +16 [^]
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 00:24 , 17-Июл-21 (25) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 11:10 , 17-Июл-21 (54) –1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., BSD_Cucks_BTFO, 11:51 , 17-Июл-21 (59) +2
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 12:07 , 17-Июл-21 (60)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., ананоша, 13:28 , 17-Июл-21 (76) –1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Мамкин Хакер, 16:12 , 17-Июл-21 (94) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 21:56 , 16-Июл-21 (5) +3
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 22:02 , 16-Июл-21 (6)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., InuYasha, 22:06 , 16-Июл-21 (7)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Kuromi, 00:31 , 17-Июл-21 (26) –1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 08:05 , 17-Июл-21 (44) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., пох., 11:25 , 17-Июл-21 (58) –2
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Андрей, 16:10 , 17-Июл-21 (93) –1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Kuromi, 03:47 , 18-Июл-21 (134)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Хан, 22:07 , 16-Июл-21 (8) –8 [V]
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 22:22 , 16-Июл-21 (13) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., username, 01:30 , 17-Июл-21 (34) +8 [^]
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 23:13 , 17-Июл-21 (126)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., InuYasha, 22:10 , 16-Июл-21 (10)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., пох., 00:20 , 17-Июл-21 (23) –6 [V]
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 03:11 , 17-Июл-21 (37) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Lex, 05:25 , 17-Июл-21 (40)
В случае с рекурсией огромное количество данных валится в стек, тогда как в случае с циклом - можно весьма просто это подправить.. Тем более, ничего не мешает при достижении энных размеров, завершать обработку с сигналом «слишком толсто».. и с циклом это сделать сильно проще.
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., n00by, 07:52 , 17-Июл-21 (43) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 10:58 , 17-Июл-21 (53) –1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Lex, 12:48 , 17-Июл-21 (68)
При вызове функции, в стек падает адрес возврата + все передаваемые аргументы( строки итп - указателями ). При работе вызванной функции, аргументы могут извлекаться( редко, обычно к ним напрямую обращаются через esp или [esp-n]. Но адрес возврата в любом случае остаётся. Итого, уже не менее 4байт для 32-битных и 8 байт - для 64-битных систем соотв на каждый вызов функции без аргументов и локальных переменных - и это только для возврата ).Локальные переменные, явные или неявные, обычно тоже лежат в стеке( как минимум, в виде указателей )
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., n00by, 12:59 , 17-Июл-21 (71) –2
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Lex, 18:42 , 17-Июл-21 (110)
Мистер не в курсе, что жс движки уже лет сто как с джИтом, а не примитивные только_интерпретаторы( поначалу да, код именно интерпретируется, но часто исполняемые функции «компилируют» для улучшения производительности ) ?Дык ты код сишной программы в дизассемблере открой да посмотри. Аргументы в функции обычно передаются через стек, только некоторые на стороне вызываемой функции достают данные из стека, подчищая его, а другие - работают напрямую с указателем на стек, итогом чего становится ускоренное загаживание стека на адрес возврата + все передаваемые аргументы( как минимум, их указатели ). Можешь даже онлайн-преобразователями что-то -> асм воспользоваться типа: https://godbolt.org/ И вызов более-менее жирных рекурсивных функций обычно очень быстро рушит программу.. Цикл нормальный, кстати, обычно не рушит. Ведь можно просто динамически выделить памяти, а не упереться в ограничение стека при очередном вызове функции с горстью аргументов.
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., n00by, 18:52 , 17-Июл-21 (113)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Lex, 15:02 , 20-Июл-21 (181)
Забавно. Почему я не в курсе ловле на пустозвонстве( хотя в предыдущие разы ты славно попадался на подмене понятий )Кстати, о пустозвонстве.. > Ещё раз читаем внимательно. ИНТЕРПРЕТАТОР. Какое отношение имеет стек JS-машины к стеку процессора? Помнишь ? Ты ведь фундаментально не прав, ведь там и далеко не только интерпретатор и сгенерированный код к стеку проца имеет самое прямое отношение. Но.. признался ли хоть в чем-то ?) Однозначно достаточным не является, но наличие в браузере генератора машинного кода для разных архитектур и его применение для генерации кода уже ощутимо повышает шансы, поскольку речь о вызове-таки нативных функций > что ошибся со знаком смещения от регистра стека, Возможно, кому-то стоит меньше придираться к мелочам если есть что сказать по сути. Так меньше шансов оказаться невеждой( притом, невоспитанным ). Так ошибся ли ? Или просто ты не понял что к чему ? *подмигивание* А ведь ты так и не доказал не_использования стека для хранения локальных переменных или ссылок на них.. даже не просто не доказал, но и сделал вид что этого нет.. Так.. как бы ты со своей колокольни объяснил РЕАЛЬНЫЙ "выхлоп" clang'а( хотя и у гцц примерно то же самое ) а не то что у тебя в голове со стеком творится ? : int testFunc( int arg ) { int tmp1 = 123; int tmp2 = 456; return tmp1 * arg; } push rbp mov rbp, rsp > Нет никаких [esp-n] при обращении к _аргументам_ вызываемой подпрограммы // ой, что это, ОТРИЦАТЕЛЬНОЕ смещение стека ? И по нему ЗАТАЛКИВАЕТСЯ аргумент ?) mov dword ptr [rbp - 4], edi // Еще отрицательные смещения !?? ) Но теперь это локальная переменная !?) mov dword ptr [rbp - 8], 123 // Ребяят, ну хватит уже! mov dword ptr [rbp - 12], 456 mov eax, dword ptr [rbp - 8] // Ой, неужели это ОБРАЩЕНИЕ К АРГУМЕНТУ ВЫЗЫВАЕМОЙ ПОДПРОГРАММЫ ПОСРЕДСТВОМ [esp-n] ?)) imul eax, dword ptr [rbp - 4] pop rbp ret > Общесистемное соглашение о вызовах для Linux AMD64 (см. System V AMD64 ABI)
Это все здорово кнчн, но что если аргументов будет больше чем регистров ?) -Ну это к слову о не_использовании стека. Тем более, что мире существует далеко не только линух со своими соглашениями о вызовах( хотя и в 32-битном линуховом очень даже применялся стек ) Но, да, в общем и целом на х86_64 передача аргументов стала получше Часто данные передаются через регистры, а что не влезло - через стек против cdecl и stdcall Хотя и есть некоторые нюансы и в вызовах и в хранени локальных переменных
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., n00by, 17:02 , 20-Июл-21 (183)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Lex, 15:34 , 21-Июл-21 (184)
>> Забавно. Почему я не в курсе ловле на пустозвонстве( хотя в предыдущие >> разы ты славно попадался на подмене понятий ) > Потому что у тебя проблемы с памятью https://www.opennet.dev/openforum/vsluhforumID3/124773.html#51 > (заметь, что пруфы просил не я, я их за тебя предоставил; > но там малость неувязка по срокам санкций, длиною в треть твоей > жизни), при этом ты очень хорошо умеешь в "а нас то > за шо?", что как бэ намекает.И в чем конкретно ложь ? Заодно и на себя сошлись со своим не_бу_а_списанным_оборудованием, которое у тебя вдруг синонимом стало ) > Я прав в том, что сам ты ничего в данном направлении не сделал Нет бы по честному признаться, что от души обделался с исключительно_интерпретатором в жс и отсутствием реального исполнения кода на процессоре - нет же, маню включаешь. Хотя, что от тебя еще ожидать.. >[оверквотинг удален] >> ? >> *подмигивание* А ведь ты так и не доказал не_использования стека для хранения >> локальных переменных или ссылок на них.. даже не просто не доказал, >> но и сделал вид что этого нет.. > Это называется -- переложить бремя доказательства на оппонента. Приём демагогии такой. > Мне не требуется что-либо опровергать, поскольку исходное твоё утверждение голословно. > Тем не менее, скажу по секрету. Пример, на который я выше > дал ссылку (2й фрагмент), как раз это и делает. Но к > вопросу отношения не имеет. И я не знаю, как бы его > к нему прикрутить. Ты неправильно разобрал даже простейший предоставленный мной пример функции на сях и на асме с комментариями, у тебя вдруг то включалась избирательная слепота, то - отключалась память и ты забывал, НАД целевой строкой написан коммент или ПОД ней [хотя как позже оказалось ты и сам пишешь комменты НАД целевой строкой. Т.е ты даже про свои привычки забывал] Так.. как и почему в свете этого можно верить твоей кодовой чепухе, которую ты называешь "доказательством" чего-то ? >> ой, что это, ОТРИЦАТЕЛЬНОЕ смещение стека ? И по нему ЗАТАЛКИВАЕТСЯ аргумент ?) >> mov dword ptr [rbp - 4], edi >> // Еще отрицательные смещения !?? ) Но теперь это локальная переменная !?) >> mov dword ptr [rbp - 8], 123 >> ... >> // Ой, неужели это ОБРАЩЕНИЕ К АРГУМЕНТУ ВЫЗЫВАЕМОЙ ПОДПРОГРАММЫ ПОСРЕДСТВОМ [esp-n] ?)) >> imul eax, dword ptr [rbp - 4] Выше, как видишь, кусок предоставленного мной кода с комментами. >> mov eax, dword ptr [rbp - 8] >> // Ой, неужели это ОБРАЩЕНИЕ К АРГУМЕНТУ ВЫЗЫВАЕМОЙ ПОДПРОГРАММЫ ПОСРЕДСТВОМ [esp-n] ?)) > Нет, это локальная переменная tmp1. >> imul eax, dword ptr [rbp - 4] > А вот здесь как раз и должна была быть попытка выдать желаемое > за действительное, но автор в горячке перепутал строчки. Тебя ведь вовсе не смутило, что везде комменты написаны НАД комментируемой строкой( даже ты сам, как оказалось, именно так пишешь ), а не ПОД ней, не так ли ?) Ну что, будешь и дальше самосливаться и разводить демагогию со своими: Не_может_быть_отрицательных_смещений_применительно_к_стеку [может] Это именно опечатка [нет, не опечатка] Сейчас_аргументы_функций_в_стеке_не_хранятся [хранятся. Только теперь их туда на вызываемой стороне заталкивают, а не на вызывающей как раньше, если нельзя жестоко соптимизировать] Вместо честного признания, что дуб-дубом и просто нахватался верхов прежде, чем хотя бы глянуть функцию в дизасме ? Ведь ты полностью обделался - локальные переменные таки отнимают место в стеке( пусть и не всегда размером с саму переменную, но тем не менее и обращение к ним - тоже через отрицательно смещение ), равно как и передаваемые аргументы( "внезапно" оказалось, что они не могут вечно висеть в регистрах и их оттуда надо куда-то распихивать. Сделано, кнчн., очень т.упо и костыльно - по сути, старый подход с указателем кадра стека, но с костылем чтобы можно было передавать аргументы через регистры. Хотя мог бы просто промолчать по поводу отрицательных смещений и "опечатки со знаком" и показался бы умным и культурным человеком. А не дубом и демагогом, не способным признать собственные очевидные ошибки и пытающимся изо всех сил сменить тему. >> pop rbp >> ret > Возьми за правило указывать ключи транслятора, когда публикуешь листинг. Это поможет тебе > самому избежать ряд ошибок. > Вот как должен был выглядеть твой пример: > gcc arg.c -S -fverbose-asm -masm=intel -o arg.s Только я на clang'е собирал, о чем выше упоминал. Ну куда уж заморачиваться о таких мелочах избирательно-слепому, не так ли ? Поначалу, кстати, хотел с гнутого дизасм, но там смещения не так лаконично смотрелись. Если сравнишь с моим( шланг ) - увидишь, что -20 там нет - смещения идут красиво аккурат на размер указателя/значения_переменной ( 4, 8, 12 против 20, 8, 4 ) >> mov dword ptr [rbp - 4], edi >> mov dword ptr [rbp - 8], 123 >> mov dword ptr [rbp - 12], 456 // выше - шланговский. Все ровненько, по 4 байта > mov DWORD PTR -20[rbp], edi > mov DWORD PTR -8[rbp], 123 > mov DWORD PTR -4[rbp], 456 // выше - твой, гнутый // Твой полный выхлоп дизасма > testFunc: > .LFB0: > .cfi_startproc > и еще куча текста и ненужных директив Я тебе предоставил максимально компактный листинг чтобы пост не засорять >>>> Можешь даже онлайн-преобразователями что-то -> асм воспользоваться типа: >>>> https://godbolt.org/ Тем более, гораздо удобнее с дизасмом функций возиться в онлайн-сервисе, ссылку на который тебе я кидал ранее и через который "чистый" код и получал без тонн мусора( разумеется, сверив на соответствие с результатом локальной сборки ) > И предпочти изучать код после оптимизатора, это поможет понять, как работает транслятор: Ты ведь откровенно сливаешься и уходишь с темы. Вместо того, чтобы признать нормальность и общепринятость работы с отрицательным смещением стека( и твой личный косяк, что ты считал это исключительно моей опечаткой ), равно как и применимость этого в т.ч к локальным переменным и хранению аргументов функции - ты просто начинаешь уходить, даже удирать с темы. И вот, снова несешь какую-то чепуху, теперь про "оптимизатор", хотя тебя вовсе не смущает, что ты "героически" собрал с оптимизациями код, рассчитанный на максимальную простоту, наглядность и компактность, оттого и собираемый БЕЗ оптимизации( иначе - придется делать пример сильно сложнее, постить горы текста, а итог будет тем же - нормальность отрицательных смещений, хранение данных локальных переменных в стеке, как и аргументов функции, обращение к ним через отрицательное смещение стека и твоя откровенная невежественность, как и неспособность признать свою неправоту ) > gcc arg.c -O2 -S -fverbose-asm -masm=intel -o arg.s > > testFunc: > .LFB0: > .cfi_startproc > # arg.c:4: return tmp1 * arg; > imul eax, edi, 123 # tmp84, tmp85, > # arg.c:5: } > ret > Засчет твоего слива все ближе.. Ведь вместо корректного примера для сборки с оптимизацией, ты выбрал максимально упрощеный, рассчитанный на отсутствие оптимизаций( иначе снова всплывет перемещение аргументов функции в стек, отрицательные смещения при работе со стеком и ты обделаешься.. снова ). >>> Общесистемное соглашение о вызовах для Linux AMD64 (см. System V AMD64 ABI) >> Это все здорово кнчн, но что если аргументов будет больше чем регистров >> ?) -Ну это к слову о не_использовании стека. > Для этого в скобочках и написано, что надо посмотреть. Как !? Ты вывалил гору мусора вплоть до примера передачи аргументов в (!) процесс но поленился сказать несколько слов по теме ?) >> Тем более, что мире существует далеко не только линух со своими соглашениями > Здесь Линукс является системой по умолчанию. Архитектуру процессора ты выбрал сам, я > лишь её актуализировал. Здесь - это у тебя в голове ? На сайте полно людей и с виндой, и с бздей.. и с яблоком немало. >> о вызовах( хотя и в 32-битном линуховом очень даже применялся стек >> ) > Ну вот и посмотрел бы, как именно он применялся, вместо эффектных попыток > продемонстрировать свою базу. Пока получается лишь твоя неудачная попытка казаться умнее чем ты есть. Притом, чем дальше - тем больше. > Пока получается в стиле "сделайте это за меня". > Вот так передаются параметры процессу (тут немного лишнего, но оставлю как есть): троллейбус_из_буханки.jpg Серьезно, зачем тут это, если речь о вызываемых функциях, локальных переменных и стеке, а не о передаче параметров процессу ? > ; Допустим 1 аргумент - имя файла байт-кода. > mov rcx, [rsp] ; argc > ... > mov [bytecode_filename], rdi > ; Переменные окружения находятся через argc+1 (завершающий 0-й указатель) > ; слов после argv (rsp + 8) > lea rdx, [rsp + 8 + (rcx + 1) * 8] Кстати, забавная ситуация. Ты тоже пишешь комменты НАД комментируемой строкой.. Теперь у меня совсем нет идей, почему в случае с предоставленным мной кодом ты ИНОГДА смотрел на строку, которая была НАД комментом а не под ним и нес чепуху исходя из этого. Хотя и была мысль, что ты пишешь комменты под целевой строкой и, по привычке, так же начал смотреть в чужой код.. но очевидно нет. Это просто твой очередной косяк. Ну что, признаешь, что был неправ практически во всем, начиная от моей "опечатки" с отрицательным смещением стека, нахождению аргументов функции в стеке( теперь их туда заталкивают на стороне вызываемой функции, а не вызывающего.. но обращение к ним в итоге все так же в основном через стек ) и вплоть до исключительно_одного_интерпретатора в современном жс( и следующей из этого не_относимости_жс_кода к реальному пробу и стеку ) ?
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., n00by, 13:40 , 22-Июл-21 (185)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., n00by, 19:05 , 17-Июл-21 (115) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., n00by, 18:45 , 17-Июл-21 (112) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., пох., 11:19 , 17-Июл-21 (57) –1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., n00by, 07:41 , 17-Июл-21 (42) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 08:31 , 17-Июл-21 (46)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 22:10 , 16-Июл-21 (11) –5 [V]
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Гоша7778, 22:35 , 16-Июл-21 (14) +4
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 23:04 , 16-Июл-21 (17) –2
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 00:36 , 17-Июл-21 (27)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Анон123амм, 16:29 , 17-Июл-21 (96) –4 [V]
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., 123, 16:53 , 17-Июл-21 (99) +1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 23:16 , 16-Июл-21 (19) –1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпанию ресурсов, Аноним, 00:11 , 17-Июл-21 (22) +2
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Kuromi, 00:43 , 17-Июл-21 (28) +7 [^]
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 08:32 , 17-Июл-21 (47) –4 [V]
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Анон123амм, 16:25 , 17-Июл-21 (95) –6 [V]
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., pavlinux, 18:20 , 17-Июл-21 (108)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., pavlinux, 18:43 , 17-Июл-21 (111)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., rust всё, 19:05 , 17-Июл-21 (114) –1
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Хан, 19:24 , 17-Июл-21 (118) –2
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 19:50 , 18-Июл-21 (148)
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 17:37 , 19-Июл-21 (171) +2
- Уязвимость в uBlock Origin, приводящая к краху или исчерпани..., Аноним, 16:10 , 20-Июл-21 (182)
|