bilka00
конешн если я не прав то прав ты (
🐙 Antony
Не, если я не начудил, то если не происходит jne .L11 то выполнение прекращается. Значит это внешний цикл - итерирование по чанкам. jne .L10 - итерирование по элементам чанка
🐙 Antony
Еще вопросик. А кто может сказать, какой из этих наборов машинных инструкций эффективнее: https://godbolt.org/g/8HjjB3 Или есть еще более эффективный способ проверить что end принадлежит диапазону [chunk_begin, chunk_begin + 512] ?
Pavel
у меня сложилось впечатление насчет gcc что он может сильно менять результирующий асм в процессе инлайна. я как-то наблюдал кейс когда он в годболте показывал вот так изолированно один код, а когда я стал писать бенч и смотреть дизассембл там асм был сильно другим по структуре. я подозреваю что тк эта функция маленькая, к ней это тоже может относиться. правда я компилил с -O3 -flto.
Pavel
кэп подсказывает что версия кланга без джампов, только с кондишнл мувами
Pavel
вроде судя по ману Агнера Фога cmov дешевле джампов (смотрю skylake)
Pavel
плюс нет потенциала к неправильному предикту
Pavel
с другой стороны предиктор хорош
Pavel
Антон, а зачем у тебя abi-version=0 для gcc?
🐙 Antony
у меня сложилось впечатление насчет gcc что он может сильно менять результирующий асм в процессе инлайна. я как-то наблюдал кейс когда он в годболте показывал вот так изолированно один код, а когда я стал писать бенч и смотреть дизассембл там асм был сильно другим по структуре. я подозреваю что тк эта функция маленькая, к ней это тоже может относиться. правда я компилил с -O3 -flto.
Ну случаи когда компилятор выкинет всю деку - не интересны. Интересует случай, когда компилятор не смог убрать создание деки, а в этом случае у него в лучшем случае только информация что end и chunk_begin получены из разных вызовов malloc + смещение. У компилятора только информация что они выровнены и потенциально пересекаются.
Anonymous
доброего времени суток
Anonymous
😐😐😐
Anonymous
Доброе!
Anonymous
на ноль давай поделим
­
Я за.
Anonymous
я нет
IB
нул, здарова, как сам?)
IB
а. он уже удалился?
🐙 Antony
Всем привет! Еще ассемблерные задачки: true_end(char*, char*): # @true_end(char*, char*) lea rax, [rdi + 512] cmp rax, rsi mov rcx, rsi cmovb rcx, rax cmp rsi, rdi cmovae rax, rcx ret меня тут смущает серединка функции. Зачем там mov ? Разве если заменить mov rcx, rsi cmovb rcx, rax на cmovb rsi, rax поведение изменится?
tanjmaxalb
Если привести фрагмент к си, то выходит rcx = (cf)? rax : rsi. Предложенная тобою инструкция, выполняет совершенно другие действия
Pavel
а я вот че-то не вижу кстати кейса когда код не использующий rcx даст не верный результат. я что-то упускаю? да, там если rax < rsi то он во втором cmp сравнит не end и begin, а chunk_end и begin, но это всеравно даст верный результат потому что begin всегда меньше chunk_end по коду функции, а в rsi как раз chunk_end.
Pavel
мне правда кажется что если без rcx то все инструкции придется выполнять последовательно, тк они зависят по аргументам от результата предыдущих. а с rcx как я понимаю их можно запустить группами, например два cmp не зависят друг от друга.
Pavel
кстати насчет вчерашнего вопроса про код от какого компайлера лучше, нашел у Агнера - "As a rule of thumb, we can say that a conditional jump is faster than a conditional move if the code is part of a dependency chain and the prediction rate is better than 75%. A conditional jump is also preferred if we can avoid a lengthy calculation ... when the other operand is chosen." это я к тому что там по сути отличие в выборе conditional move vs conditional jump
🐙 Antony
о! Спасибо!
🦥Alex Fails
нул, здарова, как сам?)
Это не тот нулл, хотя хз
да чото не похож
­
Понаприходят фэйков...
Anonymous
Всем хай))
🦥Alex Fails
Прив
Anonymous
знаю не к месту, но какая красотень
Дмитрий
Hello my friend
­
Привет
🦥Alex Fails
@aleksey_olegov1 , разбанил во флудилке; бот лютует сильно
🦥Alex Fails
В описании чата
🦥Alex Fails
Публичная ссылка: @ProAsm Правила: Не оскорблять участников; Без флуда и тупых вопросов. На входе контроль тупости. Пофлудить можно тут: https://telegram.me/joinchat/BYlFbD-hNV4_rsFiBqmKTA Участник @ProDot
KosBeg
тут есть мощные реверсеры? мне нужна помощь с обсидиумом примерно с конца 2011 года(версия не извесна, а дата примерная, по последнему изменению файла), и судя по всему - максимальные настройки защиты, + весь важный код пошифрован
🦥Alex Fails
хм, интересно..
bilka00
глянем
bilka00
а ну лол
bilka00
я тоже собирался патчить подобным способом
bilka00
зачем анпакать так то
bilka00
начни с протов проще
bilka00
аля telock
bilka00
если понимаешь базу
bilka00
ну для изучаения базы этого достаточно
bilka00
и да по факту если обсидиан не умеет в краденые байты то можешь просто дампить и ресать импорты
­
Девушка в ассемблере? Не верю.
Dan
это существа бесполые
🦥Alex Fails
MrSmith
uefi вроде и так открыт, не?
Лол, тока спеки не считая проектов openUEFI и порта линя ничего путнего не видел не считая утекших сорцов
MrSmith
Эйчарки не люди, друг познакомился с одной, узнала его зп и кинула
MrSmith
Так шо будте с ними акуратны
JeisonWi
Лол, тока спеки не считая проектов openUEFI и порта линя ничего путнего не видел не считая утекших сорцов
Открыт только интерфейс. Реализация может отличаться от tianocore. Да и всякие расширения протоколов от AMI, например
JeisonWi
Ну и закрытость PI (Platform Initialization)
MrSmith
Хочу змейку запускать а не могу, где мои юзабилити?
JeisonWi
Кстати на счет интерфейсов, гдя моя байткод машина и командлайн
Компилятор закрыт и платен, да и реальных драйверов на нем кот наплакал
MrSmith
Компилятор закрыт и платен, да и реальных драйверов на нем кот наплакал
Я руками напишу, но где возможность запускать в этой машине что то не подписанное мейнтейнером а вот !@#$ тебе
MrSmith
Коммандлайн - UEFI Shell
Да не на всех компах он открыт внезапно
JeisonWi
Я руками напишу, но где возможность запускать в этой машине что то не подписанное мейнтейнером а вот !@#$ тебе
Запускается все норм. Если только Secureboot не включен с проверкой подписи драйверов
MrSmith
Сетевухи?
MrSmith
Тебе ринг экзекушена надо поднимать, так шо никак
JeisonWi
зависит от версии Windows. Раньше было проще. В 10ке, наверное, без хака/драйвера никак
JeisonWi
гугл, должен помочь, 100%, это частый вопрос
MrSmith
Ну или ищи 0day https://cve.mitre.org/
MrSmith
Нет, ну ты свои напиши
JeisonWi
чекни CPUZ
MrSmith
Ты версию окон дай, а то так я и не скажу, знаю что для 7 ки подписывают
MrSmith
http://winitpro.ru/index.php/2014/05/08/kak-samostoyatelno-podpisat-drajver-dlya-windows-7/
Vladimir
Можно. SGDT - непривелигированная команда. Хотя, в новых процах вроде запилили расширение, чтобы сделать ее привелигированной.
Vladimir
Кстати на счет интерфейсов, гдя моя байткод машина и командлайн
С байткод-машиной перемудрили, спецификация говорит, что sizeof(void *) зависит от архитектуры, и, как я понимаю, именно это - сложность в реализации бекенда для LLVM. Хотя странно, как размер поинтера может быть разным для уже скомпилированного бинаря.
MrSmith
Ну и конечно таки да, зависит от архитектуры, в том плане, что где-то да может