⸙ꠋꠋk̹̺ Seymøur
alignment?
Что-то в этом духе, да
disba1ancer
В общем, расклад такой, что у меня gcc си-прогу так компилит, что переменные в стеке появляются в порядке отличном от объявленного.
какая тебе разница в каком порядке? если у тебя какая-то магия на указателях, то это заведомо выстрелы в ноги
Saenro
А есть где почитать про Brute Force реализованный на распараллеливании по ядрам GPU? Желательно на асме (всё равно каком) x86-64.
Anonymous
гпу ж не умеет все равно асм х64 исполнять
Anonymous
надо смотреть в сторону gpgpu фреймворков, которые указал Eugene
Anonymous
а так, там почти полноценный многоядерныф процессор, привыкнуть только надо к модели
Saenro
Хорошо, а как GPU узнает что от него хотят? Как ему доносят эту информацию? Без CPU? Не думаю...
Anonymous
от драйвера вестимо
Anonymous
драйвер загружает программу пришедшую из юзерспейса
Anonymous
но и в юзерспейсе она проходит несколько стадий компоновки
Saenro
Может, CUDA, OpenCL почитать?
Ок, почитаю. Спасибо)
Nikita
Рекомендую для параллельности посмотреть AMP https://docs.microsoft.com/en-us/cpp/parallel/amp/cpp-amp-overview?view=msvc-160
Nikita
Это более универсальная вещь, чем CUDA или OpenCL.
kitsu
> C++ AMP headers are deprecated
kitsu
чего-то очень сомневаюсь, что она более универсальна, чем opencl
Nikita
А ты не сомневайся, а потрать время на ознакомление.
Nikita
Из Википедии: C++ Accelerated Massive Parallelism (C++ AMP) is a native programming model that contains elements that span the C++ programming language and its runtime library. It provides an easy way to write programs that compile and execute on data-parallel hardware, such as graphics cards (GPUs).
Nikita
Здесь можно распределять потоки по GPU и ядрам одновременно. Мы раньше на работе использовали CUDA и соответственно всем заказчикам (у нас они корпоративные) ставили карты nVidia. Теперь перешли на AMP, и можно использовать любое железо.
kitsu
но только win7+ под amd64, очень универсально
kitsu
при этом opencl работает даже на fpga
Nikita
Работает под любой Windows на всех процессорах и картах. Под Linux не проверяли, так как для него пишем только для своих устройств.
Nikita
Вот вам небольшой проектик для VS
Nikita
Можете распаковать, скомпилировать и запускать, где хотите. Впрочем, дело ваше. Мне только странно, что программист с порога отвергает новое знание. Я программирую уже 52 года и интересуюсь постоянно новыми технологиями и библиотеками для VS C++.
Nikita
Мы пишем софт для электроэнергетики и для АЭС. У нас все серьезно.
Nikita
В проекте есть папка Release, а в ней файл amp_sort.exe. Можете просто запустить. Там будут разные сортировки.
Anonymous
Приветствую всех. Подскажите, пожалуйста, существует ли какой-нибудь способ вызова сискола(sysenter) на Windows x64 из-под x32 приложения? И если существует, то помогите с примером. Я лично пробовал mov eax, код_сискола mov edx, esp sysenter ret вызывалася процедура в visual C++ через определение функции (чтобы проще было передавать в стек параметры на С++)
Anonymous
смотри в сторону heaven's gate
Anonymous
Также смотрел этот пример https://www.ired.team/offensive-security/defense-evasion/retrieving-ntdll-syscall-stubs-at-run-time , но он не работает из 32 бит приложения
Anonymous
для винды
Anonymous
тебе надо дергать wow64.dll или чето такое
Anonymous
смотри в сторону heaven's gate
А, ещё забыл уточнить немаловажный факт: мне нужно дёрнуть NtCreateThreadEx , но его x64 версия для инжекта в 32 бит приложения не годится
Anonymous
так что вариант с райской калиткой откидывается
Anonymous
так а чо ты хочешь тогда
Anonymous
у тебя одна (!) реализация сисколлов
Anonymous
на винде х64 будет х64 реализация
Anonymous
и одна ntdll.dll
Anonymous
на винде х64 будет х64 реализация
То бишь вызвать сисколами х32 NtCreateThreadEx на х64 системе невозможно?
Anonymous
его там просто нет, возможно товарищи @Saenro и @s54816 поправят
Anonymous
просто интересно, когда я дергаю с помощью GetProcAddress эту функцию, то она воркает
Anonymous
Когда я дёргаю через райскую калитку эту же функцию не работает
Anonymous
Даже интересно почему так
Anonymous
а в таблице импортов она есть?
Anonymous
хз если честно почему )
Anonymous
а в таблице импортов она есть?
при чём тут таблица импортов?
Où va le monde
Объясните за выравнивание стека при конвенции вызова __fastcall (windows)
Aiwan \ (•◡•) / _bot
Объясните за выравнивание стека при конвенции вызова __fastcall (windows)
в контексте какого вопроса (или темы) ты задал свой?
Où va le monde
в контексте какого вопроса (или темы) ты задал свой?
Я читаю книга по асму и там говорится о том что пятный аргумент функции вытягивается из стека по rsp+40 ну а первые 4 понятное дело с регистров, но вроде как помню когда дизасемблил тестовую функцию то там было rsp+8, рассказал это знакомым говорят что надо мне про выравнивание узнать, вот и спросил
Aiwan \ (•◡•) / _bot
хоть первые 4 параметра и передаются через стек место для них все равно резервируются. для чего это сделано примерно показано на скрине ниже
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
rsp+8 это размещение первого аргумента, которые предварительно был положен в стек в теле процедуры инструкцией mov [hwnd],rcx
Aiwan \ (•◡•) / _bot
и с выравниванием твойй вопрос вроде никак не связан напрямую
Anonymous
а можно в proc приписать еще пару параметров на х64?
Aiwan \ (•◡•) / _bot
а можно в proc приписать еще пару параметров на х64?
что значит в проц? макрос изменить? или в самом коде использовать больше параметров?
Anonymous
в самом коде, я прост никогда не писал (почти) асм под винду
Aiwan \ (•◡•) / _bot
можно
Anonymous
спасибо, Айван!
Ilyxa
Всем привет Можете подсказать, как реализовать сложение и вычитание 512 разрядных чисел в MASM? Смог сделать только так, не могу понять как взять числа большей разрядности
Ilyxa
Так я использовал его
Ilyxa
Он все равно большие числа не складывает
Aiwan \ (•◡•) / _bot
ну как это не скалдывает? в совместном использовании этих инструкций заложен механизм переноса разряда (CF)
Ilyxa
Только так получается
Aiwan \ (•◡•) / _bot
ну, а где остальные разряды?
Ilyxa
Вот в этом и вопрос, как их вычислить, код был выше
Aiwan \ (•◡•) / _bot
так ты в edx не ноль клади а следущую часть числа, следущие старшие разряды. и это все в цикл можно обернуть
Ilyxa
У меня цель без цикла это сделать, муторно конечно
Aiwan \ (•◡•) / _bot
делай без цикла, мож даже чуть быстрей будет
Ilyxa
Так? Не совсем понимаю, как работает adc просто Можешь на моем коде показать, если не сложно?
Aiwan \ (•◡•) / _bot
https://fasmworld.ru/uchebnyj-kurs/010-slozhenie-i-vychitanie-s-perenosom/
Ilyxa
https://fasmworld.ru/uchebnyj-kurs/010-slozhenie-i-vychitanie-s-perenosom/
MASM не хочет работать с таким кодом
Aiwan \ (•◡•) / _bot
Ilyxa
Так мне под MASM, инфу нигде не могу найти
Aiwan \ (•◡•) / _bot
Так мне под MASM, инфу нигде не могу найти
так перепиши под масм. делов то. архитектура то одна и та же
Ilyxa
Я не за MASM и FASM не шарю, только начинаю учить
Aiwan \ (•◡•) / _bot
MASM не хочет работать с таким кодом
я тебе пример скинул чтоб ты разобрался как правильно длинное сложение работает. а на написать надо самому на своем асме, зная новую информацию
Ilyxa
А сколько инструкций нужно для сложения 64 байтового числа?
Aiwan \ (•◡•) / _bot
если учесть что ты складываешь по 4 байта за раз, то 64/4