Size: a a a

Ассемблер

2021 September 22

E

Entusiast in Ассемблер
Ну не быстродействие, тогда хотя бы размер
источник

C

Cofeefee in Ассемблер
Вопрос для знающих формат MZ, PE,ELF

Известно, что exe может начинаться с сигнатуры  "MZ" или "ZM" (сигнатура ZM по крайней мере была актуальна для DOS).
PE-файл состоит из DOS-stub и PE.

Вопрос: можно ли сделать матрешку, чтобы был не только PE, но и к примеру, отличный от DOS-stub формат исполняемого модуля, к примеру ELF+PE?
источник

C

Cofeefee in Ассемблер
Давно в каком-то вируслисте читал, что кто-то сделал матрешку, но для каких форматов - не помню
источник

RB

Rustem B. in Ассемблер
Чтобы запускалось и на UNIX и на windows?
источник

E

Entusiast in Ассемблер
Нет, начало у двух структур абсолютно разное, скрестить их нельзя. Впрочем, как и сделать проверку на то, какой формат нужно подгружать - потому что, опять же, начало структур разное - либо загружаешься с ELF, а в конце будет PE, но тогда PE ты уже не загрузишь, потому что у тебя уже есть ELF, так и наоборот
источник

C

Cofeefee in Ассемблер
Это вряд ли, ELF начинается с подписи ELF
источник

C

Cofeefee in Ассемблер
Вопрос исключительно для разминки разума
источник

RB

Rustem B. in Ассемблер
Cosmopolitan libc посмотри
источник

E

Entusiast in Ассемблер
Но есть вариант со скриптами (Python).
Но тогда лучше сразу всё на скриптах написать
источник

RB

Rustem B. in Ассемблер
GitHub - jart/cosmopolitan: build-once run-anywhere c library
https://github.com/jart/cosmopolitan
источник

C

Cofeefee in Ассемблер
Не не, задачи делать матрешку или писать скрипты - не стоит. Вопрос - можно ли сделать матрешку, отдельную от PE+DOS
источник

C

Cofeefee in Ассемблер
O,гляну
источник

s

s54816 in Ассемблер
Зато в линуксе парсится shebang (#!), а в винде можно посчитать, что это часть инструкции в .com-файле. А PE/ELF нельзя. А, вот как раз это, видимо, выше и запостили.
источник

C

Cofeefee in Ассемблер
К .com файлу не прикрутишь PE((
Заголовок должен начинаться или с MZ или с ZM
источник

s

s54816 in Ассемблер
Можно распаковывать его рядом с собой и запускать. Но выше по ссылке вариант очень крутой, гораздо лучше.
источник

C

Cofeefee in Ассемблер
Неспортивно. Да, dos и винда сначала запускают .com и если он не найден, то .ехе
источник

C

Cofeefee in Ассемблер
Известная фича, почти dll-hijacking))
источник

E

Entusiast in Ассемблер
(Пока не поздно)
В контексте непонятно, потому что не я перевёл разговор в "производительность rdrand/rdseed", но нужно заметить, что он очень медленный, т.к берёт числа из энтропии, сгенерированных аппаратным источником, и применяет над ними AES.
Но всё же он более надёжный, чем время (через прерывание), или TSC (rdtsc):
"RDRAND is intended for applications that merely require high-quality random numbers. If cryptographic security is not required, a software PRNG such as Xorshift is usually faster"

Но: rdrand+rdseed = 463 + 463 = 926 такта
(Для Intel Core i7-7700K, 4500 МГц, взято с анализов в Google, а так же анализы Монте-Карло по этому алгоритму)
AMD Ryzen = 1200 тактов, 64-бит = 2500 тактов

rdrand так же медленнее, чем генератор псевдослучайных чисел в C, и в модуле Python, медленнее, чем в оригинальном генераторе псведослучайных чисел Python
Ну и после починки уязвимости CrossTalk (после 2020 г.), появилась ещё дополнительная задержка (для обеспечения мер безопасности)
источник

RB

Rustem B. in Ассемблер
мне кажется, я что-то придумал

src: https://github.com/edrosten/8bit_rng
источник

0

0Nera in Ассемблер
Здравствуйте! Есть желающие помочь с проектом?
Пишу операционную систему на языке Си и FASM.
Репозиторий
https://github.com/Synapse-OS/SynapseOS/tree/developer
Roadmap
https://docs.google.com/document/d/1V41YB8OubXi1kSnqj0j2hm6UcF3ngSzr/edit#
источник