Aiwan \ (•◡•) / _bot
или я немного не пйму что ты хочешью
Aiwan \ (•◡•) / _bot
аа, понятно
Aiwan \ (•◡•) / _bot
через wsprintf подготовь через форматную строку (в своем buff) текстовое представление числа
Aiwan \ (•◡•) / _bot
хм, чет не нахожу в форматах f/g/e у wsprintf
Aiwan \ (•◡•) / _bot
кажись нашел решение
Aiwan \ (•◡•) / _bot
https://www.cyberforum.ru/assembler-windows/thread2672232.html пока только это
Aiwan \ (•◡•) / _bot
там у масм32 есть даже для этого отдельная функция
Eugene
Привет. Подскажите, пожалуйста, возможно ли в MASM как-то стандартными средствами вывести число в консоль в нормализированном виде?
Что значит в нормализованном? Там есть библиотека своя. Есть и dw2a и StdOut функции. MessageBox – это не консоль.
Георгий
Помогите пожалуйста разобраться, только учусь: Вводная: пишу на NASM, в системе fedora35 32 битное приложение Код: global _start section .data index dd 0 point dd 0 msg db 's' len equ $ - msg section .bss array resw 4 section .text print_: mov esi, [point] mov eax, 4 mov ebx, 1 mov ecx, esi mov edx, len int 0x80 ret _start: mov eax, array mov ebx, point mov [ebx], eax again: mov ecx, [point] inc ecx mov eax, msg mov [ecx], eax mov [point], ecx call print_ mov ecx, [index] add ecx, 2 mov [index], ecx cmp ecx, 4 jl again mov eax, 1 mov ebx, 0 int 0x80 Суть: необходимо обходя цикл выводить символ в командной строке командная строка не чего не выводит А если использую file > text.txt. то в файл выводится: ^H^H Как сделать нормальный вывод?
Георгий
resw, менял на resb, нет разницы
Георгий
Все спасибо, разобрался: эффект уточки блин 😂
Георгий
global _start section .data index dd 0 point dd 0 msg db 'H', 0xA len equ $ - msg section .bss array resb 16 section .text print_: mov esi, [point] mov eax, 4 mov ebx, 1 mov ecx, esi mov edx, len int 0x80 ret _start: mov eax, array mov ebx, point mov [ebx], eax again: mov ecx, [point] inc ecx mov eax, [msg] mov [ecx], eax mov [point], ecx call print_ mov ecx, [index] add ecx, 2 mov [index], ecx cmp ecx, 16 jl again mov eax, 1 mov ebx, 0 int 0x80
Aiwan \ (•◡•) / _bot
Все спасибо, разобрался: эффект уточки блин 😂
что за эффект уточки? впервые слышу
Anonymous
когда беседуешь с резиновой уточкой условно
Anonymous
объясняешь ей проблему свою
Anonymous
и в процессе понимаешь решение проблемы
Aiwan \ (•◡•) / _bot
и в процессе понимаешь решение проблемы
напоминает, как в фильмах, визит к психологу. говоришь о проблемах насущных и решение приходит само собой. для тебя психолог это уточка
Anonymous
напоминает, как в фильмах, визит к психологу. говоришь о проблемах насущных и решение приходит само собой. для тебя психолог это уточка
Это не только в фильмах. Это сама суть психологии. Психологи никогда не будут ставить диагноз, они только будут подсказывать наводящие мысли. - Вы сейчас будете спрашивать у меня про моих родителей? - А вы хотите чтобы я спросил? И т.д
Anonymous
Интересная мысль
M
Привет. Подскажите, пожалуйста, возможно ли в MASM как-то стандартными средствами вывести число в консоль в нормализированном виде?
Ну дык, возьми целевую процедуру принта, накидай нужные переменные на стэк и в регистры, ну и сделай call
Leon
когда беседуешь с резиновой уточкой условно
Зачем нужна уточка если можно поговорить с самим собой😁😁😁
Ask
Зачем нужна уточка если можно поговорить с самим собой😁😁😁
самому себе многое недоскажешь потомучто и так знаешь, а уточке все надо расжевать)
Leon
самому себе многое недоскажешь потомучто и так знаешь, а уточке все надо расжевать)
Мне помогает, когда сложный код, но надо вслух, про себя не работает.
M
Я так вообще в корне ФС сделал папочку blog
M
Куда поместил директории all и по категориям/тэгам, пишу и фиксирую мысли в all, при необходимости линкую в категории
M
Ахуенно помогает фиксануть мысли в потоке )
M
Типа как ежедневник,но технологично, и не блог,можешь писать че хочешь,хоть про реаллайф и все безопасно )))
Eugene
Всем хай! Кто в курсе, каков диапазон базы для EXE-шников при включённом ASLR в винде? И каково максимально возможное значение ESP на старте? Давайте пока возьмём 32-битную винду.
Eugene
Интересно, бывает ли поддержка FMA, но без AVX2, например?
Eugene
Есть вообще какие-нибудь таблицы, в которых расписаны наборы инструкций (ISA) для каждого процессора? Какие наборы в каких процессорах появились и пр.
M
(Я не изучал вопрос)
M
Просто как мне казалось, от железа в том числе зависит
Eugene
Хай,а думаешь,это статически определяется ?
Я думаю, что в винде должно быть как-то зашит диапазон адресов.
Eugene
Есть вообще какие-нибудь таблицы, в которых расписаны наборы инструкций (ISA) для каждого процессора? Какие наборы в каких процессорах появились и пр.
Ну или хотя бы инфа о том, что если присутствует такой-то набор, значит железно присутствует и другой. Скажем, понятное дело, что SSE4.2 без SSE2 не бывает. А вот бывает ли FMA без AVX2 или AVX2 без FMA — не понятно. Вроде как BMI1 (и LZCNT) не бывает без POPCNT (а значит и без SSE4.2), а BMI2 без BMI1, но это не точно.
Anonymous
Aslr?
Защита для PE
disba1ancer
Защита для PE
Защита от чего?
Eugene
Aslr?
Да. Защита от атак скорее.
Anonymous
Защита от чего?
От кряков, патчей. Ну или бинарных уязвимостей
disba1ancer
Да. Защита от атак скорее.
И как она защищает?
Anonymous
И как она защищает?
При каждом запуске рандомизирует адресное пространство
Anonymous
ASLR - Address Space Layout Randomization
disba1ancer
⸙ꠋꠋk̹̺ Seymøur
Ага, который ещё отключается флагом в бинарнике
disba1ancer
Как минимум всё должно быть в PIC для такого
Anonymous
Ага, который ещё отключается флагом в бинарнике
Если есть доступ к флагам бинарника
Anonymous
Как минимум всё должно быть в PIC для такого
Ну для кряка и патчей - да, не сильно помогает. А вообще это было придумано для защиты от бинарных уязвимостей типа memory corruption
s54820
Ну для кряка и патчей - да, не сильно помогает. А вообще это было придумано для защиты от бинарных уязвимостей типа memory corruption
От кряков и патчей оно вообще никак защищать не может. Изнутри системы нет никаких проблем узнать базовый адрес модуля.
Aiwan \ (•◡•) / _bot
Интересно, бывает ли поддержка FMA, но без AVX2, например?
думаб бывает амд например не щаморачивпется с avx, считабт не нужной технологией, щанимающей место на кристале. для всего достаточно sse4.2
Eugene
Ааа, емнип, редко кто так exe собирает
Обычно так и собирают как раз.
Eugene
Как минимум всё должно быть в PIC для такого
А релоки для чего? Как же dll-ки работают без pic?
Aiwan \ (•◡•) / _bot
да
Eugene
В Zen 4 будет AVX512, и дофига чего из него
Посмотрим, это интересно.
Aiwan \ (•◡•) / _bot
Найдёшь?
https://i2hard.ru/publications/26720/ это не хабр
disba1ancer
А релоки для чего? Как же dll-ки работают без pic?
под PIC я имел ввиду в т.ч. генерацию релоков, в обычных exe релоков вроде как нет, ну если не попросить у линкера
disba1ancer
Обычно так и собирают как раз.
сколько собираю не замечал, правда я не парсил выхлопы,может что-то и есть, но мне кажется для такого нужны определённые телодвижения и я явно их не делаю
Eugene
сколько собираю не замечал, правда я не парсил выхлопы,может что-то и есть, но мне кажется для такого нужны определённые телодвижения и я явно их не делаю
Заходишь в Process Explorer (sysinternals) и смотришь - почти все проги с ASLR. VC++, Clang, GCC по дефолту собирают с флагом ASLR.
Anonymous
А релоки для чего? Как же dll-ки работают без pic?
получается на винде можно собрать dll с опцией load-time relocation?
Eugene
получается на винде можно собрать dll с опцией load-time relocation?
Не знаю, что за опцию вы имеете в виду, но для DLL это всё (ASLR) более актуально, т.к. их грузится и отображается в память процесса несколько штук. Если для ЕХЕ можно жёстко сказать: грузись по 401000 и никаких тебе relocations, то с DLL такой фокус выдаст ошибку при попытке загрузить 2 такие DLL (по одному адресу). Собственно, ASLR ладно, можно не включать, но релоки для DLL нужны.
Anonymous
либо PIC ага
Anonymous
ну суть в том что DLL с релоками будет в каждом процессе иметь свой текст, так что ее надо будет мапить приватно и пропадает смысл использования шаред библиотек в плане экономии памяти
Eugene
либо PIC ага
Ну это да, но вряд ли винда поймёт, что код написан как PIC, если не увидит релоков. Скорее всего, выдаст ошибку загрузки и всё.
Eugene
Хотя бы пустая таблица, но должна быть.
Anonymous
я потому и спросил про load-time relocations
Anonymous
на линуксе это приводит к N экзмепляров текста библиотеки в памяти
Eugene
я потому и спросил про load-time relocations
DLL всегда с релокамм делают, в общем-то.
s54820
ну суть в том что DLL с релоками будет в каждом процессе иметь свой текст, так что ее надо будет мапить приватно и пропадает смысл использования шаред библиотек в плане экономии памяти
Когда экономия памяти была актуальна, базовые адреса библиотекам назначались специально так, чтобы в большинстве случаев никто ни с кем не конфликтовал (особенно системные либы). Теперь у нас 64-битный код, где поправок меньше, поэтому проблемы опять нет, и PIC опять не нужен.
Anonymous
нет проблемы назначить всем разные базовые адреса? или что?
s54820
нет проблемы назначить всем разные базовые адреса? или что?
Не слишком много страниц затрагиваются поправками в 64-битном коде.
Eugene
Есть флаг relocations stripped. Если его нет, и поправок нет, то это PIC.
Пустая таблица или вообще секции .reloc нет?
Anonymous
так ты весь регион приватно мапишь все равно
Anonymous
ты ж не будешь под каждую страницу создавать отдельный регион