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
🐙 Antony
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
о! Спасибо!
да чото не похож
Понаприходят фэйков...
Anonymous
Всем хай))
🦥Alex Fails
Прив
Anonymous
знаю не к месту, но какая красотень
Дмитрий
Hello my friend
Anonymous
Привет
🦥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
начни с протов проще
bilka00
аля telock
bilka00
если понимаешь базу
bilka00
ну для изучаения базы этого достаточно
bilka00
и да по факту если обсидиан не умеет в краденые байты то можешь просто дампить и ресать импорты
Девушка в ассемблере? Не верю.
Anonymous
Dan
Dan
это существа бесполые
🦥Alex Fails
MrSmith
uefi вроде и так открыт, не?
Лол, тока спеки не считая проектов openUEFI и порта линя ничего путнего не видел не считая утекших сорцов
MrSmith
Эйчарки не люди, друг познакомился с одной, узнала его зп и кинула
MrSmith
Так шо будте с ними акуратны
JeisonWi
Ну и закрытость PI (Platform Initialization)
MrSmith
MrSmith
Хочу змейку запускать а не могу, где мои юзабилити?
JeisonWi
JeisonWi
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
MrSmith
Ну и конечно таки да, зависит от архитектуры, в том плане, что где-то да может