Сохранен 595
https://2ch.hk/pr/res/2425757.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

ASM тред №16 /asm/

 Аноним 05/08/22 Птн 20:28:34 #1 №2425757 
4444444444.PNG
Книги:
x86
Assembly Language Step-By-Step - Programming with Linux Jeff Duntemann

x64(упор сделан на математические расширения avx, avx2 и avx512)
Профессиональное программирование на ассемблере x64 с расширениями AVX, AVX2 и AVX-512 Куссвюрм Даниэль
Аноним 05/08/22 Птн 20:29:29 #2 №2425761 
>>2425757 (OP)
Читая книги по ассемблерам я понял что раньше развитие в плане прозводительности шло по сути за счёт расширения регистров, увеличения кол-ва ядер и ускорения самих проциков.

Однако сейчас уже ясно что чисто физически из этого выжато всё что можно: плотность транзисторов достигла максимума, гигарецы разогнаны по максимуму, быстрее уже физика не пвозляет. То есть новые регистры ядра уже не впихнуть, да и ггц не нагнать.

И сейчас упор на прирост производительности будет делаться за счёт алгоритмов, создания регистров и команд специального назначения типа как в книге по ассемблеру x64 написано, что мне здесь советовали. Там рассказывается про avx avx2 avx512 вот все наборы расширений. Там есть например специальные команды которые позволяют избегать лишних команд условного перехода, лучше обрабатывать определённые типы данных и просто много параллельно типа упакованных чисел. То есть на это упор всё будет идти. Будут возможно конвейры оптимизировать.

Да и что тут думать я с 2012го года заметил что прирост в памяти и гигарецах с ядрами в техники нет. Сейчас стабильно ноутбуки бюджетные с 4-8гб оперативы продаются с 2-4 ядерными процессорами тоже самое в 2012ом году было. Кстати. Единственное что поменялось это ssd начали ставить вместо механического жд.
Аноним 06/08/22 Суб 13:23:09 #3 №2426190 
InsideReality.mp4
Читаем теорию
Аноним 06/08/22 Суб 13:37:03 #4 №2426203 
Томашу Грыштару надо памятник ставить за FASM.
Аноним 06/08/22 Суб 13:39:18 #5 №2426204 
Потому что в FASMe можно легко проверить теорию на практике. Но вам не нужна практика, ведь в теории у вас всё работает.
Аноним 08/08/22 Пнд 17:09:25 #6 №2428261 
Практика решает, не агритесь а примите это.
Аноним 11/08/22 Чтв 17:49:23 #7 №2430704 
Каких годных книг почитать? На инглише желательно.
Аноним 16/08/22 Втр 16:02:42 #8 №2435974 
SYCL>>2425761
>И сейчас упор на прирост производительности будет делаться за счёт алгоритмов
А долбаебы все еще будут писать на петухонах. Хартьфу, блять.
Аноним 19/08/22 Птн 07:09:00 #9 №2439102 
>>2435974
средняя зарплата программиста на питоне - 300кк в месяц
средняя зарплата программиста на ассемблере - 17к средний класс
рыночек порешал
Аноним 19/08/22 Птн 07:18:27 #10 №2439106 
>>2439102
Ты дурачок.
Специалисты сидят в всяких реверсах, вирях-антивирях и зарабатывают дохуя больше всех этих ваших милородов макачьих.
Заметил, что исчезла та самая сцена? А куда она делась? Правильно.
Сейчас, с развитием information warfare и ебовой кучи APT-подразделений на подсосе у кучи государств можно найти один бажик, продать и уходить на пенсию.
Аноним 19/08/22 Птн 07:23:44 #11 №2439112 
>>2439106
> Заметил, что исчезла та самая сцена? А куда она делась? Правильно.
заметил, уже n месяцев не могу найти реверсеров наверное, не там ищу
Аноним 19/08/22 Птн 18:41:17 #12 №2439854 
>>2439102
Я про freeware, а не про долбаебов на зарплате
Аноним 08/09/22 Чтв 18:02:04 #13 №2458470 
phaeton1.jpg
Наверное в будущем электричества не будет в компьютерах или оно будет значительно сокращено. Всё будет на оптике построено, уже щас процики упираются в ограничения по физике в плане скорости и в плане компактности умещения транзисторов на нанометр.

Думаю реально в будущем просто в ход массово пойдут оптические процессоры и всё. Сети будут оптическими, процессоры, память оптической.

И это наверное и будет тот самый рассвет айти технологии.
Аноним 08/09/22 Чтв 18:04:38 #14 №2458472 
>>2439112
В треде пробовал поспрашивать?
Аноним 12/09/22 Пнд 16:57:23 #15 №2461248 
>>2458470
>оптическая память
CD?
Аноним 12/09/22 Пнд 19:56:05 #16 №2461389 
>>2425761
правильно мыслишь, ещё будет прокладка скоростных шин между CPU и GPU и сеточные алгоритмы, будут уходить на GPU
Аноним 13/09/22 Втр 12:18:26 #17 №2461761 
>>2461248
Ну про оптическую память я загнул, хз как удерживать луч как это в на транзисторах реализовано. из оптики транзисторы не построиль всё таки
Аноним 15/09/22 Чтв 08:06:49 #18 №2463290 
15805603832280.jpg
Уважаемые Боги asm-а,подскажите, почему kmovd инструкция работает в Windows 10 (даже на старых процессорах), а в Windows 7 спамит "illegal instruction".
Сначала подумал, что сам дурак - обмазался апдейтами и vc pack-ами. А ошибка не ушла. Что-то ещё нужно установить?
Аноним 15/09/22 Чтв 10:43:04 #19 №2463346 
>>2463290
Возможно win10 просто эту инструкцию приобразует в её аналог на более старом процессоре или группу аналогов которые выполнят то что выполняет это команда.
А ты что думал майкрософт просто так говорил в 2015ом что win10 оживит даже старое железо?
Аноним 15/09/22 Чтв 11:01:25 #20 №2463360 
>>2463290
Звучит глупо, но попробуй от имени администратора запустить на 7ке.
Аноним 15/09/22 Чтв 17:31:15 #21 №2463633 
>>2463360
Спасибо, это уже пробовал.
>>2463346
Хорошо, конечно, что MS заморочились, но можно ли эту фишку перенести в 7-ку?
Аноним 15/09/22 Чтв 19:26:19 #22 №2463720 
>>2463633
Я не уверен точно заморочились ли они, просто предположил.

Вообще на ассемблере я никогда ничего не писал, весь мой ассемблер ограничился чтением двух книг по x86, 86-64 и разбор 3 режимов памяти: лонг, протектед и риал.

Так что мои советы особо ничего не стоят, но тред всё равно полудохлый поэтому имеем что имеем. Попробуй на англюсике свой вопрос на англоязычных профильных форумах позадавать.
Аноним 15/09/22 Чтв 22:16:00 #23 №2463849 
>>2463346
Коля, крепись. И попробуй https://docs.microsoft.com/en-us/windows/win32/debug/working-with-xstate-context
Аноним 15/09/22 Чтв 22:18:41 #24 №2463853 
>>2463849 сюда >>2463290
Аноним 19/09/22 Пнд 07:45:52 #25 №2466898 
Всю жизнь тред назывался "ASM & Reverse engineering", а теперь ни ссылки на предыдущий, ничего %) мда..
Аноним 19/09/22 Пнд 07:47:13 #26 №2466899 
Тред 15 кастрированный https://2ch.hk/pr/arch/2022-09-07/res/2241525.html
Тред 14 с шапкой https://2ch.hk/pr/arch/2022-06-02/res/2079195.html
Аноним 19/09/22 Пнд 21:37:37 #27 №2467485 
Здравствуйте, решил изучать Assembler, по этому видео (https://youtu.be/PHyIP9g9BQw) установил виртуальную машину, на неё - ms-dos, потом - masm611, написал программу, выводящую "Hello, World":

.8086
code SEGMENT para USE16 PUBLIC 'code'
ASSUME CS:code, DS:code, SS:code, ES:code
ORG 100h
START:
message db 'Hello, World$'
mov ah, 9h
mov dx, offset message
int 21h
ret
code ends
end START

После сохранения пишу в командной строке:
C:\MASM611\BIN> ml.exe /AT program.asm

Выдаёт ошибку: A1020: cannot find link.exe

Насколько понял из статей в интернете, ассемблер не может найти путь к линковщику, и ему надо его показать, подскажите, пожалуйста, как это сделать?
Аноним 19/09/22 Пнд 21:49:48 #28 №2467491 
>>2467485
Вот ты уже нашел в интернете что нужно сделать. Теперь найди - как. И нам потом рассказать не забудь.
Аноним 19/09/22 Пнд 22:39:30 #29 №2467531 
>>2467485
У тебя в программе очевидный баг, кстати - выполнение начинается с текстовой строки, а не с кода ее печати.
Аноним 19/09/22 Пнд 23:34:54 #30 №2467575 
ugh.gif
>>2467531
Школяры в 80-х не зная нихуя писали самомодифицирующиеся полиморфные движки, а он данные в код пихает в 2022.
Аноним 20/09/22 Втр 07:54:03 #31 №2467684 
12079794618860.webm
>>2463849
Спасибо!
Аноним 16/10/22 Вск 23:54:09 #32 №2490263 
16659525288950.webm
Бамп
Аноним 24/10/22 Пнд 01:28:11 #33 №2496954 
https://habr.com/ru/company/macloud/blog/566478/

А разве шесть АЛУ, VLIW и конпеляторное распараллеливание-конвееризация вместо аппаратных это некруто? Что по вашему мнению вышло, если эльбрусы пустили в норот? БЗВ есть схожие архитектуры?
мимо-обыватель-из-норота
Аноним 24/10/22 Пнд 01:32:53 #34 №2496956 
>>2496954
инбифо конечно техпроцесс, но 28нм (китайская хохляндия) и 65нм (микрон вроде) для игрунек и офиса же норм, равзе нет?
Аноним 26/10/22 Срд 08:10:25 #35 №2498306 
какие есть отладчики с гуи под прыщи?
алсо у вас шапка както поредела
Аноним 02/11/22 Срд 09:30:25 #36 №2503703 
ДНК человека это по сути и есть программа на ассемблере?
Аноним 03/11/22 Чтв 19:47:25 #37 №2504977 
Ку! А есть ИДЕ под ассемблер? В чем вы пишете и дебажите это?
Аноним 03/11/22 Чтв 21:15:28 #38 №2505048 
>>2504977
Лично я дебажу хуем по лбу твоей шлюхи матери. быдло.
Аноним 04/11/22 Птн 13:30:43 #39 №2505399 
>>2505048
Долбоеб что ли?
Аноним 05/11/22 Суб 00:40:46 #40 №2506047 
image.png
>>2425757 (OP)
Анончики, не прошу вас код написать, прошу подсказать алгоритм, правильно ли я подумал.

Задание звучит так: "Определить положение (номер разряда) крайней левой единицы."

Например дано число 001010, то надо 3 сдвига влево или 4 вправо чтобы получить.
Однако, сдвиги влево мне не скажут номер разряда, так как разряд справа считается как я понял., значит вправо надо сдвигать, а как понять когда будет последняя единица?


На другом языке я догадываюсь как сделал бы, узнал бы длину бита и прошелся бы по нему спокойно через цикл, тут просто реализация сложнее будет
Аноним 05/11/22 Суб 03:13:41 #41 №2506079 
>>2506047
на спектруме был сдвиг влево в регистр флага, то есть откусываемый бит влиял на последующий условный переход
Аноним 05/11/22 Суб 03:22:03 #42 №2506081 
>>2506047 для интеля и с картинками вот
https://www.includehelp.com/embedded-system/shift-and-rotate-instructions-in-8086-microprocessor.aspx
Имхо тебе любой сдвиг влево поможет
Аноним 05/11/22 Суб 21:02:08 #43 №2506683 
image.png
image.png
Что происходит? Почему не компилируется? Используется masm32, Windows 7 32.
Аноним 05/11/22 Суб 23:25:27 #44 №2506791 
>>2506047
LZCNT или BSR.
Аноним 07/11/22 Пнд 17:51:06 #45 №2508067 
image.png
image.png
>>2506047
привет от В.С.
Аноним 08/11/22 Втр 23:48:10 #46 №2509336 
>>2506683
Первая ссылка в гугле говорит что надо link16 а не link
Аноним 10/11/22 Чтв 17:59:57 #47 №2510784 
В чем вы пишите? Я просто в текстовом редакторе дофолтном и в консольки компилирую. Правда мне еще gdb не пригодился, не знаю будет ли дальше так же удобно
Аноним 20/11/22 Вск 21:54:05 #48 №2518905 
image.png
>>2425757 (OP)
ASM X80
Задание. Вычесть элементы массивов как целые двоичные числа со знаком.Знак кодируется в старшем бите старшего байта.
Блин жесть, 1-го регистра не хватает чтобы реализовать задуманное.
D.E. - занято, адрес хранит первого массива
H.L - занято, адрес хранит второго массива
В - счетчик для массивов
А и С используются для преобразования двоично-десятичной системы в двоичную.
А больше регистров и нет.

Как работает программа:
Алгоритм следующий.
1) Мы заполняем массив ОЗУ стенда, адреса 0840, 0841, … , 0846 и адреса 0850, 0851, … , 0856. Сохраняем в регистры H.L, D.E, номера адресов 0840 и 0850 соответственно, выполняется это командой LXI H, 0840 и LXI D, 0850. Далее, командой STAX D, записываем в память содержимое регистра А, адрес записи находится в регистре D.E (0850). Также будем хранить в регистре В значение необходимых итераций, он будет способствовать прохождению по всем элементам массива. Далее, вызываем процедуру которая будет проходиться по ячейкам массива и “доставать” от туда значения этих ячеек. CALL ProcSub – вызов этой процедуры. В этой процедуре инкрементируем номера адресов (увеличиваем регистры D.E и H.L на 1) командами INX H, INX D. После чего, командой LDAX D, читаем ячейку памяти по адресу хранящемуся в регистре D.E, и записываем его в регистр А.
2) Надо преобразовать двоично-десятичную систему в двоичную, чтобы потом их вычесть.
И тут проблема начинается, у меня А и С используются для преобразования, а мне нужен отдельный регистр куда можно сохранить значение аккумулятора первого числа, потом сохранить в аккумулятор значение 2-го числа и отнять их...

Где можно получить ещё регистр? Или можно счетчик В куда-то в другое место запихнуть? Я просто не шарю за ассемблер
https://pastebin.com/HXgR13UX
Аноним 20/11/22 Вск 21:55:28 #49 №2518909 
>>2508067
Лол, уже решил давно, только заглянул, но спасибо
Аноним 20/11/22 Вск 21:55:45 #50 №2518910 
>>2508067
Лол, уже решил давно, только заглянул, но спасибо
Аноним 20/11/22 Вск 21:58:29 #51 №2518913 
>>2425757 (OP)
>x86
>x64
Зачем учить ненужные платформы, на которых ассемблер не используется?
Ассемблер - это либо современные микроконтроллеры, либо ретро игры с демосценой (Z80, 6502, Motorola 6800).
Аноним 20/11/22 Вск 22:01:13 #52 №2518917 
>>2518913
Чел, я вообще на х80 кодю, ебало представил?
Аноним 20/11/22 Вск 22:08:15 #53 №2518924 
>>2518913
Для реверса как вариант.
Аноним 20/11/22 Вск 22:15:58 #54 №2518930 
>>2518917
Так Intel 8080 это и есть ретро.
Там и компиляторов ЯВУ нормальных не завезли.
И нужно считать каждый байт и каждый такт процессора.
А вот для x86/x64 нет совершенно никакого смысла писать на ассемблере.
Тем, кто пишет для многоядерных процессоров - следует немедленно вызывать врачей и госпитализировать в Кащенку, такие люди опасны для общества.
Аноним 20/11/22 Вск 22:17:03 #55 №2518933 
>>2518924
В нулевых да. Сейчас большинство кода пишется не для x86.
Аноним 20/11/22 Вск 22:34:47 #56 №2518960 
>>2518905
в стеке инструкциями push и pop.
подсказали на другом форуме.
Аноним 20/11/22 Вск 23:19:41 #57 №2519017 
image.png
image.png
image.png
>>2518960
>>2518905
А почему при CALL, у меня указатель стека меняется?
и вообще че это за значения, как они влияют на работу программы?

Я короче написал PUSH PSW, у меня он перескачил на 1 адрес и почему-то значение 6 там указано, откуда оно вообще.
Как я понял при команде PUSH PSW мы в стек закинем значения двойного регистра A.F, бля а че за F, у меня его вообще нету лол
Аноним 21/11/22 Пнд 23:51:50 #58 №2519920 
>>2518933
Откуда инфа?
Аноним 28/11/22 Пнд 01:00:45 #59 №2525275 
Простите за тупой вопрос. Читаю про эти ваши ассемблеры и не пойму, стек - это просто выделенная область в оперативной памяти или что-то вроде регистра в процессоре?
Аноним 28/11/22 Пнд 12:54:30 #60 №2525511 
>>2525275
>стек - это просто выделенная область в оперативной памяти
Да. В общем случае под стэком понимается способ организации памяти.
Аноним 28/11/22 Пнд 13:51:20 #61 №2525540 
>>2525511
А кто занимается выделением и организацией памяти под стек? Программист или процессор? Когда я использую команду push ax, где конкретно сохраняется это значение регистра? Если в памяти, то по какому адрессу? Просто в учебниках это описывается как само себе разумеющееся: помещаем данные в стек, достаем из стека. А куда именно, я никак не пойму.
Аноним 28/11/22 Пнд 14:30:00 #62 №2525597 
>>2525540
>кто занимается
Ядро операционной системы, когда ставит программу на выполнение.

>push ax
Два действия в одном: сдвинуть вершину стека (изменив регистр с указателем) и записать по этому адресу значение из "ax".

>Если в памяти, то по какому адресу
Зависит от того, как называется регистр с указателем и куда увеличивается стек. И ещё от длины записываемого числа. Если это "bi" и стек увеличивается вниз, то "bi-4" на x86 или "bi-8" на AMD64.
Аноним 28/11/22 Пнд 14:47:06 #63 №2525622 
>>2525597
Жесть, конечно, с этими вашими регистрами и указателями. С трудом продираюсь. Все равно спасибо.
Вы поди смотрите на шестнадцатиричный код и уже представляете, что там происходит?
Аноним 28/11/22 Пнд 15:02:03 #64 №2525636 
>>2525622
Именно это может вылезти на микроконтроллерах, где нет никакой защиты и область стека способна испортить соседнюю область, когда станет очень большой. На обыкновенной пекарне такие "знания" бесполезны.
Аноним 28/11/22 Пнд 15:20:23 #65 №2525666 
>>2525540
>А кто занимается выделением

Для процесса/процессов - ОС. Сами процессы уже разбивают полученное стэковое пространство на фреймы для отдельных функций, если сочтётся необходимым. А вообще может зависеть от архитектуры, оси, реализации памяти итд

>и организацией памяти под стек?
На разных архитектурах по-разному. На х86 текущий стэковый фрейм определяется двумя стэковыми регистрами sp и bp, и одним сегментным регистром ss.
sp указывает на вершину стэка, bp - на базу стэка, ss - определяет сегмент памяти в котором стэк располагается но здесь уже всё несколько сложнее


>Когда я использую команду push ax, где конкретно сохраняется это значение регистра?

Содержимое ax копируется в 4 байта, нулевой байт из которых определяет регистром sp. После чего sp уменьшается на 4 (стэк растёт вниз). pop ax - ровно наоборот.
Аноним 28/11/22 Пнд 16:54:59 #66 №2525763 
>>2525275
Стек - дисциплина обслуживания такая. В ASMе стек необходим для организации прерываний ну и для удобства - для процедурных вызовов. В AMD64 на уровне ISA есть лишь регистр RSP и стековые команды, работающие с ним. И всё.

>Программист или процессор?
Чего? Для управления памятью в ISA имеется механизм пейджинга, в том числе некоторые привилегированные (RING0) команды. Таким образом, организация рабочих наборов приложения происходит через посредство ОС. Ещё на организацию памяти приложения может влиять рантайм конкретного ЯВУ (если есть).

>Когда я использую команду push ax, где конкретно сохраняется это значение регистра?
Ну так прочитай, как команда работает.
Вообще, чтение учебников не заменяет чтение спецификации ISA.

>стэковыми регистрами sp и bp,
В AMD64 RBP стал общего назначения а SS вообще не используется.
Аноним 28/11/22 Пнд 22:18:54 #67 №2526010 
Screenshot.png
>>2525763
>В AMD64 RBP стал общего назначения
bp и sp являются регистрами общего назначения, начиная с 8088
Аноним 29/11/22 Втр 20:58:02 #68 №2526802 
>>2526010
> sp общего назначения
> но только как указатель стека при возможных прерываниях и вызовах процедур
> но в книшке пишут РОН
Аноним 29/11/22 Втр 21:00:45 #69 №2526806 
>>2525622
> Вы поди смотрите на шестнадцатиричный код и уже представляете, что там происходит?
Если специально не задрачивать этот навык, то хекс останется хексом, даже когда 10 лет знаешь охрюнитектуру.
Аноним 29/11/22 Втр 21:07:26 #70 №2526811 
извини.jpg
>>2525666
>Содержимое ax копируется в 2 байта,

Фикс. В два байт, анон, так как ax шириной в 16 бит. Прости, что случайно мог запутать
Аноним 30/11/22 Срд 13:30:53 #71 №2527183 
>>2526811
Да норм. Размеры регистров - это самое легкое, что можно запомнить и понять. По крайней мере для 32 битной системы. До 64 я еще не дошел.
Аноним 30/11/22 Срд 15:55:53 #72 №2527303 
Тут есть кто-нибудь, кто в реверс инжиниринге шарит?
Аноним 01/12/22 Чтв 01:30:41 #73 №2527609 
Screenshot.png
>>2526802
И книшка права, так как стэк-поинтер это неявное назначение регистра
Аноним 02/12/22 Птн 00:34:35 #74 №2528500 
>>2526802
регистром общего назначения называют регистр, если с ним можно делать всякие штуки на ALU. Если ты можешь написать add sp, 3 или xor sp, 0x55 то он РОН. А то что у него есть доп фунции это другое. У всех регистров есть свои ништяки, вроде деления в DX/AX или косвенной адресации с индеском.
А вот add EIP, 3 ты не напишешь. Аналогично, сегментные регистры, CS, DS.
Аноним 02/12/22 Птн 00:35:40 #75 №2528502 
>>2528452
>если в один такт молотить один регистр, а не в 4 такта 4 регистра?
не забудь посчитать за сколько тактов ты будешь собирать 4 байта в 1 регистр.
Аноним 02/12/22 Птн 01:17:40 #76 №2528513 
1636039469023.png
Тряхнул стариной, написал бутлоадер, который дает вводить другую программу в хексах. Правда, потом прочитал что INC/DEC давно никто не пользуется потому что они сбрасывают конвеер данных или типа того.
Аноним 02/12/22 Птн 10:42:53 #77 №2528662 
>>2525622
nandgame - раздел с ассемблером, и ты поймешь вообще всё
Аноним 02/12/22 Птн 11:18:53 #78 №2528699 
>>2528513
>они сбрасывают конвеер данных
Интересно. Можно поподробнее?
Аноним 02/12/22 Птн 13:42:37 #79 №2528809 
>>2528662
Прикольная игрушка. Спасибо за наводку, анон!
Аноним 02/12/22 Птн 15:10:19 #80 №2528879 
>>2528699
Я особо не вчитывался, что-то про то, что ADD портит все флаги, а INC только часть, поэтому, получается парадокс, ADD не ждет выполнение других команд и процессор ставит его полностью параллельное выполнение, а INC вынужден ждать завершения предыдущих команд.
https://github.com/dotnet/runtime/issues/7697
Аноним 02/12/22 Птн 16:38:26 #81 №2528962 
>>2528879
Понятно. Но это другое. Про "конвеер данных" в X86-микроархитектурах никогда не слышал. Что это такое, вообще?
Аноним 02/12/22 Птн 16:50:58 #82 №2528974 
>>2528962
Я не особо эксперт в этом, вроде бы называется data dependency
https://stackoverflow.com/questions/61805438/observing-x86-register-dependencies
Аноним 02/12/22 Птн 16:59:03 #83 №2528984 
>>2528962
Я неправильно выразился, скорее всего конвеера данных нет, сбрасывается или стопорится конвеер команд, из за зависимости по данным, так будет яснее?
Аноним 02/12/22 Птн 18:20:30 #84 №2529055 
>>2528984
Да, стопорится пайплайн, pipeline.
Во всех руководствах называют этим словом, а не "конвейер".
Аноним 02/12/22 Птн 18:24:45 #85 №2529059 
>>2529055
Ок, я думал мы в байтоебском треде, а не смузихлебском.
Аноним 02/12/22 Птн 19:05:02 #86 №2529086 
>>2529059
ШТА?.. Ещё Лебедев так называл.

"Конвейер" добавили дедки-академики откуда-то с ВМиК МГУ, а потом кто-то из их студентов работал писакой в журнале "Мир ПК".

С тех пор у всех процессоров пайплайн, и только у модного Intel с новейшей Windows конвейер.

Причём только в этой стране, в других тоже пайплайн.
Аноним 03/12/22 Суб 03:16:00 #87 №2529354 
Screenshot20221202022634.jpg
>>2425757 (OP)
Сап, двач, а какую книгу надо выгуглить по актуальным архитектурам процессоров, чтобы понимать глубоко и полностью суть, как в этом видео, но подробно: https://youtu.be/XWZTHecUluM
И не просто теорию в целом, поверхностно, но глубже. К примеру, в видео говорят, что кэшируется память самостоятельно, а мне хочется понимать как именно "самостоятельно", что именно она кеширует, как выбирает, и кто за это в железе отвечает, не магия же.
Аноним 03/12/22 Суб 06:18:06 #88 №2529372 
>>2529086
>, в других тоже пайплайн.
Кому ты пиздишь
https://es.m.wikipedia.org/wiki/Segmentaci%C3%B3n_de_instrucciones
https://pl.m.wikipedia.org/wiki/Potokowo%C5%9B%C4%87
https://fi.m.wikipedia.org/wiki/K%C3%A4skykannan_liukuhihna
https://tr.m.wikipedia.org/wiki/Boru_hatt%C4%B1_(bilgisayar)
Аноним 03/12/22 Суб 07:35:22 #89 №2529392 
>>2529086
Анонче, у меня нет с этим проблем. Если у вас принято называть по хипстерски, могу называть по хипстерски. У меня опен майнд, ноу кринж ресивед.
Аноним 03/12/22 Суб 07:36:30 #90 №2529393 
>>2529392
Хотя наверное правильнее говорить - зиро криндж гайнед.
Аноним 04/12/22 Вск 14:55:46 #91 №2530537 
Безымянный.png
Не понимат
Аноним 04/12/22 Вск 15:24:59 #92 №2530559 
>>2530537
Используешь дорогие компоненты, можно более дешёвые.
Аноним 04/12/22 Вск 15:52:57 #93 №2530583 
>>2530559
Вопрос не в стоимости же, а в количестве. Как из количества вентилей меньше трех собрать схему И-НЕ?
Аноним 04/12/22 Вск 15:56:22 #94 №2530590 
Безымянный.png
О, доперло!
Аноним 05/12/22 Пнд 14:34:11 #95 №2531471 
>>2529392 >>2529393
Ну ежели тебе так уж прям надо называть ето по-нашенскому, называй совмещение стадий выполнения.

Т.е. вот у тебя команды, у них стадии выполнения, процессор их совмещает, сдвигая одну поверх другой.
Аноним 07/12/22 Срд 22:57:08 #96 №2534485 
Читал Прата программирование на с++ он там представил эмуляцию стека. Но я чёто догадываюсь и нахожу поверхностные упоминания что стек в ассемблере сделан по другому. Может быть там в процессорах есть какие-то регистры стека? Задействую ли я стек программируя на языке высокого уровня?
Аноним 07/12/22 Срд 23:31:13 #97 №2534509 
>>2534485
Стандарты c/c++ практически никак не коррелируют с устройством процессора, они описывают язык.
Ну а компилятор, естественно, создает такой код, который использует аппаратный стек.
Если упрощенно, то стек это кусок памяти, а какой-то регистр указывает на конретное место в ней, и некоторые команды, типа push, pop, call, ret, пихают данные и двигают этот указатель.
В первую очередь это происходит при вызовах функций, они как матрешки.
Конечно ты можешь написать и свою "симуляцию стека", то есть видимо там речь просто про массив со счетчиком или указатель.
Аноним 08/12/22 Чтв 00:20:32 #98 №2534552 
>>2534485
Если такой тупой и сам не понимаешь, читай про ассемблер сначала, а с++ оставь на потом, иначе дерьмо в башке получится.
Аноним 11/12/22 Вск 11:02:09 #99 №2537905 
>>2534509
>то стек это кусок памяти
вот то что я хотел знать. Стэк храниться в оперативке а SP например хранит ссылку туда. Ато ж вон пишут что у процов есть регистры и кэши и типа там самая быстрая память
Аноним 11/12/22 Вск 11:12:04 #100 №2537909 
>>2537905
> Стэк храниться в оперативке а SP например хранит ссылку туда.
Да.
> у процов есть регистры
Это касается больше математики и подобного, когда регистр с регистром складывать быстрее чем регистр с переменной в памяти.
>кэши
До них вообще не достучаться наверное (точно не помню), он как бы сам по себе работает в фоновом режиме
Аноним 11/12/22 Вск 15:07:11 #101 №2538118 
>>2537909
>Это касается больше математики и подобного
Это касается всего: любые операции над данными происходят в регистрах, а сами данные туда сначала должны быть загружены, а потом записаны в память при необходимости.

Хотя я не исключаю что на на x86 могут быть всякие убер-команды работающие сразу с памятью - я только ARMы ебу, да иногда еще SuperH, лет 5 назад плотно работал с MIPS.

>До них вообще не достучаться наверное (точно не помню), он как бы сам по себе работает в фоновом режиме
Не совсем: можно сделать данным prefetch, чтобы они были загружены в кэш еще до того как понадобятся. Так же на том где я работаю есть блокировка кэш-лайнов, чтобы данные находящиеся в них не вытеснялись другими данными. Это позволяет делать даже такие весёлые штуки, как работа CPU с DRAM переведённым в self-refresh mode ебля та ещё, но поллить gpio в low power режиме вполне можно.
Аноним 11/12/22 Вск 20:55:43 #102 №2538568 
хочу чтобы этот
https://greasyfork.org/en/scripts/432014-digdig-io-x-ray/code

Скрипт заработал, точнее, снять детект модификации кода (а он есть). Чо делоть?

Я ленивый питонист и не вникну без вводных. Точнее, не знаю, могу ли вникнуть.
Прежде всего ето васм, а его олькой не подебажишь. Или можно?
Аноним 16/12/22 Птн 17:34:00 #103 №2543231 
>>2425757 (OP)
>Assembly Language Step-By-Step
Весьма заходит эта книга. Но почему до сих пор нет перевода на русский? С одной стороны, конечно, полезно подтянуть английский. Но, с другой стороны, очень медленное чтение, хочется быстрее проглотить эту мням-нямку.
Аноним 01/01/23 Вск 03:30:34 #104 №2559818 
Здравствуйте, программисты. Я не программист. И вопрос даже не о языке ассемблера как таковом. Просто вопрос связан с довольно низкоуровневой штукой, и я решил, что именно тут могут сидеть достаточно компетентные нерды.
Можно ли чисто в теории сконвертировать скомпилированную 32-битную программу в 64-битную? То есть, проанализировать её машинный код, и выдать программу, делающую аналогичные по сути вещи, но являющуюся 64-битной. Что примерно нужно сделать, если это возможно в принципе?
Контекст вопроса: возможность запустить старую программу на новой версии мак ос, в которой не работают 32-битные программы вообще.
Заранее спасибо за ответ.
Аноним 01/01/23 Вск 05:07:07 #105 №2559835 
>>2559818
декомпилируешь и переводишь на 64 битную основу. Можно воспользоваться анализатором какие компоненты нужно скорректировать
https://habr.com/ru/company/pvs-studio/blog/471596/
Аноним 01/01/23 Вск 11:15:56 #106 №2559899 
>>2559818
Нельзя, можно разве что зареверсить и написать такую же свою.
Аноним 03/01/23 Втр 14:42:47 #107 №2561718 
С чево изучать асемблерр? хочу вкатиться в ассемблер!
Welcome to IDA 8.2! Аноним 05/01/23 Чтв 19:08:34 #108 №2564023 
image.png
image.png
image.png
image.png
Full list of changes and new features:
IDA Teams and Lumina

lumina: added support for recent MySQL versions which default to TLS connection
teams: the password for Vault is now saved securely in the OS-specific keychain
vault/lumina: allow any local MAC address to match the one specified in .lic file

Procesor modules

XTENSA: added support for many additional instructions, registers, stack variables (thanks to Zak Escano)
XTENSA: added support for many standard switch patterns (thanks to Zak Escano)
XTENSA: detect used ABI (CALL0 or windowed)
RISC-V: added support for vector extension instructions
TRICORE: decode FTOHP and HPTOF instructions from TC1.6.2

File formats

macho: added USE_SEG_PREFIXES option to macho.cfg, which instructs IDA to use the Mach-O segment name as a prefix for IDA segment names, e.g. "__TEXT:__text"

FLIRT / TILS / IDS

FLIRT: added signatures for vc1434 (Visual Studio 16.11)
FLIRT: added MFC signatures for vc1434 (Visual Studio 16.11)
FLIRT: added signatures for icl 222 (Intel C++ 2021.2)
FLIRT: added signatures for icl 2221 (Intel C++ 2021.2.1)
TIL: added a type library for Aarch64 (ARM64) UEFI 2.5
idaclang: added "--idaclang-mangle-format" switch. it works similarly to the -G option for tilib when the user wants to set a custom name mangling format

Standard plugins

PDB: on Windows, enabled fallback mode by default so that MSDIA is used to load legacy PDB files
picture_search: new plugin for finding and displaying raster images embedded in the binary
svdimport: added support for cluster, derivedFrom and dim/dimIncrement peripheral attributes
svdimport: use a folder-based tree for the plugin's UI
swift: parse and format Swift metadata
swift: import simple types (enums, structs) into Local Types

Kernel

kernel: added a new flag REFINFO_SELFREF for offsets (base is equal to the address of the current element)

Scripting & SDK

IDAPython: expose the C++ SDK's processor_t (as ida_idp._processor_t)
SDK: added capture_process_output() to capture output of an external program;
SDK: added support for lazy-loaded dirtree choosers. CH2_LAZY_LOADED flag can be used with dirtree-based choosers to load contents of a directory when it's expanded.
SDK: deprecated qerrcode() (errno can be accessed directly instead)

UI

UI: added an easy way to take memory snapshot of current segment
UI: improved highlighting of matching registers on platforms which use various prefixes (e.g. @r1)
UI: in the disassembly, addresses in the line prefixes of structure or array members now increase with those members' offsets.
UI: it is now possible to attribute an image as background to the listings (IDA View, Pseudocode, ...) using CSS in themes
UI: jumping to an address in the middle of a struct or an array now positions cursor on the correct line of the disassembly listing
UI: the "Wait" dialog now only shows after a certain timeout (thereby reducing the number of interfering popping dialogs)

Decompilers

decompiler: added an action to jump to a new pseudocode windows with 'alt+enter' shortcut
decompiler: enabled decompiling of 32-bit files in IDA64 if a corresponding 32-bit decompiler license is available

Bugfixes

BUGFIX: arm: "set callee" (Alt-F11) failed to create cross-references for BLR instructions
BUGFIX: alpha: 'lda' instructions could cause wrong sized stack variables to be created
BUGFIX: DWARF: Debug information present in .dwz companion files (pointed to by .gnu_debugaltlink) would be skipped when the link is absolute
BUGFIX: FLAIR: The pelf utility could crash when used with incorrect 'pelf.rtb' files
BUGFIX: IDA could crash if an array typedef was replaced by a structure of the same size
BUGFIX: IDA could fail to detect dyld (and any loaded modules) after attaching to a process on macOS 13.
BUGFIX: IDA could fail to parse Objective-C method data during debugging.
BUGFIX: IDAPython: cfunc_t.arguments array could have function arguments in wrong order
BUGFIX: IDAPython: documentation for ida_kernwin.Choose callbacks was missing
BUGFIX: IDAPython: get_reg_vals() was not usable
BUGFIX: IDAPython: using values in the range [128,255) as 'tag' for ida_netnode functions, would fail
BUGFIX: ios_deploy "symbols" phase would fail on iOS 14-16.
BUGFIX: lumina: private lumina server could fail starting with certain MySQL setups, due to case sensitivity in INFORMATION_SCHEMA.COLUMNS fields
BUGFIX: PC: callee target was not printed for some call instructions
BUGFIX: svdimport: fixed problem with odd (+1) start addresses in segments
BUGFIX: ui/qt: IDA could crash when passed the wrong widget to ida_kernwin.get_highlight()
BUGFIX: ui: "size" expressions in 'Structure offset' context menu differed from 'T' hotkey
BUGFIX: ui: exporting data from hex view with non-default item width could produce wrong output
BUGFIX: UI: IDA on Windows would hang if the accessibilty option "Use text cursor indicator" was enabled
BUGFIX: ui: improvements for accessibility under Windows for "Text Cursor Indicator" on "Output" widget
BUGFIX: vault: 'hv purge' command was not usable
BUGFIX: xtensa: write acccesses for stack variables were not shown properly

---
https://hex-rays.com/products/ida/news/8_2/
https://hex-rays.com/products/ida/news/8_2/
https://hex-rays.com/products/ida/news/8_2/
Аноним 07/01/23 Суб 12:28:01 #109 №2565525 
Написали что-нибудь?
Аноним 07/01/23 Суб 12:37:20 #110 №2565531 DELETED
>>2564023
>Welcome to IDA 8.2
На хуй это платное говно нужно?
Аноним 15/01/23 Вск 15:01:11 #111 №2574634 
Блядь какая же лютая дичь этот ваш ассемблер. Сраный цикл написать надо танцы с бубнами на 10 минут. Наверное только познав дзен можно писать на ассемблере.
Аноним 15/01/23 Вск 21:18:23 #112 №2575119 
>>2574634
10 минут это ты быстро. Я по пол дня думаю.
Аноним 18/01/23 Срд 13:43:39 #113 №2578290 
Правильно ли я понимаю аналогию понятий?
OFFSET - это мое нахождение, например, на 10 этаже здания. То есть - 10. А DISPLACEMENT - это на сколько этажей я туда-сюда опускаю и поднимаю веревку с грузом, например, до 8 этажа, значит - 2. Так?
Аноним 18/01/23 Срд 14:59:57 #114 №2578358 
>>2578290
А где ты эти понятия нашел? Выглядят как синонимы - ведь OFFSET это тоже относительно чего-то.
Аноним 18/01/23 Срд 15:45:21 #115 №2578401 
Почему загрузка ОС в 16 битном режиме до сих пор происходит? Я понимаю, легаси, все такое, но неужели нельзя уже отбросить это и запускаться в 32 битном режиме? Или просто нахуй не надо?
Аноним 18/01/23 Срд 16:49:24 #116 №2578496 
>>2578358
>А где ты эти понятия нашел?
В книге топикстартера. В контексте адресации памяти.
Аноним 18/01/23 Срд 17:17:33 #117 №2578571 
>>2578496
Disaplacement - это часть адресации в команде, а offset - скорее всего доисторическая отсылка к segment:offset, которая емнип не нужна ни в 64 битном, ни в каком-нибудь real или flat memory model.
Но как я сказал, концептуально это синонимы. Offset - относительно Base. Например, BIOS загружает с диска загрузчик в память на адрес 0x7с00. Это может быть как 0000:7c00, так и 07c0:0000, и разных других комбинациях. Поскольку addr = segment x 16 + offset.
Имхо никакие такие аналогии с этажами вообще не нужны. Это же просто формулы сложения, где некоторых членов может не быть.
Например, [esi + ebp * 4 + 9] это [BASE + INDEX × SCALE + DISPLACEMENT]. Ну и что это будет за аналогия? Лифт в небоскребе, который установлен на 9 этаже, ходит через каждые 4 этажа, и при этом стартует с esi?
Аноним 18/01/23 Срд 17:27:59 #118 №2578608 
>>2578571
Да, спасибо, анон. Далее в книге автор так и сказал, не заморачивайтесь с названиями.
Аноним 18/01/23 Срд 17:33:11 #119 №2578629 
>>2564023
Торрент дай или иди нахуй
Аноним 18/01/23 Срд 19:59:38 #120 №2578879 
Мертвый тред мертвого языка
Аноним 20/01/23 Птн 01:18:23 #121 №2580264 
binary-code-teens-titans-go.mp4
бампану шакалами
Аноним 20/01/23 Птн 01:46:47 #122 №2580275 
1622888108002.mp4
>>2580264
Аноним 25/01/23 Срд 13:17:27 #123 №2586518 
А что за мудаки сидят на crackmes.one и проверяют решения? По какому принципу решение другого мудака, который написал брутфорс-скрипт на питоне, который тупо числа перебирает в терминал, пока не угадает, приняли, а моё, выдающее точный результат, нет? Им ещё буковы надо написать какие-то, объяснить, как я пришёл к решению? Что за хуета?
Аноним 25/01/23 Срд 17:42:45 #124 №2586876 
>>2586518
Ладно, что-то я сильно на негативных эмоциях был и зазря обосрал хороших людей с хорошим проектом. Даже стыдно. Просто концепция сайта, видимо, предполагает, что опубликованные решения должны быть более подробны и полезны для других обучающихся. Но при этом сайту очень не хватает нормальной обратной связи по этой самой "подробности".
Аноним 25/01/23 Срд 19:09:16 #125 №2587046 
>>2565531
>На хуй это платное говно нужно?
В бесплатную х64 версию декомпилер добавили онлайновый, кушай не обляпайся
>>2578629
Воровать плохо, пнятненько?
Аноним 25/01/23 Срд 20:04:05 #126 №2587116 
kot103128670orig.jpg
>>2586518
Эх, я когда-то отсылал свои солюшены на ныне несуществующие сайты.
васм.ру, мс-рем, были времена. Даже писал на фрилансе драйвер-фильтры на асме. И кто-то даже этим пользовался.
Сейчас зарабатываю шекели на скриптоте и хочу вкатиться в 8080 и з80. В детстве не хватало мозгов и литературы, а формального образования по теме я не получил.
Аноним 26/01/23 Чтв 08:58:08 #127 №2587534 
>>2467575
йоу, а можно по-подробнее? меня чёт этот факт зацепил.
Аноним 26/01/23 Чтв 17:50:28 #128 №2588295 
У ФПУ стак же больше, чем 8 ST регистров? Сколько в таком случае?
Аноним 26/01/23 Чтв 19:24:41 #129 №2588461 
>>2588295
>стак же больше, чем 8
Почему ты так решил?
Аноним 26/01/23 Чтв 19:45:02 #130 №2588484 
>>2588461
Ковырялся в чит енжине и заметил, что когда инструкция грузит число в ФПУ стек, то регистры съезжают вниз и ST(6) переезжает в ST(7), но когда позже инструкция выгружает число, то регистры съезжают вверх и ST(7) переезжает в ST(6), но ST(7) показывает то же число, что и было до пуша.
Хотя в ST(0) грузилось то же число, что и было в ST(7), может оно переехало туда после попа.
Ну и в регистрах всегда какие-то числа есть, но оно не ругается, если загрузить еще одно и тем самым переполнить стек.
ебать там тему вскрыли Аноним 27/01/23 Птн 14:38:00 #131 №2589476 
It appears that Intel doesn't guarantee constant-time execution of _any_
instructions on Ice Lake or later unless a configuration bit is set:
https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/best-practices/data-operand-independent-timing-isa-guidance.html

Ice Lake was released in 2019 but this information is only a few months
old. So hopefully multiplication etc actually is always constant-time on
existing chips and this is just preparing for the future?

I guess the steady state is that every OS sets this DOITM bit all the
time, but Intel get to publish benchmarks based on variable-time
instructions and claim that they're using the default configuration?


Reading between the lines, I think this is a vulnerability and
mitigations disclosure for 6th to 12th gen (fixed in 13th?), disguised
as a feature. They discovered that "data values may delay instruction
retirement by, at most, one cycle" for vector multiplication and bit
count.
Аноним 30/01/23 Пнд 17:34:12 #132 №2593561 
image.png
>>2587116
Аноним 08/02/23 Срд 17:24:47 #133 №2603731 
Где найти insight для 32-битной убунты, который используется в книге Дантмана. Я нашел только для 64-битной системы и там таки да, работает, а в 32-битной не хочет.
Аноним 09/02/23 Чтв 02:39:21 #134 №2604244 
image.png
Алло, это обратной разработки тред? Вопросы по этой теме есть смысл задавать?
Аноним 09/02/23 Чтв 11:47:04 #135 №2604466 
>>2604244
Если у тебя есть вопросы,то пиздуй дальше учиться.
Аноним 09/02/23 Чтв 12:35:50 #136 №2604556 
>>2604466
От двачей иного и не ждал.
Аноним 09/02/23 Чтв 13:00:47 #137 №2604582 
>>2603731
Впрочем, не надо. Разобрался, как играться и в 64-битной убунте. Оказывается, всего-то надо было установить дополнительные библиотеки gcc, чтобы он не ругался и мог компиллировать 32-битный код.
Аноним 10/02/23 Птн 02:20:24 #138 №2605486 
>>2604244
Безопасно ли изменять значения флагов и регистров в вызываемой функции? Например, бывает ли такое, что код пишет какой-нибудь адрес в ЕСХ, вызывает функцию и позже читает этот адрес из ЕСХ?
Аноним 11/02/23 Суб 15:11:44 #139 №2607396 
>>2605486
Если тебя это беспокоит, сохрани их сначала, а потом восстанови.
В целом то о чем ты спрашиваешь называется calling convention и ABI. Есть документация, где сказано какие регистры сохраняются вызываемым (callee), какие должен сохранять вызывающий сам (caller)
https://learn.microsoft.com/en-us/cpp/build/x64-software-conventions?view=msvc-170
https://stackoverflow.com/questions/18024672/what-registers-are-preserved-through-a-linux-x86-64-function-call
Аноним 11/02/23 Суб 22:08:41 #140 №2607884 
>>2607396
Я не знаю, может ли быть такое, что компилятор может не учесть calling convention и не сохранить non-volatile регистры в callee. Например, потому что цепочка callee использует non-volatile регистры в качестве временных и компилятор решил сохранить этот регистр в caller или еще выше, чтобы не раздувать про и эпилоги лишними push и pop.
Аноним 20/02/23 Пнд 17:16:40 #141 №2617848 
>>2543231
Уфф, наконец-то я осилил эту замечательную во всех отношениях книгу. Со словарем и с убунтой на виртуалке. Посоветуй, мудрый анон, что еще почитать по этой теме. Склоняюсь больше к реверс-инженерингу. Научиться читать код ассемблера.
Аноним 27/02/23 Пнд 16:20:07 #142 №2624644 
>>2425757 (OP)
Может глупые вопросы, но спросить стоит.
Начал недавно изучать асм, x86-64, естестественно комп многоядерный.

При разработке в отладчике sasm видно только один набор регистров, тут и пошли непонятки:
1. Это регистры данного контекста или на вс ядра идёт один набор регистров?
2. Являются ли fasm, masm "высокоуровневыми" ассемблерами? Такой вывод опять же делаю из п1. При входе в программу нужно сохранить стек. А значит нужно не мешать пугис программам.
3. Можно ли создать поток на втором процессоре, на котором я захочу? Или об этом заботится ОС?
Аноним 27/02/23 Пнд 16:21:19 #143 №2624647 
>>2624644
>пугис
*Другим
Аноним 28/02/23 Втр 05:13:01 #144 №2625283 
>>2624644
1. Контекст треда - это набор значений в регистрах. В отладчике ты видишь контекст каждого треда приложения в момент останова. Их просмотр можно свободно переключать в отладчике.
Конкретный же набор регистров закреплён за хардварным тредом (Интел их называет гипертредами), а не за ядром.

2.
>"высокоуровневыми" ассемблерами?
Что ты под этим понимаешь?

>При входе в программу нужно сохранить стек. А значит нужно не мешать пугис программам.
Ничего не понятно. Как "сохранить стек"? Зачем?

3. Тредов (которые можно "создавать") в процессоре нет. Это понятие уровня ОСи. После включения процессорное ядро просто работает - исполняют инструкции, либо остановлено в idle.
В WinAPI на назначение треда на ядра можно повлиять лишь через thread affinity и/или указать предпочтительное ядро. В остальном ОС (пере)планирует треды на любые доступные ядра.
Аноним 28/02/23 Втр 18:07:09 #145 №2626016 
>>2425757 (OP)
Современный ассамблер нельзя назвать низкоуровневым языком?
Аноним 28/02/23 Втр 19:01:50 #146 №2626097 
1575751941835.png
>>2626016
Ассемблер можно, макроассемблер - уже ближе к Си. Так всегда было.
Можно сказать, что разделение проходит по линии - если одна мнемоника в одну машинную инструкцию, то низкоуровневый.
(Алсо можно доебаться, что в обычном ассемблере MOV может развернуться в совсем разные машинные инструкции, в зависимости от операндов)
А вот если появляется генерация кода, например прологи-эпилоги функций, то уже не очень низкоуровнево. Но все еще нет неявной генерации кода.

Вот такой пример, скажем, еще относится к низкоуровневым? Тут на уровне директив идет цикл
.set counter,0
.rept 10
str r0,[r1,#counter]
.set counter,counter+8
.endr

Который разворачивается в
str r0,[r1,0]
str r0,[r1,8]
str r0,[r1,16]
...
Аноним 01/03/23 Срд 10:09:50 #147 №2626517 
>>2626097
Просто слышу в разных местах, что современные процы работают со своим внутренними компиляторами, типа сейчас понятие низкоуровневый язык потерял смысл.
https://habr.com/ru/company/badoo/blog/420407/#comment_19013005
https://habr.com/ru/company/badoo/blog/420407/comments/#comment_19015301
https://habr.com/ru/company/badoo/blog/420407/comments/#comment_19013289
Аноним 01/03/23 Срд 15:13:40 #148 №2626693 
>>2626517
Когда говорят про высокоуровневый/низкоуровневый, имеют в виду, что:
a+b в C++ может развернуться в вызов переопределенной функции a.add(b), где может быть вообще в базу данных лезут по сети;
array.map(x => x * 2).filter(x => x % 10 == 0) создаст на самом деле циклы for_each(e : array) callback(e ...)
str = "abc" + "def" неявно выделит память.
Даже в Си, если написать a = 3; b = 4; компилятор может переставить местами b = 4; a = 3;
Ассемблер так делать не будет. Там как написал, так и выдаст.
Это то, что касается генерации кода.

Дальше, то как он уже выполняется на процессоре, это дело другое. Процессор уже тоже может без спроса переставить a = 3; b = 4 даже если ассемблер не переставлял.
Также, там вообще другой набор регистров, и происходит переименование регистров. Если ты пишешь MOV BX, 3 на самом деле ему дадут первый свободный регистр, например пятый, и временно дадут ему псевдоним BX.
Еще уже много лет есть конвееры, например на каком то пентиуме перестановка инструкций в цикле давала прирост, потому что в одном случае они могли выполняться параллельно 3 такта, а в другом одна ждала другую и получалось 2+3 такта. А еще расставляют всякие мемори барьеры.
Туда же предсказатели переходов, которые собирают статистику для if / JEQ команд и пытаются угадать, будет переход или нет. Значит, переставив местами условие a > b на a <= b, можно получить прирост.

Подытоживая:
Ассемблер/Си низкоуровневый, потому что мнемоники превратятся в инструкции один в один, без перестановок и оптимизаций.
Ассемблер/Си высокоуровневый (относительно какого-нибудь микрокода процессора), потому что как и в высокоуровневых языках, тебе придется перетасовывать команды местами, чтобы внутри процессора неявные команды встали так, как тебе надо, а прямого контроля над ними у тебя нет.
Ассемблер/Си низкоуровневый, потому что я например пишу под старый 8 битный проц и там ничего не поменяется уже никогда.
Ассемблер/Си низкоуровневый, потому что ручками надо писать больше, чем в высокоуровневых языках.
Надеюсь, немного прояснил.
Аноним 01/03/23 Срд 19:35:45 #149 №2626934 
>>2626693
> Даже в Си, если написать a = 3; b = 4; компилятор может переставить местами b = 4; a = 3;
> Ассемблер так делать не будет. Там как написал, так и выдаст.
Ассемблер mips может и переставить.
Аноним 06/03/23 Пнд 20:34:27 #150 №2631936 
Возможно ли заставить работать кэш процессора как виртуальный жесткий диск?
Аноним 07/03/23 Втр 00:57:34 #151 №2632206 
>>2625283
>сохранить стек
может он про пролог/эпилог функций с сохранение/восстановлением содержимого регистров в/из памяти?
Аноним 07/03/23 Втр 02:13:09 #152 №2632227 
>>2625283
Может он про многозадачность?
Аноним 12/03/23 Вск 15:00:28 #153 №2637882 
Из книги Столярова узнал, что когда программа на линуксе(или не только на нем?) запускается, то в esp лежит argc, а в [esp+4*n] лежит argv[n]
Вопрос к уважаемым знатокам, где в интернете об этом написано? Какая документация мне нужна, чтоб это прочитать?
Пытался гуглить "the contents of the stack when the program starts" и прочее, но гугл всегда предлагал какой-то кал
Аноним 14/03/23 Втр 15:38:00 #154 №2639903 
Что скажете про книгу Reverse Engineering for Beginners book Юричева? Сложная?
Аноним 14/03/23 Втр 20:22:49 #155 №2640269 
>>2637882
Доки по устройству конкретной ОС? В крайнем случае исходники или реверс.
Аноним 14/03/23 Втр 20:29:17 #156 №2640275 
1621889122462.png
>>2637882
Вот такой документ нашел:
https://refspecs.linuxbase.org/elf/x86_64-abi-0.99.pdf
И
https://stackoverflow.com/questions/9147455/what-is-the-default-register-state-when-program-launches-asm-linux

Алсо, думаю что
> в esp лежит argc, а в [esp+4*n] лежит argv[n]
Логически вытекает из того, что это аргументы main(argc, argv[])
Аноним 16/03/23 Чтв 16:32:46 #157 №2642180 
>>2639903
Я сейчас после прочтения книги Дантмана открыл эту и прифигел: это называется для бегиннеров? Это какая-то каша данных про всевозможные процессоры.
Прочту по диагонали, что-нибудь отложится в памяти, потом вернусь после прочтения других книг.
Аноним 16/03/23 Чтв 19:22:41 #158 №2642367 
У кого-то есть полсденяя версия книги Юричева по реверсу? Можете выложить?
Аноним 17/03/23 Птн 23:31:26 #159 №2643710 DELETED
Аноны, никогда не думала, что до такого дойдёт, но... прочитайте пожалуйста

заболел мой котик... Зовут Гоша. cаркoма жeлудка, три нeдeли назад oбнаружили..

cама я cтудeнтка, eщё нe рабoтаю, пoчти нифига нe имeю, а тo, чтo имeла, ужe прoдала - cмартфoн, нeкoтoрую oдeжду, кoмплeктующиe oт пк, кoтoрыe xoть чeгo-тo cтoили. так жe влeзла в дoлги. пыталась в микрoзаймы или крeдиты - ничего нe дают из-за oтcутcтвия рабoты. рoдитeлeй нeт, тoлькo бабушка, кoтoрая пoчти вcю пeнcию на ceбя тратит - лeкарcтва, eда, кoммуналка. в oбщeм, нe пoмoщница..

так же пара друзей немного дозаняла.

в общем, кое-как наcкребла 16 400. на oпeрацию нужнo 18, eщё чертовы 1600 нe xватаeт. а oпeрация на послезавтра назначeна блин...

умoляю, анончики, пoмoгитe пoжалуйcта xoтя бы рублём.
Номер карты я на фото напишу, чтобы в бан сразу не попасть..

я дoгадываюcь, чтo нeкoтoрыe прeдлoжат забить на кoтoфeя - не могу, ребят... Гoша co мнoй ужe пoлжизни, этo cамoe дoрoгoe cущecтвo для мeня. и ceйчаc, cмoтря, как oн мучаeтcя, xoчeтcя нафиг вcкрытьcя.. Пожалуйста, помогите, я не знаю, что делать... .
Аноним 21/03/23 Втр 14:24:13 #160 №2647560 
>>2425757 (OP)
Есть одна древняя игра и отвязка от диска к ней. Носиди состоит из хакнутых екзешника и длл. Есть другая версия длл, которая добавляет в игру очень полезную функцию, но она не отвязана от диска. Тут есть кулхацкер, который сможет адаптировать носиди для этой длл?
Аноним 28/03/23 Втр 19:52:26 #161 №2655547 
Если бы вам всё таки выпала доля коечто накалякать на асме под прыщи, что бы выбрали - gas или nasm?
Аноним 28/03/23 Втр 21:23:16 #162 №2655617 
>>2655547
Конечно Gas, причем непременно AT синтаксис.
Чтобы все офигели от того как я могу.
Аноним 29/03/23 Срд 14:44:25 #163 №2656159 
>>2655547
>>на асме под прыщи
>>прыщи
а прыщи в данном случае это что?
мимо недавно вкатившийся
Аноним 29/03/23 Срд 16:40:36 #164 №2656344 
>>2656159
http://web.archive.org/web/20110926082851/http://lurkmore.ru/%D0%9F%D1%80%D1%8B%D1%89%D0%B5%D0%B1%D0%BB%D1%8F%D0%B4%D1%8C
Аноним 29/03/23 Срд 17:46:36 #165 №2656466 
>>2655547
yasm
Аноним 31/03/23 Птн 02:55:21 #166 №2657891 
>>2656466
хотя нет, я передумал, fasm
Выбор книги. Кот_в_Шляпе 31/03/23 Птн 14:18:30 #167 №2658219 
изображение.png
скрин.jpg
изображение.png
Аноны, я знаю что в шапке закреплены книги, но всё же...
Если бы одна из этих книг по ассемблеру была для вас первой, то какая и почему?

Мне куда интереснее изучать и писать системщину под Шиндовс, но я понимаю что правильнее будет начать с левой книги, м.б. я ошибаюсь.
Выбор книги (дополнение). Кот_в_Шляпе 31/03/23 Птн 14:20:14 #168 №2658225 
Забыл добавить, что та которая слева относится к среде Linux та которая справа - Windows.
Аноним 31/03/23 Птн 21:22:22 #169 №2658781 
>>2658219
Да нет сейчас идеальных книг по асму хотя пожалуй никогда не было Читай все подряд.
Аноним 31/03/23 Птн 23:16:11 #170 №2658863 
>>2658781
Ну ладненько, спасибо анон.
Аноним 01/04/23 Суб 01:21:28 #171 №2658922 
>>2658225
>>2658219
Разница между линем и виндой только в том как ты будешь работать с системными вызовами. Сам ассемблер по сути везде одинаковый.
На лине вызовы действительно выглядят проще, на винде сложнее. Но это не имеет отношения к самому асму.
Аноним 01/04/23 Суб 15:38:33 #172 №2659344 
>>2658922
Ты про системное низкоуровневые/высокоуровневые API ?

Я изначально писал (и пишу на сишке) в среде Windows, даже написал один небольшой kernel-драйвер, но мне очень не хватает знаний асма для реверса и более глубокого понимания архитектуры ОС и процессоров, поэтому очень приглянулась две эти книги, скорее всего я прочту обе, но начну с линя.
Аноним 02/04/23 Вск 04:02:33 #173 №2660159 
>>2659344
Таненбаума читал - Архитектура Компьютера, Современные операционные системы? Ну или что-то подобное.
Аноним 04/04/23 Втр 15:52:32 #174 №2662557 
Нахуя пол треда сидит с асмом под 16и битные интелы? Вы чё ебанутые эту некроту дрочить? Если вам для истории, то лучше бы вакс или pdp-11 учили, ей богу.
мимо амд64 насмобог
Аноним 04/04/23 Втр 15:54:56 #175 №2662561 
>>2658922
На сперме сисколы сами по себе вообще не задуманы для использования конечным программистом, для этого есть ntdll. Только линукс, из современных систем, предоставляет сисколы как средство для написания кода, а не библиотеки.
Аноним 05/04/23 Срд 22:03:05 #176 №2663706 
аноны, если есть, и если можете, скиньте roadmap по реверсу или материалов для изучения этой области, пожалуйста.
Аноним 06/04/23 Чтв 10:09:05 #177 №2663935 
>>2663706
wasm.in, cracklab.team
Аноним 06/04/23 Чтв 13:49:07 #178 №2664094 
>>2663935
благодарю!
Аноним 06/04/23 Чтв 21:34:51 #179 №2664578 
>>2662557
Так проще въехать в логику ассемблерного стиля программирования.
Чтобы перейти потом на 64 достаточно доучить регистры и WinAPI
Аноним 07/04/23 Птн 03:13:47 #180 №2664715 
>>2664578
А почему нельзя начать с 32х битного режима? Чому надо обязательно 16?
мимо другой антон
Аноним 07/04/23 Птн 03:14:42 #181 №2664716 
>>2664578
Как это связано с логикой? Может тогда с 8битного начать?
Нет, меня реально заинтересовал этот казус
Аноним 07/04/23 Птн 11:40:26 #182 №2664792 
>>2664715
>А почему нельзя начать с 32х битного режима?
Да никто не говорит что нельзя. Просто некоторым анонам проще изучать основы на старых 16 битах потому что там меньше заморочек. На старых системах можно например отрыть дебагер и вводить команды в 16-ричных кодах, сейчас так не получится.
>>2664716
При очень большом желании можно и с 8-битного, но на 8 битах не было еще полноценных операционных систем и не было нормальной литературы по вкату.
Изучение логики работы с циклами, функциями, данными на любом асме даст тебе понимание как кодить на любом другом асме. Большая часть понятий - стек, регистр. куча и т.п. никак не изменились со времен 16 бит. Это как изучение высокоуровневого языка. Если ты знаешь Cи, то тебе уже проще понять Java, хотя они совсем разные. В случае с 32 или 64 асмом разница будет только в том что на винде тебе еще надо будет освоить WinAPI.
Аноним 09/04/23 Вск 01:33:04 #183 №2666875 
>>2664792
>проще изучать основы на старых 16 битах потому что там меньше заморочек.
там на одних сегментных регистрах мозги раком встанут
Аноним 09/04/23 Вск 02:25:55 #184 №2666893 
>>2666875
кстати да, помню их
тупое говно тупого говна
Аноним 09/04/23 Вск 11:03:38 #185 №2666982 
Годные асмы для изучения:
pdp-11
mips
arm
Аноним 09/04/23 Вск 12:27:49 #186 №2666996 
>>2666982
На самом же дела их только два
x86-64
ARM
Аноним 10/04/23 Пнд 12:41:16 #187 №2667958 
>>2666875
Это тест на профпригодность для каждого юного ассемблерного кодера. Если не смог пройти этот уровень, продолжать вкатываться в асм нет смысла.
Аноним 12/04/23 Срд 18:28:39 #188 №2670432 
>>2667958
Тот же Дантманн пишет, что с содроганием вспоминает те 16-битные времена, когда ему приходилось работать с сегментной памятью, и нафиг ее надо изучать. Разве что для совсем уже продвинутых исследователей ради интереса. По-моему, и в 32-64 битной системе полно уровней, перед которыми от отчаяния непонимания опускаются руки и хочется все бросить. По крайней мере у меня так: разбираю ехе-шники вместе с книгой Юричева после прочтения Дантманна. Над каждым примером сижу по 2 часа, голова пухнет, но ведь интересно же.
Аноним 12/04/23 Срд 20:35:32 #189 №2670627 
>>2670432
>перед которыми от отчаяния непонимания опускаются руки и хочется все бросить
Ну вот поэтому и есть смысл начинать с 16 бит, чтобы не плюнуть на это дело и не бросить. Насчет того что сегменты сложно - это была просто шутка если что. Нет там ничего сложного абсолютно. 32/64 намного сложнее во всех смыслах, хотя бы за счет постоянно расширяющегося набора инструкций и более сложных форматов файлов. Для сравнения COM программы на 16 битах выполняются в памяти буквально по строкам так как они написаны. Если у Дантмана и были сложности, то скорее всего это были сложности с отладкой какой-то многоуровневой логики, которую сейчас никто не будет просто писать на асме.
Аноним 12/04/23 Срд 20:47:30 #190 №2670642 
>>2670627
Надо начинать с 8бит, есть божественные i8080/z80. Кому нужнен проходной 16. Хотя у пдп там вроде есть какой-то няшный асм, но пдп умер.
Аноним 12/04/23 Срд 21:23:17 #191 №2670665 
533931513883887650 (1).jpg
>>2670642
8 бит есть смысл собрать с нуля собственными руками из радиодеталей.
А вот кодить лучше на 16 битах под которые уже были актуальные инструменты, дебагеры и проч.
Аноним 12/04/23 Срд 21:28:36 #192 №2670669 
>>2670665
8бит полностью осязаем студентотой, можно построить самостоятельно компуктер на его базе и полностью знать чо там и как.
Так делали в совке с клонами 8080.
Аноним 12/04/23 Срд 21:47:25 #193 №2670684 DELETED
>>2670665
Ты процессор сам сделаешь? Из чего? Если прям на транзисторах, то это непосильная задача. Годами будешь копаться.
Аноним 12/04/23 Срд 22:45:18 #194 №2670706 
>>2670684
https://www.youtube.com/watch?v=GeSSkvwFDHs
Аноним 13/04/23 Чтв 01:42:52 #195 №2670795 
ezgifcom-gif-makeraOLv6AQvwp.mp4
>>2670684
>Из чего?
TTL
Transistor–transistor logic
Аноним 13/04/23 Чтв 02:39:35 #196 №2670803 
image.png
>>2670684
В старых компах процы собирали из многочисленных чипов
Типа как вот пикрил на примера аудиокарты. Нагромождение этих мелких чипов, очень много.
Видел у Бачило в одном из видео более детальный пример, но сейчас не вспомню в каком.
Аноним 13/04/23 Чтв 03:15:53 #197 №2670807 DELETED
>>2670803
Ну ведь все равно там будет по сути один микропроцессор, либо крупные его куски, какие-то логические модули. Трудно сказать, что это ты зделол, если ты просто спаял готовое из кусков.
А если с нуля собирать на отдельных логических элементах, то их там тысячи нужны даже на простой ЦПУ. Все эти декодеры команд, логика. Ну сотни минимум, если надрочиться оптимизировать.
Аноним 13/04/23 Чтв 09:50:10 #198 №2670864 
>>2670807
Ну ты в любом случае будешь паять из готовых элементов. От того что ты используешь чуть более сложную транзисторно-транзисторную логику, а не реле к примеру, суть особо не меняется.
>отдельных логических элементах
TTL это по факту и есть отдельный логический элемент, просто более сложный и навороченный. Можно конечно сделать процессор и из релешек, но тогда он будет работать как калькулятор по несколько минут делая математические расчеты.
https://www.youtube.com/watch?v=k1hJoalcK68
Аноним 13/04/23 Чтв 11:20:22 #199 №2670952 
>>2425757 (OP)
У кого-нибудь есть нормальная версия Юричева без всех этих тупых ?? там где должны быть страницы?
У него один фиг весь материал старье 00х годов, хз зачем все ищут новую версию.
Аноним 13/04/23 Чтв 22:26:58 #200 №2671626 
>>2670952
Вот его сайт, там все книги, ищи
https://yurichev.com/
Аноним 13/04/23 Чтв 23:15:03 #201 №2671657 
>>2670952
В последней версии там сдохло всё оглавление и вместе с тем все внутрифайловые ссылки. В английской версии всё в порядке, как и в прошлогодней русской.
Аноним 13/04/23 Чтв 23:59:35 #202 №2671682 
>>2671657
>>2671626
>>2670952
А кто-нибудь вообще понял за это время нахрена Юричев запихал в свою книгу Арм и Мипс? Не ну Арм еще ладно, но на Мипсе нет ни одного актуального проца. Нафига??
Как вы его читаете, тупо пролистываете ненужное, или пытаетесь понять код или пошли изучать основы Арма с Мопсом?
Аноним 14/04/23 Птн 01:46:44 #203 №2671722 
>>2671657
Ok ясненько, чекну прошлогоднюю
Аноним 14/04/23 Птн 02:11:34 #204 №2671729 
>>2670864
И тут я вспомнил брейнфак, который делал кашканов
Аноним 14/04/23 Птн 02:52:09 #205 №2671735 DELETED
>>2670864
Круто. То есть не особо и много нужно этих реле чтобы ЦПУ сделать?
А память у него там все равно не самодельная ведь?
Аноним 14/04/23 Птн 11:10:31 #206 №2671857 
>>2671735
Да, он юзал в том числе и более современные чипы для памяти, иначе так компактно бы не получилось.
Если хочешь посмотреть прям аутентичный проц на релешках, то вот здесь в серии видосов чувак делает все с нуля включая память, но конечно получается более громоздкая конструкция.
https://www.youtube.com/watch?v=-ZA9Summq94
Аноним 14/04/23 Птн 13:09:15 #207 №2671966 
>>2671857
Ой, ну какие процессоры на элементах минимальной интеграции.
Речь о том, что готовый компик студент может спаять без особого труда на 8080/з80 и учить его асм, зная, как это работает inside-out, так сказать, там игрушечные объемы даже по сравнению со современнымы мк, но это не мк, это компуктер.
Ничего лучше для этого не придумали. 286 это мусор, 386+ слишком сложна.
А если бы вы ещё узнали сколько клонов 8080 используются в т.н. СВО, вы бы вообще охуели. Такие дела.
Аноним 14/04/23 Птн 13:24:49 #208 №2671975 
GigatronTTLMicrocomputer.jpg
>>2671966
>8080
Так это уже готовый проц, ясен перец что можно на нем собрать компухтер. Но у нас тут речь уже зашла о том как вкатиться в создание своего проца, а для этого готовые микросхемы не подходят, стоит брать хотя бы элементы уровня TTL и уже из них моделировать проц. Для совсем ленивых есть готовые тулкиты для сборки типа Гигатрона.
Аноним 14/04/23 Птн 13:28:48 #209 №2671983 
В чем можно удобно реверсить gba ромы? Для отладки нашел no$gba и mgba, но вот для статического анализа ничего нет. Радар неправильно выставляет базовый адрес и неправильно читает инструкции(наверное там thumb) а binary ninja вообще не загружает и плагина для гба нет. Доступа к платной иде тоже нет.
Аноним 14/04/23 Птн 16:05:59 #210 №2672134 DELETED
>>2671975
То есть, ты за убийства мирных граждан, что пракует РОА?
Тебя найдут и осдядут скорее всего, им похуй, я порадуюсь твое посдаке на 20 лет, котоорая кончитчся украиским мосссадом, но скорее просто отрежут голову, молодец. Всем уже похуй после видео с расстрелом героя и отрезанием головы, на вас похуй сколько там расстреюут, вы этого и добивались.
Если ты воевал или подержал войну, тебе пизда, дружище, не обессудь.
Аноним 14/04/23 Птн 22:19:22 #211 №2672550 
>>2666996
Устройство с мипсом 100% у тебя есть дома, можешь начинать искать
Аноним 15/04/23 Суб 15:45:45 #212 №2672958 
>>2660159
>Ну или что-то подобное.
Например Джона Рихтера и Назара (системное программирование на языке Visual C++), Марка Русиновича (внутреннее устройство Windows), Павла Иосифовича (работа с ядром windows).
Аноним 15/04/23 Суб 15:51:04 #213 №2672961 
>>2660159
Кстати, есть вот такая замечательная статья:
https://habr.com/ru/articles/589091/
Аноним 15/04/23 Суб 19:37:35 #214 №2673142 
>>2670642
> Надо начинать с 8бит, есть божественные i8080/z80.
Что там божественного, кроме ЦЕНЫ В 1990.
Изучать асм на хуй86 мазохично, если не стоит абсурдная цель программировать вирусы и биосы. Там уродливо все, от синтаксиса да бинарного предсталения.
При этом живет в рутерах элегантный mips. В каждом телебоне сидит крутой arm64. В каждом утюге два-три прагматичных кортекса-м.
Аноним 15/04/23 Суб 19:55:19 #215 №2673170 
>>2672961
Двочую афтора. У нас нет хороших учебников. То, что называют учебниками - это справочники. И их дохуя, потому что справочник переводить на русский язык намного лечге. Наши институты ежегодно выпускают толпы инженеров, которые умеют составлять сложные предложения, составленные из слов энциклопедий. А по факту ничего не умеют делать. В лучшем случае помигать светодиодами на ардуинке.
Аноним 15/04/23 Суб 21:18:27 #216 №2673256 
>>2672961
>>А что тогда можно почитать вместо Таненбаума?
Аноним 16/04/23 Вск 08:24:11 #217 №2673468 
Вот вы говорите ИИ, ChatGPT. А я вам говорю что CD-ROM на SonyPS ведёт себя как живое существо. А ChatGPT хуйня, тупо генерирует ответ из мнения интернета.
Аноним 16/04/23 Вск 08:36:18 #218 №2673476 
Хоть обкурись манов. А он всё равно будет самокорректироваться так как он запроган изначально. Любое отклонение = ошибка -> корректировка и возврат на нужное положение.
Аноним 18/04/23 Втр 12:19:24 #219 №2675280 
>>2673256
> иди на хуй ;)
Аноним 18/04/23 Втр 17:25:39 #220 №2675533 
>>2675280
Я читал статью, я понял что предлагает прочитать её автор, то может ты сам чего подкинул бы дополнительно
Аноним 19/04/23 Срд 15:27:44 #221 №2676263 
>>2675533
Ничего не хочу подкидывать, я ненавижу вас и ненавижу этот мир, на хуй идите все и ты тоже.
Аноним 19/04/23 Срд 16:07:01 #222 №2676286 
>>2676263
пойдём вместе с нами нахуй, так веселей
Аноним 19/04/23 Срд 17:57:32 #223 №2676368 
изображение.png
>>2676286
Я давно ушел, поэтому сижу в одиночестве пожирая книги по системной архитектуре и программированию, я лишь хочу как можно больше отгородить себя от большинства людей, и возможно, если мне повезет и среди них будут адекватные инженеры, найти друзей.

Остается лишь понять, где и в каких целях использовать накопленные знания. Удивительно что ты не отреагировал на мой текст взаимной агрессией, возможно мы бы стали хорошими друзьями, но видимо не в этой жизни.
Аноним 20/04/23 Чтв 10:13:09 #224 №2676817 
Аноны, подскажите, пожалуйста, как решить эту проблему: есть рекурсивная функция; перед вызовом самой себя создаётся переменная mov [rbp-8], 0. Я проверяю этот участок памяти ([rbp-8]), перед вызовом самой себя, и в нём содержится ноль, но, когда происходит возврат управления, то в участке памяти [rbp-8], вызывающей функции, уже содержится не ноль, а различный мусор; хотя в rbp и в rsp содержатся те же значения, что и были перед вызовом. С чем это может быть связано?
Linux ... 5.19.0-40-generic #41~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 31 16:00:14 UTC 2 x86_64 x86_64 x86_64 GNU/Linux (вывод команды uname)
NASM version 2.16.01 compiled on Mar 28 2023
Виртуальная машина VMware Workstation 17.0.0 build-20800274
Аноним 20/04/23 Чтв 10:23:19 #225 №2676825 
>>2676817
А да, забыл добавить, что в вызываемой функции с этой переменной [rbp-8] ничего не происходит. Все действия с этой переменной происходят по возвращению управления.
Аноним 20/04/23 Чтв 18:15:57 #226 №2677287 
>>2676817
>С чем это может быть связано?
Что-то пишешь куда-то не туда, скорее всего. Тут нет гадалок, так что кидай код, если хочешь чтобы кто-то помог.
Аноним 21/04/23 Птн 10:58:41 #227 №2677778 
>>2677287
Анон, задачу я взял у Столярова, там типа строка сравнивается с образцом. Типа есть три варианта, из чего состоит образец: 1) обычный ascii символ; 2) знак вопроса; 3) символ звёздочки '*'
Если в образце есть обычный ascii символ, то этот ascii символ должен совпадать с ascii символом в сравниваемой строке. Если в образце есть знак вопроса, то он может совпадать с любым ascii символом в сравн. строке. Если в образце есть звёздочка, то она может совпадать с любой последовательностью ascii символов в сравн. строке, главное, чтобы остаток образца (образец до звёздочки и после звёздочки), совпадал с остатком сравн. строки.

В этой программе всё хорошо работает до того момента, как в образце не встретится звёздочка. Но это меня пока не интересует, мне непонятно, почему в рекурсивной ф-ции после того, как происходит возврат управления, в участке памяти [rbp-8], какой-то мусор, но не то значение переменной, которое я поместил туда до старта рекурсии, хотя указатель базы и стека соответствуют тем же значениям, что и до вызова рекурсии?

https://pastebin.com/Z4FnrcbG
Аноним 21/04/23 Птн 13:24:28 #228 №2677858 
привет! на связи нуб и у меня есть очень тупой вопрос на который я не нашел ответ в гугле.

знаю что есть MASM, TASM, FASM и NASM. но что это такое вообще? и с какого из них мне начать? прочел на каком-то сайте что фасм это игрушка для хакеров под вирусы и тд, а масм больше подходит новичкам и при этом на нем пишут дрова под винду.

п.с. в будущем хочу стать реверс инженегром и хотелось бы изучать сразу необходимый ассемблер из выше перечисленных.
Аноним 21/04/23 Птн 16:57:06 #229 №2678029 
>>2677858

>что это такое вообще?
Собственно, ассемблеры.
Язык ассемблера (assembly) - язык разметки исполнимого образа. Программа-ассемблер (assembler) проходит (несколько раз) по ASM-тексту и по этому исходнику собирает (ассемблирует) исполнимый образ программы.

>с какого из них мне начать?
Ну начни с того, который в твоём учебнике используется.

>фасм это игрушка для хакеров под вирусы и тд
ИБАНИСЬ, НАХОЙ
Аноним 21/04/23 Птн 17:50:43 #230 №2678054 
>>2677858
>игрушка для хакеров под вирусы
section .data
huy db 23
tvoy_rot db 8

section .bss
section .text
global main
main:
push rbp
mov rbp, rsp
xor rax, rax
mov al, [huy]
mov ah, [tvoy_rot]
.yobka:
ror ax, 8
rol ax, 8
cmp al, 0
jne .yobka
leave
ret


прошу исполнить этот код у себя на компьютере
Аноним 22/04/23 Суб 08:54:26 #231 №2678398 
>>2678054
жестко
Аноним 22/04/23 Суб 14:38:23 #232 №2678609 
>>2678054
Что хоть там происходит? запускаю кусок на сайтах, а там тупо ничего не происходит, да и функций не вызывается никаких.
В чём там прикол?
Аноним 22/04/23 Суб 18:33:30 #233 №2678768 
>>2677858
>в будущем хочу стать реверс инженегром и хотелось бы изучать сразу необходимый ассемблер из выше перечисленных.
Во время реверс инжиниринга ты читаешь дизассемблированный бинарный код, который выплюнул компилятор или ассемблер, а в нем нет всяких макросов как в ассемблерах и всё ещё перемешано между собой будет. Лучше иди почитай reverse engineering for beginners и порешай простенькие crackme, намного больше пользы будет чем писать что-то. Можешь ещё поиграться с godbolt.org.
Аноним 25/04/23 Втр 09:17:40 #234 №2680565 DELETED
>>2678768
А что насчёт "Искусство дизассемблирования" Криса Касперски? Да, книга, 2005-2006-х годов, но стоит ли её вообще читать?
Аноним 25/04/23 Втр 12:08:37 #235 №2680696 
Аноны, как вкатиться в это дело? Хочу разбираться в архитектуре, пощупать асма примитивномуровне, но что бы прям понимание было. Есть литература совсем для даунов? Читал Таненбаума, нихуя не понятно. Особенно никогда не мог понять разрядность, системы счисления. Вроде немного усвоил, но через неделю забываю. Спасибо
Аноним 25/04/23 Втр 17:07:47 #236 №2681018 
>>2680565
Читал её. Стоит.
мимодругойанон
Аноним 25/04/23 Втр 20:08:11 #237 №2681203 
>>2681018
Спасибо, анонче!
Аноним 25/04/23 Втр 22:59:18 #238 №2681323 
>>2681203
Вообще лучше почитать все книги Касперски, у него там про вирусы полно инфы. Вирусы это часто нечто низкоуровневое типа ассемблера и они как раз через ассемблер объясняются.
Аноним 26/04/23 Срд 10:18:17 #239 №2681576 
>>2681323
Да, Касперски крутой чувак! Мне ещё его слог нравится, такой типа "крутой", приблатнённый и с лёгким похуизмом, прям чувствуется дух 90-х и начала 00-х. Я ещё его трюки на Си читаю, тоже очень нравится. Спасибо, анонче! Сейчас, после Ван Гуйа, приступлю к "Искусству дизассемблирования".
Аноним 01/05/23 Пнд 10:54:43 #240 №2685554 
>>2530537
Что это за сайт?
Аноним 01/05/23 Пнд 12:13:18 #241 №2685609 
>>2685554
https://nandgame.com/
Аноним 01/05/23 Пнд 12:25:43 #242 №2685628 
>>2681576
>>приблатнённый и с лёгким похуизмом, прям чувствуется дух 90-х и начала 00-х
Да, этим он как раз хорош тоже.
Кароче, в нашей стране любой кто прогает на ассемблере под x86 должен все его книги прочитать.
Аноним 01/05/23 Пнд 13:10:40 #243 №2685647 
>>2685609
Спасибо! Добра тебе, анончик.
Аноним 02/05/23 Втр 07:24:04 #244 №2686211 
>>2685628
>Кароче, в нашей стране любой кто прогает на ассемблере под x86 должен все его книги прочитать.
Спасибо, анонче! Учту!
Аноним 02/05/23 Втр 17:27:02 #245 №2686663 
>>2678768
>>2678768
можешь, пожалуйста, еще что нибудь для изучения реверса подсказать?
вот требования которые выдвинула компания в которую я хочу попасть на должность мидла и сказала что если я хочу стать стажером нужно от этого отталкиваться:
понимание архитектуры винды
умение работать с дизассемблером и дебаггером
виндовс апи
работа с сетью(сокеты, http, smb)
умение дружить с компилятором и линкером
принципы написания безопасного кода

если знаешь, подскажи, в интернете крайне мало информации по реверсу нашел
Кот_в_Шляпе 05/05/23 Птн 17:35:18 #246 №2689225 
изображение.png
>>2676286
>>2685628
Слушай, а можешь объяснить или написать где прочитать о том как работает SSE технология?

Как я понимаю, суть в том, что в современных процессорах с шириной в 64 бита (80x86 intel64, amd64), существует 8-мь 128-битных регистров, предназначенных для параллельного вычисления и возможности работать с числами с плавающей точкой с обычной/двойной точностью, верно?

Аноним 05/05/23 Птн 19:18:43 #247 №2689337 
>>2689225
https://ru.wikipedia.org/wiki/SSE
Прочитай всю статью вплоть до примеров, вроде должно знать понятно.
Аноним 05/05/23 Птн 19:22:31 #248 №2689343 
>>2689225
Судя по статье из википедии там одинарная точность только, двойной нетю.
Аноним 05/05/23 Птн 19:28:29 #249 №2689347 
>>2689343
Поправочка, в SSE2 уже двойная точность имеется, но там добавлен вариант вставить за раз два числа двойной точности в один регистр против 4 чисел одинарной точности в SSE.
Аноним 05/05/23 Птн 19:33:13 #250 №2689352 
>>2689347
https://ru.wikipedia.org/wiki/SSE2
https://ru.wikipedia.org/wiki/SSSE3
https://ru.wikipedia.org/wiki/SSE4

Ну вишенка на торте SSE это AVX, где регистры уже конкретно распидорасило до 256 бит
https://ru.wikipedia.org/wiki/AVX
Аноним 05/05/23 Птн 19:36:32 #251 №2689354 
изображение.png
изображение.png
>>2689337
>Прочитай всю статью вплоть до примеров
Уже читал и разбирал код в отладчике, просто интересно, как это выглядит на уровне архитектуры, хотелось чуть-чуть побольше про это почитать, хотя не думаю что есть в этом смысл.
Аноним 05/05/23 Птн 19:37:46 #252 №2689358 
>>2689354
Если процы не делаешь, то нах оно тебе надо.
Аноним 05/05/23 Птн 19:41:24 #253 №2689368 
>>2689358
Алсо, там ничего сложного. Ну берёт из регистра пару или четвёрку чисел, берёт ещё пару или четвёрку из другого регистра, потом складывает или делит или чё там, и срёт пачкой чисел в первый регистр или в третий. Чего там сложного. Те же операции, только сразу над пачкой данных, а не по одному.

Вот всякие конвееры в проце или ещё какая хуйня - вот там да, там заморочено всё и должно быть интересно, особенно если ты компиляторы пишешь.
Аноним 05/05/23 Птн 19:43:38 #254 №2689373 
>>2689358
>>2689368
Согласен с вами.
Аноним 05/05/23 Птн 19:51:58 #255 №2689384 
>>2689373
Перепишу немного.

Предположим, что регистры 128 бит. Тогда.
Если одинарная точность, то одновременно работает группа из четырёх, грубо говря, арифметических устройств, каждое из которых работает над своей частью регистра.
Первое устройство работает с первыми 32 битами первого и второго регистров, второе устройство работает со вторыми 32 битами первого и второго регистров и так далее.

Работают в одно и то же время, а не по очереди, поэтому параллельность как бе. Вот и всё.

Если двойная точность, то уже только два устройства делят между собой 128 бит.
Ничего захватывающего короче.
Аноним 05/05/23 Птн 22:03:27 #256 №2689508 
изображение.png
>>2689384
Понял, спасибо большое за объяснение.
Аноним 06/05/23 Суб 20:40:03 #257 №2690307 
>>2677778
Парни, а кто-нибудь читал код на пастебине? Просто интересно, почему никто не прореагировал, потому что этот постер нуб?, долбоёб?, и просто утырок??
Аноним 07/05/23 Вск 22:27:34 #258 №2691396 
>>2690307
Я не читал, а по ссылке вылезает 404
Аноним 09/05/23 Втр 20:13:01 #259 №2693304 
Кто-нибудь изучал asm по Кнуту?
Аноним 09/05/23 Втр 21:10:46 #260 №2693373 
>>2693304
А в какой книге у него написано про асм x86?
Аноним 10/05/23 Срд 10:03:36 #261 №2693839 
>>2693304
Чёт мне кажется, что "Искусство программирования" это слишком фундаментальный труд, чтобы с него начинать изучение асма. Мне кажется, что к этому труду лучше подступаться, когда ты уже чутка шаришь в асм.
Аноним 10/05/23 Срд 16:16:38 #262 №2694271 
Аноны, а подскажите, пожалуйста, гайды по ассемблерним вставкам в код на Си для линукса.
Аноним 10/05/23 Срд 20:50:09 #263 №2694520 
>>2694271
>> для линукса.
А что, у линукса какой-то особенный ассемблер?
Там ведь надо на компилятор ориентироваться и на архитектуру (x86-64 или arm), а не на операционку или я что-то не понимаю?
Аноним 10/05/23 Срд 20:54:17 #264 №2694522 
>>2694520
Ну да, я думаю, что просто нужно gcc поставить определённый флаг, и тогда получится. Вообще забей! Я чёт задал вопрос, и только после этого подумал. Здесь проще загуглить.
Аноним 10/05/23 Срд 20:58:23 #265 №2694524 
>>2694522
>> Я чёт задал вопрос, и только после этого подумал.
бывает
Аноним 11/05/23 Чтв 20:54:16 #266 №2695398 
Может мне кто-нибудь, пожалуйста, ответить, почему во многих источниках, касающихся виндовса, говорят о том что поток(thread) что-то сделал/выделил/совершил и тд? в то время как в линуксе говорят процесс. В win же тоже процессы есть, почему выделяют конкретно поток, а не процесс, даже если речь об однопоточке?
Аноним 11/05/23 Чтв 21:14:56 #267 №2695420 
>>2695398
Видимо, чтобы привить основы. У каждого потока же свой стек, несмотря на то, что адресное пространство общее.

Раньше ведь как было, покупаешь новый комп - и прога работает быстрее. Покупаешь ещё новее - ещё быстрее. А потом в середине нулевых частота процов замерла и начали появляться ядра. И чтобы программа работала быстрей теперь надо думать и переписывать программу под эти ядра и перед этим ещё понять будет ли паралелиться код и данные или нет. Где ядра, там и потоки. Ещё в играх это очень важно, один поток работает с графикой, а второй с аудио.
Аноним 12/05/23 Птн 01:00:14 #268 №2695612 
>>2695398
Потоки в юниксе до сих пор остаются опциональной приблудой поверх процессов.
Аноним 12/05/23 Птн 17:17:50 #269 №2696263 
>>2695398
Что такое программа - это список команд, этот список всегда будет выполняться поочерёдно, команда за командой. То есть у тебя будет виснуть вся прога при выполнении сложной задачи. Но если ты хочешь сделать виртуализацию двух списков команд, чтобы часть проги(фронтэнд по вашему) не зависала, то это будут потоки но в одном процессе.
Чё тут сложного?
Аноним 12/05/23 Птн 17:25:22 #270 №2696271 
>>2696263
>Чё тут сложного?
Вероятно, в чтении буков и понимании написанного
Аноним 12/05/23 Птн 17:34:12 #271 №2696283 
>>2696271
Так читать надо немного по диагонали. С пониманием того что пишущий это человек не может ошибиться(потому что заклюют), но в реальности не хватит жизни чтобы переварить то что он написал.
Аноним 12/05/23 Птн 17:45:07 #272 №2696304 
В асме рулит интеллект и аутизм. Я в этом убеждён.
Аноним 12/05/23 Птн 17:46:40 #273 №2696305 
>>2696304
А чего такого в асме интеллектуального?
В 80х все на них писали, потому что ничего другого не было. Асм был мейнстримом.
Аноним 12/05/23 Птн 17:54:03 #274 №2696318 
>>2696305
Я интеллект и аутизм связываю, потому что у меня это выглядит так - я внешне обычнокун(наверно альфа по меркам двача), внешне выгляжу на чуть более среднего интеллекта. Но если мне попадается логическая задача которую никто не решил, я буду её решать и решу, потом своё решение автоматизирую в асме, или совместно.
Раз эту задачу никто не решил, значит у меня больше интеллекта перед теми кто её не решил.
Людям это не нравится, но мне похуй.
Аноним 12/05/23 Птн 18:02:18 #275 №2696332 
Заноза в жопе короче, диверсант, душнила.
Но я уверен в том что я делаю на 100%
Я и за ИИ буду топить, чтобы высокоуровневые наконец то поняли каково это вгрызаться в задачу зубами мозга.
Аноним 12/05/23 Птн 18:16:58 #276 №2696369 
>>2696283
Ты походу вообще не осознаешь, что читаешь. Да и пишешь тоже
Аноним 12/05/23 Птн 18:24:16 #277 №2696386 
>>2696332
чёта какие-то пространные мысли, въебал чего-то? на бред похоже
Аноним 12/05/23 Птн 18:24:56 #278 №2696388 
>>2696318
>логическая задача которую никто не решил, я буду её решать и решу
Может быть, перед решением задачи люди соотнесли затраты и возможные профиты, и на основании этого сделали вывод, что решение этой задачи им не выгодно?
Аноним 12/05/23 Птн 18:33:25 #279 №2696397 
>>2696388
Значит им профиты важнее интеллекта.
Ну тип семки и пивко возле подъезда тоже профит и думать не надо.
i win
Аноним 12/05/23 Птн 18:40:16 #280 №2696410 
Но интеллект это и есть профит. Если ты кто-то думает иначе, значит его наебали. Законы физики не изменить. Значит интеллекта то там и не было.
Аноним 12/05/23 Птн 18:47:08 #281 №2696416 
>>2696397
Нет, интеллект - это когда ты выжимаешь из имеющихся ресурсов максимальный результат.
Например, можно сделать сложный йоба-танк и проиграть войну, потому что его сложно и дорого производить. А можно наоборот наклепать много средних танков и выиграть войну. Чувствуешь разницу? Нужно конфигурировать систему так, чтобы она давала максимальный эффект, а не дрочить что-то одно до посинения.
Или давай возьмем пример из ИТ сферы. Ты можешь сколько угодно оптимизировать ядро своей программы, писать самые быстрые йоба-оптимизации, ебать байты, но если огрничением становится скорость ввода/вывода, то твоя работа просто бесполезна. Ты потратил ресурсы в никуда, когда их можно было вложить в более важные вещи.
Аноним 12/05/23 Птн 18:49:01 #282 №2696419 
>>2696386
>въебал чего-то?
Чё не кодишь, сука? Чё тут сидишь читаешь всякую хуйню. Результаты в студию, говно!
Аноним 12/05/23 Птн 19:01:20 #283 №2696433 
>>2696416
> но если огрничением становится скорость ввода/вывода
Нет. Ты просто говоришь - я сделал, я смог, но есть ограничение скорости ввода/вывода. Если я смог, то пусть сделают так чтобы этого ограничения не было.
Так интеллект двигает прогресс.
Элементарно могу поставить тебе задачу - оптимизировать при помощи асма приложения на телефоне, чтобы они не выполняли ненужные команды и не садили батарею.
На что теперь будешь ссылаться? А вот возьми и сделай, и будут тебе все профиты.
Аноним 12/05/23 Птн 19:04:02 #284 №2696435 
>>2696419
Ты нахуя в тред пишешь свою хуйню? Он про ассемблер и архитектуры, а не про интеллект ёбтвою мать
Аноним 12/05/23 Птн 19:05:28 #285 №2696436 
>>2696433
Надо не приложения оптимизировать тогда, а компиляторы, дурында
Аноним 12/05/23 Птн 19:11:39 #286 №2696437 
>>2696436
Ну компиляторы пусть разрабы оптимизируют. А я бы вот за профиты оптимизировал бы айфоны.
Для этого нужен интеллект.
Аноним 12/05/23 Птн 19:13:56 #287 №2696440 
Игры тоже можно оптимизировать. Моя мечта..
Аноним 12/05/23 Птн 19:16:23 #288 №2696443 
>>2696433
>Ты просто говоришь - я сделал, я смог, но есть ограничение скорости ввода/вывода. Если я смог, то пусть сделают так чтобы этого ограничения не было.
Удачи изменить законы физики, шизик.

>>2696433
>оптимизировать при помощи асма приложения на телефоне, чтобы они не выполняли ненужные команды и не садили батарею.
Современные компиляторы оптимизируют код лучше мясного мешка. Либо разница настолько минимальна, что не стоит влоюенных в это ресурсов.

Ну а вообще понятно, что ты квадратно-гнездовой шиз с манией величия.
Аноним 12/05/23 Птн 19:25:02 #289 №2696457 
>>2696443
Какие законы физики на ввод/вывод, если скорость света 300 тыщ км/c?
Аноним 12/05/23 Птн 19:28:41 #290 №2696462 
>>2696437
>>2696440
Блядь, что за шизик. Мечтатель хуев, в голосину
Аноним 12/05/23 Птн 19:32:44 #291 №2696465 
>>2696457
Тогда зачем глупые инженеры там с какими-то шинами данных ебутся или скоростью записи/чтения на носитель? Иди и расскажи тупым, что все проще.
Аноним 13/05/23 Суб 14:13:43 #292 №2697170 
>>2696465
Ты их превозносишь выше себя? В чём суть? Бери и ебись сам.
>>2696462
Ага. Потом мечтатели выкатывают ёбу и ты делаешь вид как-будто бы не заметил.
Аноним 13/05/23 Суб 15:53:51 #293 №2697263 
>>2697170
Вот иди и выкатывай, а не засирай тред хуйней, аутист
Аноним 13/05/23 Суб 16:47:31 #294 №2697308 
>>2697263
>а я и дальше буду всё игнорить
Ты даже свою мысль закончить не можешь.
Аноним 13/05/23 Суб 17:08:11 #295 №2697332 
image.png
>>2697308
зарепортил долбоёба
Аноним 13/05/23 Суб 17:11:59 #296 №2697338 
>>2697332
удачи
Аноним 13/05/23 Суб 23:19:24 #297 №2697681 
Чем старее погромист, тем меньше хочет писать на ассемблере.
Аноним 14/05/23 Вск 00:28:37 #298 №2697807 
>>2697681
авотхуй, вчера стукнуло 30 и последний месяц руки чешутся написать что-нибудь для NES. Есть в этом своя лампота.
Пересмотрел вдобавок кучу каналов по ZX Spectrum и Commodore 64
Аноним 18/05/23 Чтв 18:05:36 #299 №2703429 
Добрый вечер, аноны. Очень удивлён, что тред жив, а последние ответы даже не датируются прошлым годом. Видел этот ваш асм ещё в конце 80-ых, когда учился в ГДР. Коллеги из совдепии, разумеется, тоже с этим работали, но мне в те времена едва 17 стукнуло.
К сути, насколько сильны изменения за эти ~35 лет? Я помню базу, но ввиду моей специализации в данный момент резко возникла потребность в углублённых знаниях. И тут уже либо я берусь самостоятельно за определённую работу, либо мой пирог кусает человек, который знает и умеет, чего не очень хотелось бы. Да и где в наше время найти нужного инженера?
Алсо, если здесь есть люди, которые ищут работу и имеют разрешение на работу в США, то я могу вам сделать интересное предложение.
Аноним 18/05/23 Чтв 18:22:39 #300 №2703475 
>>2703429
Тогда он был нужен именно для разработки, сейчас больше для реверса, так что подходы другие в плане знания компиляторов и прочего для анализа.
Аноним 19/05/23 Птн 17:51:34 #301 №2704647 
>>2703429
Я здесь родился, я здесь и умру. Бегать по всему миру из-за трудностей это не по ассемблеровски.
Аноним 19/05/23 Птн 20:04:53 #302 №2704900 
>>2703429
>за эти ~35 лет?
АВХ инструкции, разрядности. Странный вопрос для человека, который так долго в айти сфере.
Аноним 26/05/23 Птн 17:44:01 #303 №2712859 
>>2696388
Я проверил, ты не прав.
Как выглядит свиду среднесложная задача - ты примерно оцениваешь сроки, начинаешь делать. А потом подводные, всё усложняется, после этих подводных новые подводные. Если уже начал, то надо заканчивать и(барабанная дробь) заканчиваешь. Это охуенно.
А предварительная оценка это философия, будет 0 на входе - 0 на выходе. Так всегда и будет.
Аноним 27/05/23 Суб 07:49:58 #304 №2713333 
>>2696388
https://3dnews.ru/1087445/tseni-na-elektrichestvo-v-finlyandii-dostigli-otritsatelnih-znacheniy
Осознай какой ты лошара. Тебя же опасно пускать в цивилизованное общество, ты там будешь гнуть свою деструктивную линию и разрушать это общество.
Аноним 27/05/23 Суб 16:47:45 #305 №2713643 
>>2696305
>А чего такого в асме интеллектуального?
Интеллект это очень просто - когда у человека есть личность. Нет личности - нет интеллекта.
Когда есть личность, есть интересы ей свойственные, личные интересы человека. Интеллектуальный человек делает вещи нужные ему, не оглядываясь на окружающих: что там легко, что там прибыльно, что там трендово, это всё ничего не значит, потому что лень, алчность и подверженность внешнему влиянию это стандартные инстинкты животного, а значит не могут быть интеллектом, ибо у животных его нет, соответственно человек с такими интересами не может быть интеллектуальным.

Так вот, возвращаясь к ассемблеру, это не легко, не прибыльно и не трендово, значит человек занимается под влиянием своей личности, т.е. интеллекта, поэтому ассемблер это интеллектуально.
Тут ты можешь сказать, что подверженность внешнему влиянию бывает и наоборот - быть не таким как все и поэтому заниматься ассемблером, но с ним это не работает. Одно желание быть никакусиком слишком слабая мотивация, в данном случае не потянет. Нитакусик это лишь внешность, а для внешности есть куда более простые вещи, чем ассемблер.
Аноним 27/05/23 Суб 16:53:25 #306 №2713649 
>>2696305
>В 80х все на них писали
Да.
>, потому что ничего другого не было.
Нет, было.
Причина не в наличии или отсутствии языков, а в производительности.
>Асм был мейнстримом.
Не был, потому что в 80-х компьютеры в принципе не были мейнстримом.
Аноним 27/05/23 Суб 18:16:46 #307 №2713687 
>>2713643
Ну хорошо.
А что ещё формирует личность, кроме ассемблера? С ассемблером понятно, а вот что ещё?
Даже представить боюсь как до 20 века жили без ассемблера, мы счастливчики, что застали его и пишем на нём.

>>2713649
>>Не был, потому что в 80-х компьютеры в принципе не были мейнстримом.
Ты в курсе с чего началась история ПК? Как раз с Commodore 64 и ZX-Spectrum, котороые как раз в 80-е появились, в начале
Аноним 28/05/23 Вск 04:32:51 #308 №2713926 
>>2713687
>Даже представить боюсь как до 20 века жили без ассемблера
Подтирали жопу занавеской, потом решили включить мозг и начали изобретать всякие лампы накаливания(это тоже можно назвать ассемблером, принцип тот же).
Аноним 28/05/23 Вск 16:59:02 #309 №2714206 
>>2713687
>А что ещё формирует личность, кроме ассемблера?
Личность формируют твои родители своими генами. Если родился с личностью, она будет и будут интересы, а если нет, то и нет, остается только дебильный каргокульт, имитация, как спрашивать какие очки лучше формируют ум, ведь умные как правило в очках, верно? Нет, дебил, не ум от очков, а очки от ума. Так же и с ассемблером, не ассемблер формирует ум, а ум формирует интерес к ассемблеру. А в обратную сторону это не работает.

>Ты в курсе с чего началась история ПК?
Ты в курсе значения слова "мейнстрим"? В 80-е, компьютеры не были мейнстримом, никто из обычных людей про компьютеры даже не знал и знать не хотел, всем было насрать. Компьютерами занимался один из сотни или даже из тысячи. Поэтому не важно на каком языке это происходило, программирование хоть на бейсике, хоть на ассемблере было одинаково уникальным занятием для умных с личностью, а значит интересами, иначе просто не было причин трогать компьютеры, они никого из обычных людей и не интересовали.
Аноним 29/05/23 Пнд 18:19:41 #310 №2715571 
>>2714206
Какой же лол! Раз чем-то занимаются всего лишь единицы, то это ебать интеллектуально получается.
Всё-таки интеллект лучше поискать в решениях сложных задач по геометрии и пиздатой поэзии.
Аноним 30/05/23 Втр 05:37:19 #311 №2715957 
>>2715571
>Раз чем-то занимаются всего лишь единицы, то это ебать интеллектуально получается.
Дело не в количестве, а в мотивации - ЗАЧЕМ делаешь. И тут всё просто, массовые занятия это не личная воля личности, а влияние массы, тупое стадо, интеллекта нет. А редкие занятия уже могут, но конечно не все они делаются из за личной воли, поэтому нужно рассматривать конкретно.

>Всё-таки интеллект лучше поискать в решениях сложных задач по геометрии и пиздатой поэзии.
Это ум, сообразительность, а не интеллект. Умным, сообразительным могут быть и животные, но интеллектуальными - не могут.
Аноним 02/06/23 Птн 14:14:46 #312 №2719513 
>>2714206
кстати, комплюктеры уже не мейнстрим: я недавно видел в каком-то мануале фразу типа "вот этот пункт нужно делать на компьютере, а не на телефоне, поэтому если у вас нет компьютера, visit a public library"
мимокрок
Аноним 02/06/23 Птн 17:29:10 #313 №2719738 
>>2719513
Чел, мейнстрим это точно не про этот тред.
Аноним 03/06/23 Суб 02:55:01 #314 №2720166 
>>2719513
Хоть и не в тему, но смешно, да.
Компьютеры зафорсили, но они изначально не были никому нужны, вот баланс и возвращается в исходное состояние - ненужности.
Аноним 03/06/23 Суб 19:03:10 #315 №2720745 
>>2714206
>родился с генами личности
>душные нолики-единицы - маркер ума

Переизбыток хуйни на один пост
Аноним 03/06/23 Суб 19:14:29 #316 №2720756 
>>2713643
Я занимаюсь помойкингом.

это не легко, не прибыльно и не трендово, значит человек занимается под влиянием своей личности, т.е. интеллекта, поэтому помойкинг это интеллектуально.

Тут ты можешь сказать, что подверженность внешнему влиянию бывает и наоборот - быть не таким как все и поэтому заниматься помойкингом, но с ним это не работает. Одно желание быть никакусиком слишком слабая мотивация, чтобы рыться по завалам гниющего воняющего дерьма в поисках чего-то прекрасного. Нитакусик это лишь внешность, а для внешности есть куда более простые вещи, чем ходить по разлагающимся отходам, переступая крыс. Интеллект, личность — вот что главное. Интеллект и личность.
Аноним 07/06/23 Срд 20:09:51 #317 №2724955 
Че там с делением на арм ассемблере кста?
Аноним 08/06/23 Чтв 23:54:52 #318 №2726576 
Заглянул в код одного линуксового ядра (x86-32) и встретил там непонятную вещь. Там присутствует функция, которая состоит из ничего. ret и все. Судя по тому, на скольо часто она используется, это что-то вроде всяких __x86.get_pc_thunk.xx Но я пока так и не могу понять, какую информацию можно извлечь таким прыжком туда обратно. Вызывается она в самом начале после сохранения регистров в стек. И упоминаний чего-то подобного толком найти не могу. Одно упоминание встречал, но там это вроде как выдавал IDA а не gcc. И там народ говорил, что возможно это даже ничего не значит. Компилятор, что-то недовыкинул.
Аноним 09/06/23 Птн 18:00:28 #319 №2727401 
>>2726576
>Функция RET
>Кодинг высокуровневых
Аноним 29/06/23 Чтв 22:07:50 #320 №2748569 
Как вывести нечетные числа из массива от 0 до 1000?
Аноним 29/06/23 Чтв 22:54:59 #321 №2748616 
>>2748569
Прыгать через один на вывод.
Аноним 29/06/23 Чтв 23:04:22 #322 №2748625 
>>2748569
>>2748616
Заведи счётчик в регистре, в котором 0 это прыжок в начало цикла и инкримент счётчика, 1 это прыжок на вывод и обнуление счётчика.
Аноним 29/06/23 Чтв 23:14:44 #323 №2748628 
>>2748569
>>2748616
>>2748625
Также можешь использовать маску и операцией енд сравнивать последний бит, сдвигая вправо один бит, если он равен единице, то это нечётное число, это этот бит равен нулю, то это чётное число. Тебе нужен флаг переноса и прыжок на вывод по условию, когда этот флаг равен единице.
Аноним 29/06/23 Чтв 23:16:06 #324 №2748629 
>>2748628
>и операцией енд сравнивать последний бит
Не хуиту написал! Просто сдвигай вправо счётчик и по флагу переноса прыгай.
Аноним 29/06/23 Чтв 23:27:54 #325 №2748637 
>>2748569
>>2748616
>>2748625
>>2748628
>>2748629
Кста, можешь и маску использовать, которая равна, допустим 00000010, если будешь сдвигать влево на один бит свой счётчик и сравнивать его с маской операцией энд. Если равно, то прыгай на вывод, если не равно, то в начало цикла.

Простите, ребята, что так много написал, чёт туплю сегодня!
Аноним 29/06/23 Чтв 23:48:54 #326 №2748644 
Советы это заебись, но мне код нужен, я ж нихуя не понимаю вообще
Аноним 30/06/23 Птн 17:37:38 #327 №2749359 
>>2748644
Анон, держи!
https://pastebin.com/XDbgKyuL

Тут используется ф-ция printf языка Си для вывода чисел на экран, просто, если пользоваться средствами ОСи, то заебёшься выводить числа, плюс этот код я писал в линуксе (убунту 22.04), поэтому, чтобы его скомпилить тебе придётся создать makefile, в котором можешь создать связь (у меня исходник называется out_arr.asm, у тебя как будет я хз, поэтому в этой связи поменяй out_arr... на название своего файла):
out_arr: out_arr.o
gcc -o out_arr out_arr.o -no-pie
out_arr.o: out_arr.asm
nasm -f elf64 -g -F dwarf out_arr.asm -l out_arr.lst
(-l out_arr.lst можешь вообще не указывать)
Чтобы исполнить программу, запускай out_arr. Ещё тебе понадобится компилятор gcc:
sudo apt update && sudo apt upgrade
sudo apt install gcc

Если тебе нужен код под винду, то, извиняй, я тут не знаток.
Аноним 30/06/23 Птн 17:41:48 #328 №2749365 
>>2749359
Ещё и сам nasm, конечно, нужен:
sudo apt install nasm
Аноним 12/07/23 Срд 22:03:21 #329 №2763630 
>>2748569
Это массив содержит числа от нуля до тысячи по возрастанию, или же это каждое число в массиве от 0 до 1000? нипанятна. ставь запятые.
Аноним 17/07/23 Пнд 19:16:05 #330 №2770387 
Как же сложно вкатится в это.
Насколько сильно синтаксис языка архитектур отличается?
Я так понял, что лучшие туториалы по x86
Аноним 17/07/23 Пнд 19:31:29 #331 №2770404 
могила-корзины.jpg
Поскольку Си-тред исчез куда-то, спрошу здесь:
почему объект нельзя модифицировать при передачи
его в функцию через указатель?
Аноним 17/07/23 Пнд 20:58:00 #332 №2770516 
>>2770404
>почему объект нельзя модифицировать при передачи его в функцию через указатель?
Потому что можно.
Аноним 18/07/23 Втр 01:43:22 #333 №2770744 
>>2770387
Да, по твоему сообщению видно, что ты ещё толком не начинал. Желаем удачи!
Аноним 18/07/23 Втр 09:41:39 #334 №2770901 
Для реверса старых виндовых прог стоит MASM подучить? Или NASM/FASM вполне хватит?
Аноним 18/07/23 Втр 17:38:25 #335 №2771819 
>>2770744
Я выразился плохой терминологией.
Каждый проц имеет свои собственные сокращения к действиям с регистрами?
Аноним 18/07/23 Втр 19:15:40 #336 №2771944 
По сути ассемблер это как ты берешь значение и всовываешь его в другой участок памяти по многу раз?
Аноним 18/07/23 Втр 20:58:06 #337 №2772073 
>>2771819
>Каждый проц имеет свои собственные сокращения к действиям с регистрами?
Тебе лучше начать с другого: гугли "Instruction Set Architecture", потом посмотри как команды процессора реально устроены на бинарном уровне для разных архитектур, например у Z80, ARM, x86. После этого вопросы про ассемблер отпадут, я надеюсь.
Аноним 22/07/23 Суб 19:23:10 #338 №2777916 
1.png
2.png
Вопрос к обмазывающимся fasmg коданам: в CALM инструкции как-то можно проверить, существует ли некая переменная? Короче, интересует CALM-эквивалент простого макроса на первом пике - такое в CALM можно запилить? То, что я напидорасил на пикрелейтеде 2, работает только с символьными переменными, т.е. pizda equ 1 детектится, а pizda = 1 нет. А надо, чтобы детектилось.
Аноним 26/07/23 Срд 11:46:34 #339 №2781989 
На каком ассемблере лучше писать шеллкоды под линуксом? NASM, FASM, %GNU AS%?
Аноним 29/07/23 Суб 23:09:46 #340 №2787458 
Решил я убить двух зайцев: изучить основы Python и, дизассемблируя упражнения, попутно изучать методы реверс-инженеринга.
Написал одну строчку "Print("Hello, World"). Скомпилировал. Получился файл размером 1MB! У вас всегда так?
Загнал exeшник в Иду и не нашел, где выполняется эта команда. Я не нашел в памяти даже строку "Hello, World". Это что за компилятор такой? Походу гиблое дело. С С++ до этого как-то проще было.
Аноним 30/07/23 Вск 13:17:58 #341 №2787739 
>>2787458
Алло, товарищ, у Питона своя виртуальная машина, которая исполняет байт-код.
Так что в ассемблере ты получишь нечто пережёванное: эту машину и где-то ещё должен быть байт-код твоего хеллоувордла. А строку ты не можешь найти потому, что там вполне может юзаться другая кодировка, отличная от ASCII и UTF8, где один символ кодируется двумя байтами, а не одним.
Аноним 30/07/23 Вск 13:19:17 #342 №2787741 
>>2787458
Если хочешь дизассемблить питоновский байткод, то тебе вот сюда https://docs.python.org/3/library/dis.html
Аноним 30/07/23 Вск 13:38:53 #343 №2787760 
>>2787458
>>2787739
Это просто бандл с вм, либами и скриптом, какой там хело ворлд искать, лул.
Аноним 30/07/23 Вск 13:46:12 #344 №2787781 
>>2787760
Ну тык я ему и говорю то же самое.
Он наверно посчитал, что раз получился экзешник, то значит его питонский скрипт скомпилировался как код на Си или плюсах.
Аноним 30/07/23 Вск 13:58:00 #345 №2787801 
Как указать gcc, под какую архитектуру собирать проект? Я хочу собрать под x86, a gcc собирает под x86_64.
Аноним 30/07/23 Вск 14:22:33 #346 №2787847 
>>2787801
https://www.geeksforgeeks.org/compile-32-bit-program-64-bit-gcc-c-c/

в гугле забанили?
Аноним 30/07/23 Вск 21:51:51 #347 №2788433 
Screenshot20230730205048.png
>>2425757 (OP)
Как на фасме сделать jjmp 0, real_start? Не компилится
Аноним 01/08/23 Втр 15:37:29 #348 №2790304 
Безымянный.png
>>2787760
А я-таки нашел, лул. Строка появляется в самом конце выполнения exe-файла, причем каждый раз появляется в совершенно разных адресах памяти. Есессно я абсолютно не понимаю как и откуда она появляется.
Аноним 01/08/23 Втр 22:29:58 #349 №2790837 
>>2790304
Так может скрипт тупо сжат, а при выполнении разжимается.
Аноним 01/08/23 Втр 22:37:49 #350 №2790847 
>>2790304
>>Есессно я абсолютно не понимаю как и откуда она появляется.
копай исходники той утилы, которая захуячила тебе это всё в exe, там и поймёшь сразу как и откуда
Аноним 01/08/23 Втр 22:40:32 #351 №2790851 
2023-08-01 22-38-32.png
>>2790304
На кой-то она ещё засунула путь исходника. Зочем? А главное нахуя?
Аноним 02/08/23 Срд 00:26:27 #352 №2790932 
>>2425757 (OP)
Какие есть книги и статьи о том, как создать свой собственный ассемблер? Хотя бы самый простой. Помогите найти и разобраться.
Аноним 02/08/23 Срд 00:30:20 #353 №2790934 
>>2790932
Блядь, это парад тупиздны или что?
Are you совсем tam ohueli?

Виртуальную машину лучше делай свою.
Аноним 02/08/23 Срд 01:36:47 #354 №2790947 
>>2790934
Что тупого в написании своего ассемблера intel?
Аноним 02/08/23 Срд 10:29:50 #355 №2791063 
>>2790932
Смотря насколько ты готов заморочиться

Если хочешь сделать более-менее нормальный ассемблер с константами, макросами, структурами и прочим, то дрочи парсер.
Книга с драконом или какие-нибудь статьи про парсеры/лексеры для языка на котором ты будешь делать ассемблер.

Для генерации кода лучше начинать с ассемблера для intel 8086. 16-битного. Делай com-файлы, чтобы не пердолиться с линковкой.

http://matthieu.benoit.free.fr/cross/data_sheets/8086_family_Users_Manual.pdf - таблицы с инструкциями и опкодами

https://gist.github.com/seanjensengrey/f971c20d05d4d0efc0781f2f3c0353da - некоторые правила кодирования

Посмотри на гитхабе или еще где-нибудь готовые или полу-готовые ассемблеры. Там попадаются интересные шизопроекты, например ассемблер на bat-файлах https://github.com/mniip/BOOTSTRA/tree/master/BATAS
Аноним 02/08/23 Срд 11:05:47 #356 №2791100 
>>2790947
Ну нахуя свой ассемблер? Господи, ну нахуя?
Аноним 02/08/23 Срд 11:49:21 #357 №2791132 
>>2791100
Хочу написать полиморфный ассемблер, который на этапе компиляции вируса будет разбавлять код мусорными рандомизированными инструкциями.
Аноним 02/08/23 Срд 11:51:50 #358 №2791137 
>>2791132
Это технологии 80-90-х, сейчас это всё уже давно не работает.
Аноним 02/08/23 Срд 12:01:01 #359 №2791147 
>>2791132
Полиморфный вирус генерирует декриптор в рантайме, причем здесь этап компиляции? Тебе движок писать надо, а не ассемблер.
Аноним 02/08/23 Срд 12:38:03 #360 №2791200 
>>2791147
Какой декриптор? Там просто мусор, разбавляющий реальный код и не влияющий на его выполнение. Это делали, чтобы не палиться по сигнатурам.
Аноним 02/08/23 Срд 12:59:09 #361 №2791232 
>>2791200
Ты уверен, что не путаешь полиморф с метаморфом? У полиморфа вирусное тело тупо шифруется и все. А дальше добавляется код расшифровщика тела вируса - декриптор - сгенерированный полиморфным движком под конкретную копию вируса. В него-то и засовываются мусорные инструкции, а не в тело вируса.
Аноним 02/08/23 Срд 14:33:45 #362 №2791399 
>>2791137
А какие технологии сейчас актуальны в компьютерной безопасности?
Аноним 02/08/23 Срд 14:50:42 #363 №2791432 
>>2791399
Ты сначала освой эти дедовские технологии, а потом, мб, кто-то из тихого дома сам до тебя достучиться, если увидят в тебе потенциал.
Аноним 03/08/23 Чтв 02:16:29 #364 №2792082 
Ответственность за действия со знаковыми/беззнаковыми переменными всегда лежит на программисте?
Аноним 03/08/23 Чтв 03:39:49 #365 №2792100 
>>2787801
Сходочку милых надо
Аноним 03/08/23 Чтв 19:29:04 #366 №2793080 
>>2792082
>>Ответственность за действия со знаковыми/беззнаковыми переменными всегда лежит на программисте?
юрист вошёл в хату
Аноним 08/08/23 Втр 13:59:19 #367 №2798257 
Решил навестить сайт дядюшки Пирогова (http://asm.shadrinsk.net) спустя много лет, однако потерпел фиаско. Есть какая-нибудь инфа по его сайту? Переехал на другой домен? Жив ли он вообще?
Аноним 08/08/23 Втр 14:22:17 #368 №2798282 
>>2798257
У меня жив только через ВыПыЭн
Аноним 08/08/23 Втр 17:36:32 #369 №2798490 
>>2790932
Куришь описание самого простого процессора, вроде c18. Пишешь цикол, читающий строку за строкой. Сравниваешь начало строки с названиями инструкций. Сравниваешь остаток строки с операндами. Пишешь код в текущую ячейку массива. Потом добавляешь метки. Метку и ее адрес надо хранить в словарике. Потом решаешь проблему ссылок на неопределенные метки, это довольно просто.
Аноним 11/08/23 Птн 18:06:00 #370 №2802470 
Аноны, посоветуйте, пожалуйста, хороший дебаггер под линукс, а то я чёт сейчас разочаровался в Cutter на основе radare2, потому что он не может в отображение регистров, которые используются в simd инструкциях. Вобщем, юзал ddd, sasm, edb и Cutter (который очень крутой для дебага, дизассембла, и т.д., но чёт сейчас прям руки опустились, когда не смог настроить его на отображение xmm и mxcsr регистров, бред какой-то, такой мощный функционал, а в отображение всех регистров не может).
Аноним 17/08/23 Чтв 12:57:29 #371 №2809219 
1.png
str1.png
str2.png
>>2790304
Понемногу проясняется, анон.
Оказывается, в Питоне нет переменных, там создаются объекты с несколькими полями: тип переменной само значение переменной и количество ссылок на этот объект.
2 - это, наверное, тип - строка. Где же тогда количество ссылок?
Аноним 17/08/23 Чтв 13:23:44 #372 №2809258 
>>2809219
>>Оказывается, в Питоне нет переменных, там создаются объекты с несколькими полями: тип переменной само значение переменной и количество ссылок на этот объект.
С подключением. Это знают все, кто на нём программируют, потому что они читали мануал.
Аноним 17/08/23 Чтв 13:32:08 #373 №2809270 
>>2809258
Я не читал. Я просто написал одну строчку и хотел посмотреть, как выполняется код. Был слегка ошарашен.
Аноним 17/08/23 Чтв 13:46:52 #374 №2809296 
Но пока так и не нашел, где и когда создаются эти объекты. Там тысячи инструкций, чтобы напечатать одну строку.
Аноним 17/08/23 Чтв 14:20:38 #375 №2809356 
>>2809296
Ты хоть почитал, как это всё работает? Отдельный парсер и коньпелятор берут текст скрипта, пережевывают его и висирают говно, которое потом жует вм. Т.е. ты трассируешь саму вм, которая выполняет говно и видешь её стейт. В этом нет никакого смысла. Тем более, что исходники открыты.
Аноним 17/08/23 Чтв 15:04:41 #376 №2809448 
>>2809356
Я просто хочу видеть, как работает код. Например, вот в куче выделяется память, вот туда помещается строка, вот в стек помещается адрес строки и вызывается процедура и так далее. С С++ до этого было абсолютно наглядно. Здесь я нихера не понимаю, что происходит. Где появляется это "говно" лол? Как оно выполняется? Ты прав, анон, я ничего не читал, поскольку не программист. Потихоньку читаю, когда есть свободное время.
Аноним 17/08/23 Чтв 15:57:11 #377 №2809519 
>>2809448
Это конечный автомат, который выполняет байт-код. Он одинаковый для всех скриптов, меняется только байт-код, который и есть результат переваривания скрипта.
Можно просто развернуть его обратно в читабельный формат, а не трассировать исполнителя.
Аноним 17/08/23 Чтв 16:23:13 #378 №2809555 
>>2809519
Но ведь, наверное, можно этот байт-код как-то выцепить, чтобы отреверсить в Иде
Аноним 17/08/23 Чтв 16:28:45 #379 №2809565 
>>2809555
Для этого есть уже готовые тулзы, которые умеют разворачивать его, как тот же IL для дотнета.
Аноним 17/08/23 Чтв 16:43:42 #380 №2809577 
>>2809565
Что такое IL?
Аноним 17/08/23 Чтв 16:45:49 #381 №2809578 
>>2809577
Примерно та же хуйня для платформы .NET в которую конпелируется дохуя языков.
https://ru.wikipedia.org/wiki/Common_Intermediate_Language
Аноним 17/08/23 Чтв 16:48:58 #382 №2809580 
2023-08-17 16-46-10.png
Если хотите получить питоновский байткод в виде этакого ассемблера, то юзайте модуль dis

Суёте этому модулю любую функцию и получаете распечаточку, сразу, быстро и без головняка.
Аноним 17/08/23 Чтв 16:50:11 #383 №2809582 
>>2809580
https://docs.python.org/3/library/dis.html
забыл приложить ссылку
Аноним 17/08/23 Чтв 16:53:19 #384 №2809586 
>>2809270
В питоне вообще всё объекты. Держу в курсе.
Аноним 17/08/23 Чтв 17:25:14 #385 №2809640 
>>2809580
Да я игрался с этим, как-то не то. Ведь интересно отреверсить готовый exe-файл, кет-то написанный на питоне. Это походу непростая задача.

Скомпилировал два файла, в которых просто разные строки. Сравнил. Разница всего-лишь в двух байтах. Вот как это работает?
Аноним 17/08/23 Чтв 17:25:48 #386 №2809641 
1.png
>>2809640
Аноним 17/08/23 Чтв 18:09:56 #387 №2809702 
>>2809641
Ты бы хоть показал что за строки. Это во-первых.
Во-вторых, скрипт может храниться в сжатом виде.
Аноним 17/08/23 Чтв 18:13:46 #388 №2809708 
>>2809640
Да это пиздец тупая задача. Никто бы не стал заниматься тем, чем ты занимаешься имея на руках исходники.
Обычно такой хуйней занимаются хакеры, чтобы снять виртулку защиты от копирования с видеоигры. Там от этого хоть какой-то толк. А тут ты только будешь переоткрывать то, что в документации написано на самом видном месте. Смысл?
Вообще рекомендую залипнуть на всякие crackme. И полезней, и интересней будет.
Аноним 18/08/23 Птн 07:07:57 #389 №2810149 
Почему тред мертв? Я думал на дваче дохуя хакеров. Ну как минимум кто-то пилит кряки/моды к играм или какие-нибудь читы к танчикам.
Аноним 18/08/23 Птн 10:27:07 #390 №2810269 
784130af398776bf99b3e84e6c16eea1.jpg
Какой, нахуй-блядь, питухон в моём ASM-треде? А ну уёбывайте отсюда нахуй в свой петушатник!!!11
Аноним 18/08/23 Птн 11:34:06 #391 №2810355 
>>2810269
Хули ты подорвался, тут обсуждают кишки питона
Аноним 18/08/23 Птн 13:25:11 #392 №2810468 
>>2810355
двачую
Аноним 18/08/23 Птн 13:25:52 #393 №2810469 
>>2810149
Есть как минимум специализированные ресурсы. А треды чисто для новичков.
Аноним 18/08/23 Птн 16:18:23 #394 №2810765 
>>2810469
Как будто крякеров новичков не бывает. Не все же денуво ломают. А на ресурсах сидят ебнутые быдланы (рунет), либо полуграмотные индусы (англонет), двачеров я там не обнаружил.
Аноним 19/08/23 Суб 10:02:41 #395 №2811637 
>>2810355
>>2810468
Потому что кишки питухона надо обсуждать в треде про компоновщики и загрузчики, которые и создают эту питухонскую "магию".
Аноним 19/08/23 Суб 10:08:51 #396 №2811642 
>>2811637
Я здесь лучше обсудил бы устройство этих линкеров и лоадеров, потому что они как раз и робят на уровне асма, оперируя адресами.
Аноним 22/08/23 Втр 21:48:51 #397 №2815766 
>>2425757 (OP)
https://fullstackreverser.com/posts/Become-a-Full-Stack-Reverser/
Насколько хороша эта дорожная карта?
Аноним 22/08/23 Втр 23:21:55 #398 №2815822 
что значит
>mov (%r14,%r15,1),%rax
Что тут делают скобки?
Аноним 23/08/23 Срд 01:34:33 #399 №2815870 
>>2815766
Она пиздата. Дерзай.
Аноним 23/08/23 Срд 21:40:08 #400 №2816740 
>>2815822

https://en.wikibooks.org/wiki/X86_Assembly/GNU_assembly_syntax

mov (%r14,%r15,1),%rax
это типа rax = *(r14 + r15)
Аноним 23/08/23 Срд 23:14:29 #401 №2816816 
>>2816740
Спасибо за хорошую ссылку
Аноним 24/08/23 Чтв 01:13:27 #402 №2816846 
>>2816816
Но ты ведь сам мог загуглить.
мимокрок
Аноним 24/08/23 Чтв 01:27:30 #403 №2816848 
>>2816846
нашёл бы это - не стал бы сюда писатьЗАКРОЙ РОТ ТВАРЬ
Аноним 24/08/23 Чтв 01:28:26 #404 №2816849 
Извините, коллеги. Вырвалось.
Аноним 25/08/23 Птн 18:28:21 #405 №2818478 
>>2815870
Это ирония?
Аноним 25/08/23 Птн 20:03:41 #406 №2818651 
Сап, не особо надеюсь на ответ, но что уж, чудеса случаются (нет).
Почему в стек трейсе андроида (логкат) после краша в регистрах какой-то рандом, не имеющий отношения к моему приложению? Дальше идет бектрейс, там вроде бы нормальные адреса, но сверху какой-то рандом.
Аноним 25/08/23 Птн 20:48:07 #407 №2818694 
>>2818478
Пробежался быстро, но увидел много годных вещей.
Я сам давно хочу разреверсить Conflict: Desert Storm, ибо это моя первая игра на ПК.
Но хуй там, времени нет, сейчас читаю книги по сетям и TCP/IP, обходы внуренних и внешних блокировок, пишу сетевое приложение... Короче, времени нет.

>>2818651
Повертел несколько вариантов в голове, но они не подошли по логике ситуации. Действительно, хуй его знает. Желаю скорейшей разгадки.
Аноним 25/08/23 Птн 20:51:54 #408 №2818697 
>>2818478
только если игрушку реверситЬ, то надо почитать книги по той версии DirectX, что была на момент выхода. Да и вообще в 3D шарить немножк.
Аноним 27/08/23 Вск 03:42:07 #409 №2819740 
Чему я научился за время существования треда:
1 Полностью расковырял Valkyrie Profile для перевода, написал инструментарий, написал архиватор который делает архивы с указанным размером.
2 Могу делать с локальными файлами всё что угодно, уже пригодилось на работе.
3 Написал парсер с авторизацей(просто подставлешь куку и парсишь)
4 Могу в OpenGL, тут уже больше геометрия рулит. Этим сейчас буду заниматься.
Аноним 27/08/23 Вск 03:44:39 #410 №2819743 
Забыл - фасм форева
Аноним 27/08/23 Вск 23:38:53 #411 №2820600 
>>2819740
>>Могу в OpenGL, тут уже больше геометрия рулит. Этим сейчас буду заниматься.
>>тут уже больше геометрия рулит
и линейная алгебра. Геометрия, причём проективная, там разве что по поводу проецирования 3D мира на 2D плоскость для показа на экране.
Аноним 28/08/23 Пнд 10:49:16 #412 №2820769 
Безымянный.png
Как происходит попадание в обозначенные процедуры, если перед ними стоят безусловные джампы?
Аноним 28/08/23 Пнд 11:09:55 #413 №2820790 
>>2820769
Статический анализ/дизассемблер - не панацея.
Аноним 28/08/23 Пнд 11:42:05 #414 №2820808 
>>2820769
Ты же самое интересное обрезал. Не видно куда прыгает jmp short

Есть специальные техники для шелкодов, может это как раз твой случай

https://marcosvalle.github.io/osce/2018/05/06/JMP-CALL-POP-technique.html
Аноним 28/08/23 Пнд 13:32:51 #415 №2820960 
Безымянный.png
>>2820808
Аноним 28/08/23 Пнд 20:26:43 #416 №2821373 
>>2820960
Ты точно знаешь что попадание в процедуры происходит?
Аноним 28/08/23 Пнд 20:45:04 #417 №2821381 
image.png
>>2820769
Если попадание и есть, то x64dbg показал бы это сразу нарисовав рядом стрелочку как в пикриле слева.

Внеси в свой инструментарий новые инструменты и не гадай.
Аноним 28/08/23 Пнд 22:08:36 #418 №2821475 
>>2810469
Подскажи, пожалуйста, специализированные ресурсы.
Аноним 28/08/23 Пнд 22:12:13 #419 №2821482 
>>2821475
Нафига тебе ресурсы?
Просто скачай эту прогу (x64dbg, она бесплатная), и открой в ней экзешник, который ты ковыряешь. Она сама декомпилирует и всё. Там русский язык есть. Правда, чтобы что-то увидеть надо точки останова поставить в настройках, типа "на старте". и ещё там есть "при загрузке dll" и прочие. Русский язык есть, разберёшься. Стрелочки о переходах показываются сразу и без выставления галочек. Желаю приятного дизассемблирования.
Аноним 28/08/23 Пнд 22:12:49 #420 №2821483 
>>2821475
>>2821482
если в гугле забанили - https://x64dbg.com/
Аноним 28/08/23 Пнд 22:13:56 #421 №2821485 
>>2821482
Я через IDA pro пытаюсь поймать адрес нити в одной новой игре, там адреса каждый раз меняютсянет, не делаю читы.
Пытался отследить функцию, которая её меняет, поставив debug trace - нихуя не понятно.
Хотелось бы спросить у знающих людей что делать конкретно в моей ситуации.
Аноним 28/08/23 Пнд 22:14:51 #422 №2821490 
>>2821485
а, ну тут я тебе уже не помогу.
Аноним 28/08/23 Пнд 22:16:12 #423 №2821492 
>>2821490
так я специализированные ресурсы просил
Аноним 28/08/23 Пнд 22:19:24 #424 №2821496 
>>2821492
Походу тебе несколько лет придётся втыкать в базу, а потом уже через год легко сообразишь как тебе найти твой адрес. Может даже найдёшь его весьма экстравагантным способом, потому что будешь больше знать тупо, пушта можно что-то искать в лоб, а можно исхитряясь, зная базу.

Короче, удачи. Насчёт специализированных материалов - книги Криса Касперски в помощь. Ещё в книгах бывают списки использованной литературы - её тоже можно читать.
Аноним 28/08/23 Пнд 22:21:11 #425 №2821497 
>>2821492
exelab вроде есть, правда на него ходить сейчас только через vpn
Аноним 29/08/23 Втр 09:23:27 #426 №2821701 
>>2821373
По идее должно происходить. Я шел с конца: выводе строки у вас триал версия и дошел до этих вызовов.
>>2821381
Спасибо, анон, попробую. Похоже на ollydbg.
Аноним 29/08/23 Втр 09:24:26 #427 №2821702 
Посоветуйте книги про то, как работают современные процы. Что содержит микрокод, как аллокация регистров происходит, как проц режимы переключает как работают кеши данных и инструкций и т.д.
Аноним 29/08/23 Втр 18:14:52 #428 №2822328 
>>2821702
Архитектура компьютера Таненбаума. А потом многотомные талмуды от Intel и AMD или что там
Аноним 29/08/23 Втр 18:16:35 #429 №2822330 
2023-08-29 18-13-22.png
>>2822328
А талмуды как-то вот так называются. Но сейчас, чтобы зайти по этим страницам, нужен VPN
Аноним 30/08/23 Срд 16:21:06 #430 №2823429 
>>2822330
https://www.felixcloutier.com/x86/
в шапке ссылка
Аноним 30/08/23 Срд 19:55:37 #431 №2823797 
>>2823429
Нет, кажись, в самих талмудах больше разной инфы, а не просто подробное
перечисление команд.

Твоя ссылка в толк будет когда хотя бы раз все талмуды пробежал глазами.
Аноним 30/08/23 Срд 20:37:06 #432 №2823850 
ATTENTION.png
>>2823797
на это кликнуть не пробовал? загрузится свежий PDF с мануалом интела
Аноним 30/08/23 Срд 20:41:16 #433 №2823855 
>>2823850
А, ну да.
Это другое дело.
Все талмуды в одной PDF-ке, годнота.
Аноним 30/08/23 Срд 20:59:19 #434 №2823879 
>>2823855
Кстати, рекомендую также читать X86-спецификации от AMD. Мне гораздо больше нравится их описание системы команд в общем. Стиль более литературный. Читается интереснее.
Аноним 01/09/23 Птн 11:55:19 #435 №2825640 
Screenshot429.jpg
>>2820600
Придётся разбираться с плавающей запятой.
Аноним 01/09/23 Птн 22:32:44 #436 №2826447 
>>2825640
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
https://floating-point-gui.de/

рекомендую ещё вот ета всё прочитать
Аноним 02/09/23 Суб 07:52:19 #437 №2826561 
2023-09-02 07-47-05.png
>>2826447
дополнение

Для въезжания в 3D, матрицы там, вектора, кривые - рекомедую эту книгу. Не надо смотреть на OpenGL в названии, тут главную роль играет слово Mathematical. DirectX то же самое, просто функции API называются по-другому.
Аноним 02/09/23 Суб 12:01:23 #438 №2826676 
>>2826447
>>2826561
Спасибо, анон
Аноним 03/09/23 Вск 05:52:45 #439 №2827426 
Какие есть приёмы модификации кода, чтобы не срабатывал антивирус на простую программу? Надоело уже.
Аноним 03/09/23 Вск 11:20:16 #440 №2827553 
>>2827426
никакие, программа на асме - это всё, сразу сто детектов, гроб гроб кладбище и далее по списку.
не хочешь, чтобы антивиндусы ругались на твою простую программу - пиши на C#
Аноним 03/09/23 Вск 13:21:27 #441 №2827670 
>>2827553
Так и есть. Любое отклонение компоновки исполнимого модуля от - высранной одним из популярных компиляторов, распознаётся как вирусная сигнатура . До чего мы докатились, мля!
Аноним 03/09/23 Вск 18:34:51 #442 №2827940 
>>2827670
>>Любое отклонение компоновки исполнимого модуля от - высранной одним из популярных компиляторов, распознаётся как вирусная сигнатура
вот ета лал
прихуел когда прочитал
Аноним 03/09/23 Вск 19:18:12 #443 №2827964 
>>2827426
А нельзя в список доверенных добавить или как?
Или типа у твоих клиентов антивирусы распознают твою прогу как вирус и ты уже не знаешь что делать?
Аноним 04/09/23 Пнд 12:25:08 #444 №2828544 
>>2827964
>Или типа у твоих клиентов антивирусы распознают твою прогу как вирус и ты уже не знаешь что делать?
Типа того. Ну и как бы нахуй надо, доверие же сразу падает, приходится доказывать что не верблюд. Они же нихуя не понимают, как им объяснить.
Аноним 04/09/23 Пнд 13:37:31 #445 №2828674 
>>2828544
ну шо, надо будет разреверсить на асме и откомпилить любым компилятором. В main прописать переход на точку входа. Только так походу. Надеюсь исходная прога адресно независима и её можно вставлять хоть куда.
Аноним 06/09/23 Срд 13:04:19 #446 №2830882 
Mira-01.jpg
example-asm.png
>>2425761
Попробовав программировать на ассемблере эльбруса (ну то есть не прям на ассемблере, а используя команды вместо сишных операторов) получил по итогу замедление по сравнению с сишным кодом в 4ре раза.

Разгадка проста - я не учитывал длинну конвеера, как мое раздутое говно в него и кэш помещается и прочее межпроцедурное взаимодействие с учетом инлайна, я просто тупо оптимизировал код отдельных функций с циклами и получил хуйню, даже не смотря на то что обмазывался весь simd -ами и кучей регистров, получил медленную хуйню. Возможно ещё использование самого simd наоборот добавляло даже некоторые накладные расходы и даже оверхэд.


В общем если из интелов и армов убрать эти ваши фронтенды которые тупо бъют ваши команды на микроопы и разруливают вопросики с подкачкой кода, алокацией регистров, конвеером и задержками в рантайме, то вот это будет программирование на языке машины (ассемблере), а так это как и в моем случае тупо программирование в коммандах.
Просто в моем случае всем перечисленным занимался компилятор (дай бог ему здоровья что он несмотря на асм-вставки все видит и понимает), а у вас микрокод в процессоре.
Аноним 06/09/23 Срд 15:44:38 #447 №2831089 
>>2830882
>языке машины (ассемблере), а так это как и в моем случае тупо программирование в коммандах
Что за бредни?
Ассемблер - не язык машины. Да и нет никакого "языка машины". Есть набор команд (это не язык). Программа состоит из инструкций (команды кодированные с операндами) и прочих (неисполнимых) кодов. Как ты намереваешься программировать на каком-то там "языке машины", не используя архитектурные команды?

>Просто в моем случае всем перечисленным занимался компилятор (дай бог ему здоровья что он несмотря на асм-вставки все видит и понимает), а у вас микрокод в процессоре.
Видимо, такую галиматью себе мыслят все пишущие на ЯВУ. Земля им пухом.
Аноним 06/09/23 Срд 16:11:20 #448 №2831119 
>>2831089
>нет никакого "языка машины"
А как тогда общаются терминаторы?
Аноним 06/09/23 Срд 17:09:47 #449 №2831220 
editedimage(6).jpg
>>2831089
Ну во первых язык у машины есть (маш.код).
И даже на эльбрусе машкод не исполняется напрямую, а проходит через фронтенд, просто этот фронтенд являет собой буквально первые стадии конвеера на которых декодируется только сам бандл (широкую команду), подготавливаются операнды вычисляются адреса перехода, а команды в нее запиханные по сути уже микроопы интела.

У интелов и армов (уровня эпл м1) фронтенд полкристала занимает, потому что им мало того что надо дополнить входной код дополнительными хуевинами (в интеле еще и разбить сами x86 команды на простые микроопы) так еще и перестраивать последовательность исполнения чтотбы конвеер не пустовал.
И конечно переалоцировать регистры с "архитектурных" (как интел их называет) на физические.

В эльбрусах все это вынесено в сам ассемблер/машкод, что с одной стороны дает полный контроль над железом компилятору и программисту, а с другой лишает некоторых рантайм-возможностей. Ну и руками на ассемблере (именно не в командах а в ассемблере с распредилением регистров) ничего качественно хорошего уже не напишешь.
Аноним 06/09/23 Срд 17:11:43 #450 №2831225 
>>2831220
>полкристала
Ой бля, пол ядра конечно же.
Аноним 06/09/23 Срд 18:12:42 #451 №2831363 
>>2831220
>Ну во первых язык у машины есть (маш.код).
Я же уже тебе написал. Это не язык. Чем быстрее ты отбросишь эту старую протухшую метафору о каком-то там "машинном языке", тем быстрее начнёшь понимать машину.

>ассемблер/машкод
Ну и зачем ты их путаешь? Ассемблер не является машкодом. ВООБЩЕ НИКОГДА.

>машкод не исполняется напрямую
А должен?

>ничего качественно хорошего уже не напишешь
Говоришь за себя.
Аноним 06/09/23 Срд 20:10:59 #452 №2831539 
IMG20230906220422.jpg
>>2831363
Тебя судя по всему термины и "правильные значения" ебут больше чем какие то ассемблеры и архитектуры.

Туда ли ты зашел, тролль-гуманитарий? Тут тебя никто развлекать не станет, иди в бэ.
Аноним 19/09/23 Втр 05:16:32 #453 №2847459 
Screen Shot 2023-09-19 at 4.29.14 AM.png
Screen Shot 2023-09-19 at 4.29.57 AM.png
Реверсач, я все волосы на жопе выдрал. Может ты подскажешь. Короче, смотрю на ютубчике ролик с разбором PE с нуля. Чел загружает в IDA экзешник как бинарный файл и пошагово создает структуры, входящие в заголовок. На первом скрине то, что у него получается после создания IMAGE_NT_HEADERS. На втором - то, что получается у меня. Вопрос: почему у него IDA показывает адрес каждого поля созданной структуры, а мне для всех полей показывает один и тот же адрес, соответствующий началу структуры? Как сделать так же, как у него?
Аноним 19/09/23 Втр 09:19:23 #454 №2847520 
>>2847459
Ссылку для начала
Аноним 19/09/23 Втр 10:27:38 #455 №2847577 
>>2830882
Где ты достал асм Эльбруса и сам Эльбрус?
Аноним 19/09/23 Втр 10:59:35 #456 №2847593 
>>2847459
Точно не знаю, но у меня есть предположение что,
может это потому что чел задавал каждое поле по отдельности, не объявляя одну большую структур. А ты сделал как раз одну общую структуру с полями, поэтому отображается ее адрес начала.
Аноним 23/09/23 Суб 09:57:53 #457 №2852133 
Кто-нибудь пытался писать эмулятор х86?
Аноним 23/09/23 Суб 15:11:38 #458 №2852406 
>>2425757 (OP)
А где тред про реверсинг?
Аноним 24/09/23 Вск 04:18:17 #459 №2852986 
>>2852406
Здесь.
Аноним 24/09/23 Вск 13:59:24 #460 №2853349 
>>2821702
>Посоветуйте книги про то, как работают современные процы
База: Паттерсон Хенесси Количественный подход, Жан Поль Шень, Лапасти Modern Processor Design: Fundamentals of Superscalar Processors
>микрокод
Микрокод - это прошлое, сынуль.
Аноним 24/09/23 Вск 17:34:53 #461 №2853568 
>>2853349
>Микрокод - это прошлое, сынуль.
Ну видимо процессор по воле аллаха инструкции декодирует и обрабатывает.
Аноним 24/09/23 Вск 21:36:20 #462 №2853974 
>>2853568
Щас бы через дополнительную память/плм делать декодер.
Аноним 25/09/23 Пнд 07:32:49 #463 №2854288 
>>2425757 (OP)
блять, вы куда шапку снесли нахуй мудачьё
Аноним 25/09/23 Пнд 15:54:02 #464 №2854825 
>>2854288
Действительно, ОП - хуй, но я сейчас принесу тебе шапку.
Аноним 25/09/23 Пнд 15:54:31 #465 №2854827 
>>2854288
В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (RE).

Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда.
Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.

Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.

Книги по RE:
Денис Юричев: "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна!
Прямая ссылка - https://yurichev.org/b564f46f1c207b2dbc84a2bd4a41ed4c/
Рикардо Нарваха: Введение в реверсинг с нуля, используя IDA PRO https://yutewiyof.gitbook.io/intro-rev-ida-pro/
Введение в крэкинг с помощью OllyDbg https://backoftut.gitbook.io/intro-cracking-with-ollydbg/

https://mega.nz/#!Bc9VVAYC!Vk6CFlW6VIoskLNgDKXbsL6FacDQeOKe6LX92wNicKY Нарваха практический курс по дебагингу
https://www.goodreads.com/shelf/show/reverse-engineering - список книг

Сайты по RE:
http://wiki.yobi.be/wiki/Reverse-Engineering
https://www.reddit.com/r/ReverseEngineering/comments/hg0fx/a_modest_proposal_absolutely_no_babies_involved/
http://www.program-transformation.org/Transform/ReengineeringWiki
http://blog.livedoor.jp/blackwingcat/
https://yurichev.com/blog/
http://wiki.xentax.com/index.php/DGTEFF
https://exelab.ru/

Инструменты для RE:
Дизассемблеры:
1) IDA Pro Torrent Edition 7.2 | 7.0 | 6.8 на выбор. Иногда ограничения версий x86/x64, патчинг, вылеты прилагаются
2) IDA Freeware 7.0 - бесплатная для некоммерческого использования Важные функции/процы/форматы не завезли, саппорт все обращения ксорит побайтово.
3) IDA Home - тем, кто реверсит для хобби 365$ в год, ага. Умеет на выбор PC|ARM|MIPS, обычные и х64. Завезли IDAPython, но забыли Decompiler.
4) Ghidra - главный конкурент IDA Pro, разработка NSA под свободной лицензией. Тормозной Java UI, гипотетические звездно-полосатые анальные зонды в комплекте.
5) Radare 2 | Cutter - консольный + гуй на Qt дизассемблер. Умеет в Ghidra decompiler. Предположительно нужен только клиническим, не умеющим в скачивания торрентов, пользователям альтернативных ОС.
6) Hiew - Hex-редактор и легкий x86|64|arm дизассемблер за копейки. AV-ресечеры текут, вирьмейкеры боятся, поклонники st. Криса грят малаца.
7) Остальное

Отладчики:
1) x64dbg - х86/64 юзерспейс виндовый отладчик с открытым кодом не Olly же в 2020, верно?;
2) WinDbg - родной виндовый дебаггер от MS 32/64 битные приложения, драйвера, анализа аварийных дампов - это все к нему;

Все книги и статьи Криса Касперски (R.I.P.)
https://yadi.sk/d/CxzdM1wyea4WP
https://rutracker.org/forum/viewtopic.php?t=5375505
https://rutracker.org/forum/viewtopic.php?t=272818

Книги по ассемблеру:
"Архитектура компьютера" Э. Таненбаум - https://www.libgen.is
Юров В.И: Assembler http://booksdescr.org/item/index.php?md5=73957AEFEADCB7F0C112DCAED165FEB6
С.В. Зубков: Assembler. Язык неограниченных возможностей.
Randall Hyde: The Art of Assembly Language http://booksdescr.org/item/index.php?md5=9C0F88DC623FCE96A4F5B901ADCE95D3

Сайты по ассемблеру:
Замена почившему wasm.ru- https://wasm.in/ , архив старого сайта https://rutracker.org/forum/viewtopic.php?t=407571 или восстановленный https://vxlab.info/wasm/index.php.htm
https://www.unknowncheats.me/wiki/Assembly
http://asmworld.ru/
https://software.intel.com/en-us/articles/intel-sdm
http://www.nasm.us/doc/
https://sourceware.org/binutils/docs/as/index.html#Top
https://msdn.microsoft.com/en-us/library/afzk3475.aspx
https://conspectuses.blogspot.com/2019/03/fasmg.html

Дизассемблер онлайн:
https://onlinedisassembler.com/

Сборник компиляторов онлайн:
https://godbolt.org/

Для ковыряющих винду и софт под неё, сайты с описанием структур со смещениями и разными версиями оных:
http://msdn.mirt.net/
http://terminus.rewolf.pl/terminus/
http://geoffchappell.com/
«Внутреннее устройство Windows» интересующего издания.

Документация Intel:
https://software.intel.com/en-us/articles/intel-sdm
Документация AMD:
https://developer.amd.com/resources/developer-guides-manuals/
Документация Arm:
https://developer.arm.com/documentation/

Разное:
Michael Abrash's Graphics Programming Black Book Special Edition http://www.phatcode.net/res/224/files/html/index.html
http://www.phatcode.net/res/224/files/html/index.html
https://www.agner.org/optimize/
http://booksdescr.org/item/index.php?md5=5D0F6DBC1410E10BC489167AFE8192DF
https://www.cs.cmu.edu/~ralf/files.html
https://www.sandpile.org/
http://ref.x86asm.net/index.html
https://pnx.tf/files/x86_opcode_structure_and_instruction_overview.png
http://www.jegerlehner.ch/intel/

Предыдущие:
№9 https://2ch.hk/pr/arch/2019-11-11/res/1439555.html
№10 https://2ch.hk/pr/arch/2020-03-11/res/1499956.html
№11 https://arhivach.net/thread/560997/
№12 https://2ch.hk/pr/res/1748635.html https://arhivach.net/thread/594187/
№13 https://2ch.pm/pr/res/1837856.html
Аноним 25/09/23 Пнд 16:08:00 #466 №2854843 
>>2854827
Это старая, давно протухшая шапка.
Аноним 25/09/23 Пнд 19:05:01 #467 №2855058 
>>2854843
лол, что там два года могло протухнуть? разве что ты
Аноним 26/09/23 Втр 08:37:27 #468 №2855497 
>>2853349
> Микрокод - это прошлое, сынуль.
Хуй86 в целом прошлое, но оно всегда будет с тобой. И микрокод в отдельных его командах неизбежен.
Аноним 27/09/23 Срд 01:49:02 #469 №2856906 
>>2855497
Что такое микрокод в твоей голове?
Аноним 27/09/23 Срд 20:39:06 #470 №2857978 
>>2847577
По асму документация есть
К самим эльбрусам дают удаленный доступ. Вот на этом сайте http://элбрус.рус документация лучше всего оформлена, в ней команды находятся поиском.

Алзо на его голом ассемблере писать не реально, но можно писать на си используя беззнаковые переменные типа uint64_t uint32_t и команды через асмвставки. У них в файле интринсиков есть макросы типа TWO_OPERAND_CMD(op, src, dst)
Можно их использовать вписывая команды. Дело в том что у него сложная алокация регистров которая задается при входе в процедуру и при передаче аргументов, с ней моск не справится лучше доверится компилятору да и расфасовыванием микрокоманд он тоже лучше справится, благо это с ассемблерными вставками работает тоже, то есть он их тоже группирует и раскидывает по широким инструкциям.
Аноним 01/10/23 Вск 15:30:05 #471 №2862101 
Насколько ебатня учить арм на эмуляторе? Я не учил не один
Аноним 09/10/23 Пнд 15:12:15 #472 №2871750 
Суп двощ

С чего стоит начинать изучать MIPS? Поступил в МухГУ, ничего не понимаю, препод не объяснил что и как
Аноним 10/10/23 Втр 20:39:00 #473 №2873751 
>>2748569
Анончик, ты ещё здесь? Я тогда забил хуй на эту лабу, но опять нужно сделать. Ссылка протухла. Помогите. Как сделать эту хуйню?
Аноним 10/10/23 Втр 20:39:58 #474 №2873752 
>>2749359
>>2873751
Аноним 10/10/23 Втр 22:07:06 #475 №2873896 
>>2873751
Нужно на ASM Visual сделать. Аноны, помогите пожалуйста
Аноним 10/10/23 Втр 22:10:02 #476 №2873903 
>>2873896
Я долбоеб, имею в виду на masm
Аноним 25/10/23 Срд 21:40:22 #477 №2894500 
Не знаю где спросить, может тут подойдет. Помню контекст.
Русский. Закончил написание полного курса по информатике для школы. Там 2 или 3 года, каждая в 2 или 3 частях. Новое издание продается, а прошлое выложено у него на сайте..
курс вроде более менее современный, затрагивающий матчасть.
Закончил его полностью вроде относительно недавно.
Может кто по таким вводным вспомнить/опознать автора?)
Аноним 25/10/23 Срд 23:08:27 #478 №2894607 
>>2854827
вот кажется компиляция всех шапок ))
https://conspectuses.blogspot.com/2021/12/blog-post.html
Аноним 26/10/23 Чтв 07:27:42 #479 №2895002 
>>2894500
Ты про Столярова?
Аноним 26/10/23 Чтв 07:55:10 #480 №2895010 
>>2895002
ля, из разряда "не выиграл а проиграл". Он! Спасибо тебе)
Аноним 26/10/23 Чтв 08:30:58 #481 №2895026 
>>2895010
> Он! Спасибо тебе)
Не за что. Просто он у нас такой один.
Аноним 26/10/23 Чтв 20:53:34 #482 №2895846 
>>2895002
ебать он дущный, интересно, как препод он ведет себя так же
Аноним 27/10/23 Птн 21:08:29 #483 №2897002 
IMG20231027230424003.jpg
Ну и чего не робит? Столяров писал, что NASM заменяет то что находится в квадратных скобках на адрес. Адрес - четыре байта. Почему он не хочет записывать в mrk dd адрес метки adr?
Аноним 27/10/23 Птн 21:16:15 #484 №2897009 
>>2897002
А, всё понял. Сама метка adr уже является адресом. Тут скобочки не нужны. Похоже что скобки нужны только для того чтобы в регистры адреса записывать.
Аноним 02/11/23 Чтв 10:51:17 #485 №2903623 
А правда что операторы аськи это боги мира погромирования, которые смотрят с недоступной высоты на всех остальных?
мимо жи.есть холоп
Аноним 08/11/23 Срд 19:11:37 #486 №2912708 
>>2830882
а теперь попробуй так сделать на ia64 и отпишись в треде
Аноним 10/11/23 Птн 15:42:11 #487 №2915680 
>>2830882
>В общем если из интелов и армов убрать эти ваши фронтенды которые тупо бъют ваши команды на микроопы и разруливают вопросики с подкачкой кода, алокацией регистров, конвеером и задержками в рантайме, то вот это будет программирование на языке машины (ассемблере), а так это как и в моем случае тупо программирование в коммандах.
>Просто в моем случае всем перечисленным занимался компилятор (дай бог ему здоровья что он несмотря на асм-вставки все видит и понимает), а у вас микрокод в процессоре.
Зумер-дегенерат не палитсо.
Аноним 10/11/23 Птн 18:12:20 #488 №2916095 
>>2915680
Он очень криво объясняет, но суть понятна, и в общем все так и есть. У Эльбруса действительно фронтенд очень простой, и каждая широкая команда - это фактически то, что приходит на исполнительный модуль. Основная засада в том, что бранчи и простаивания конвейера из-за доступа к памяти предугадать невозможно, и тут OoO процы рулят, потому что могут выполнять другие команды, не дожидаясь данных из памяти, или даже переключиться на другой поток гипертредингом.
Аноним 10/11/23 Птн 18:15:04 #489 №2916103 
>>2903623
Asm — это когда ты тратишь по неделе, чтобы написать Hello World для каждого процессора
Аноним 10/11/23 Птн 18:25:11 #490 №2916129 
>>2916095
Про планирование - это буквально yep_it's_wood.jpg, про остальное кринж.
>>2916103
>Asm — это когда ты тратишь по неделе, чтобы написать Hello World
Есть такая книжка в нескольких томах "Искусство программирования", там все алгоритмы на асме, упражнения с написанием програм требуют в среднем 20М.
Аноним 10/11/23 Птн 19:37:50 #491 №2916277 
>>2916129
>про остальное кринж
Поясни.
Аноним 13/11/23 Пнд 19:18:05 #492 №2920517 
>>2916103
>для каждого процессора
в коде можно написать типа если регистр или инструкция не поддерживается тогда
call функция_без_avx512
?
Аноним 14/11/23 Втр 13:14:03 #493 №2921317 
>>2916277
Да он кукарекнул просто.
Аноним 14/11/23 Втр 15:09:43 #494 №2921580 
>>2847520
Заметил, что исчезла та самая сцена? А куда она делась? Правильно.заметил, уже n месяцев не могу найти реверсеров наверное, не там ищу неплохо бы.
Аноним 14/11/23 Втр 17:05:30 #495 №2921852 
>>2831220
Ну да, я думаю, что просто нужно gcc поставить определённый флаг, и тогда получится. Вообще забей! Я чёт задал вопрос, и только после этого подумал. Здесь проще неуместное желание внимания + отсутствие такта. Такая фантазия может быть желанной и привлекательной для многих парней, но это точно не изображения "абсолютной покорности", потому что она постоянно пропускала мимо ушей призывы покинуть комнату гг + достаточно остро рофлила с его любимых крабов загуглить.
Аноним 14/11/23 Втр 22:47:07 #496 №2922265 
>>2921852
>остро рофлила с его любимых крабов загуглить
Робот заблудился, попал в асм-тред и здесь почувствовал себя в безопасности. Как трогательно
Аноним 15/11/23 Срд 13:50:32 #497 №2922847 
>>2921580
Мне сишнику и крестовику без опыта работы предлагали пойти в дебаггеры и заниматься дизассемблериванием. Я тогда день потратил чтобы понять что нормальных бесплатных дизассемблеров нет и ответил отказом. Сейчас сижу учу ассемблер по видосикам.
Аноним 19/11/23 Вск 08:43:11 #498 №2927621 
Сколько нынче реверсеры получают и насколько они востребованы? Где нибудь есть биржа для такого рода деятельности?
Аноним 20/11/23 Пнд 10:26:48 #499 №2929233 
image.png
image.png
image.png
image.png
Аноны, чёт я ничего не понимаю! Можете объяснить как это работает?

1-й пикрил: отправляю в стек шестнадцатеричное число 0x1122334455667788.

2-й пикрил: в цикле достаю из стека значения и складываю их в rdx, т.е. в первой итерации к rsp прибавляю 7 и получаю первые две единицы числа.

3-й пикрил: во второй итерации к rsp прибавляю 6 и получаю 1122? Почему 1122, а не 22? То, что в rdx могло остаться значение 11 исключается, т.к. в каждой итерации цикла я обнуляю rdx.

4-й пикрил: в третьей я прибавляю пять и получаю 112233? Почему 112233, а не 33?
...
И так до конца цикла, т.е. на последней итерации я прибавляю 0 к rsp и получаю уже всё это число 0x1122334455667788.

Собственно вопрос: как происходит размещение этого числа 0x1122334455667788 в стеке?
Аноним 20/11/23 Пнд 10:57:19 #500 №2929250 
>>2929233
https://en.wikipedia.org/wiki/Endianness
Число будет в прямом порядке.
Аноним 20/11/23 Пнд 11:21:20 #501 №2929280 
>>2929250
Не, меня не порядок размещения интересует, а почему, когда я прибавляю к стеку некоторое смещение, допустим, что к rsp я прибавил 7, и получил 0x11; но, когда я к rsp прибавляю 6, то я получаю не 0х22, а 0х1122.
Аноним 20/11/23 Пнд 11:47:56 #502 №2929309 
image.png
image.png
Всё, аноны! Я разобрался! Нужно просто нужный размер данных брать из стека (пикрил 1). А вообще, смотрите какой прикол (пикрил 2): получается, что, если не указывать размер данных, который нужно взять из стека, то rsp будет указывать на данные до дна стека, который был выделен для программы. Получается, на пикриле 2, что смещение rsp + 6 указывает на 0x1122, которые были запушены с rax, и на остальные 0х334455667788, которые были запушены с rbx.
Аноним 21/11/23 Втр 11:08:16 #503 №2930565 
Хочу начать изучать ассемблер для общего развития. Но не знаю какой изучать. Сижу на линуксе так что MASM отпадает, а вот какой из NASM, FASM или GAS выбрать я хз. Помогите с выбором.
Аноним 21/11/23 Втр 11:28:14 #504 №2930608 
>>2930565
Хз, мб я неправ, но все книги, которые я встречал по асму, и которые также с упором в Линукс, везде употребляется NASM. А вообще без разницы какой асм изучать, ты главное с синтаксисом определись, да и даже это не особо важно, ибо можно привыкнуть и к интеловскому синтаксису, и к AT&T, и GAS, и т.д. Всё это об одном и том же, но не с небольшими отличиями. Так что всё зависит от лит-ры. Для вката тебе подойдёт Ван Гуй, он кодит на NASM в Линуксе.
Аноним 21/11/23 Втр 11:54:12 #505 №2930646 
>>2930608
Спасибо.
Аноним 21/11/23 Втр 12:14:58 #506 №2930688 
>>2930646
Ну, можешь и по этой книге из шапки вкатываться, наверное, она даже круче Ван Гуйа, потому что тут уже современное издание есть:
Assembly Language Step-By-Step - Programming with Linux Jeff Duntemann
Аноним 21/11/23 Втр 15:09:32 #507 №2931053 
>>2930688
С моим пососным знанием английского я не вывезу книгу на нём. Либо читать 3-е издание.
Аноним 21/11/23 Втр 15:12:42 #508 №2931060 
>>2931053
Тогда Ван Гуй!
https://dmkpress.com/catalog/computer/programming/assembler/978-5-97060-929-3/
Аноним 22/11/23 Срд 01:45:23 #509 №2932039 
сап, не могу найти ошибку. учу по https://www.youtube.com/watch?v=l-TJAY0Y6Ug&t=1874s

переписал кажись правильно, прога даже выдаёт ответ "571" но потом ошибка сегментирования сразу. FASM
сам код https://www.ideone.com/Hb6kMK
(там код не запускается)
Аноним 22/11/23 Срд 15:10:13 #510 №2932502 
>>2932039
Мне кажется, что еxit коряво организован. Системный вызов под номером 60 завершает прогу.
Не знаю, как в FASM, но в NASM выход так организовывается:
xor rax, rax
xor rdi, rdi
mov rax, 60
mov rdi, 1
syscall
Аноним 23/11/23 Чтв 18:32:27 #511 №2934077 
Снимок экрана от 2023-11-23 18-27-36.png
>>2932502
ваш вариант ничего не изменил, зато я научился пользоваться SASM это типа иде. Так там заметил что похоже проблема в том что не останавливается вывод символом после окончания строки. Три символа выведены правильно потом похоже читает дальше по памяти, пока не доходит в область закрытую для проги. Мои знания ещё слишком слабы чтобы понять где ошибка
Аноним 23/11/23 Чтв 19:33:40 #512 №2934177 
>>2934077
>ваш вариант ничего не изменил
>mov rdi, 1
Вот тут поправь на ноль, либо лучше вообще эту команду убери. Я чёт вчера лиху дал с единицей. Прога должна вернуть ноль, если нет ошибок.
Ну да, похоже, что он дальше идёт. Хотя, по коду что-то невидно каких-то явных ошибок. Советую тебе в том же SASM продебажить код. И понаблюдай за регистром rcx, мб, из стека какая-то хрень возвращается, возможно, что значение не того регистра возвращает и стека, т.е. либо более ранее, либо более позднее значение.
Аноним 23/11/23 Чтв 20:25:30 #513 №2934274 
>>2934077
>>2934177
У тебя в ф-ции print_char, при выталкивании из стека значения rcx, rcx возвращается неверное значение, точнее оно чередуется, то 10, то 3, т.е. в первый раз выталкивается значение 10, а потом уже 2, как и должно быть после вывода первого символа.
Ты должен знать, что системные вызовы изменяют rcx, и почему-то не всегда тут помогает стек. У меня тоже постоянно гемор с rcx после системных вызовов, поэтому советую значение rcx сохранять в другой регистр (выбирай что-нибудь из r8-r15) перед вызовом системных вызовов. После вызова уже обратно присваиваешь rcx значение из регистра. Либо вообще для счётчика можно использовать другой регистр (но это не есть хорошо, ибо принято в мировом сообществе, что rcx выполняет роль счётчика).
Также в SASM наблюдай за rsp, так как у тебя много вызовов ф-ций, поэтому, под конец проги, стек может съехать, а, если ты его не выравниваешь перед возвратом, то может также произойти Segmentation fault.
Аноним 23/11/23 Чтв 20:33:41 #514 №2934284 
>>2934077
https://pastebin.com/pT4He9W4

Вот в таком варианте всё работает. Я заменил инструкции push rcx и pop rcx, на
до вызова системного вызова
mov r9, rcx
после вызова
mov rcx, r9
Аноним 28/11/23 Втр 19:49:05 #515 №2941416 
kidzonya4.mp4
>>2934077
С помощью GDB продебажь
https://losst.pro/kak-polzovatsya-gdb#3_%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA_%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D1%87%D0%B8%D0%BA%D0%B0
Аноним 29/11/23 Срд 20:51:27 #516 №2943036 
>>2941416
подскажи как добавить исходный код к коду программы ато:

Reading symbols from ./main2-3...
(No debugging symbols found in ./main2-3)
(gdb) step
The program is not being run.
(gdb) backtrace
No stack.
(gdb) b
No default breakpoint address now.
(gdb) run
Starting program: /home/vitumn/asm/cryptofun/main2-3
571
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) b
Breakpoint 1 at 0x0
(gdb) step
Cannot find bounds of current function
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Аноним 30/11/23 Чтв 09:17:05 #517 №2943432 
>>2943036
Зачем тебе этот gdb? Ты шиз, что ли? У тебя же есть SASM в нём и дебажь! В гдб пиздос как неудобно дебажить, особенно когда нужно следить за регистрами!! И особенно, когда ты ничего не знаешь про гдб и только вкатываешься в асм!!! Это пытка, шо пиздос, дебажить в твоём положении асм код в гдб.
Аноним 30/11/23 Чтв 21:39:30 #518 №2944525 
>>2932039
У тебя в функции print_char не в том порядке выталкиваются регистры из стека.
Ты сохраняешь их:
push rax
push rbx
push rcx
push rdx

А потом восстанавливаешь
pop rdx
pop rbx
pop rcx
pop rax

pop rbx и pop rcx поменяй местами и все заработает.
Вообще алгоритм очень замороченый, чуть моск не сломал пока разобрался. И зачем на каждую функцию отдельная секция?
Аноним 01/12/23 Птн 20:09:34 #519 №2945729 
cyberpunk.gif
>>2943036
ты должен добавить флаг компилятора, отвечающий за отладочный режим (-d вроде).
Там, где ты ловишь segfault, находится твой протык.

>>2943432
А чо? Я так свой игровой движ на несколько тыщ строк C++ дебажил, впервые юзая gdb.
Аноним 01/12/23 Птн 20:11:22 #520 №2945731 
изображение.png
А нет, нужен флаг -g
Аноним 01/12/23 Птн 20:30:10 #521 №2945765 
>>2945729
>Я так свой игровой движ на несколько тыщ строк C++ дебажил, впервые юзая gdb.
Ты жоский тип!
Но это разные вещи, когда чел совсем не сечёт в языке программирования, и когда чел пишет уже свой игровой движок.
Аноним 02/12/23 Суб 16:17:42 #522 №2946713 
>>2945765
>Ты жоский тип!
Си, Синьор!
Аноним 03/12/23 Вск 18:27:54 #523 №2948328 
>>2944525
Точно!
Аноним 04/12/23 Пнд 01:14:13 #524 №2949215 
>>2945729
>C++ дебажил
он легко дебажиться в любом идэ, без особых сборок.
А тут на асме во первых синтаксис разный интел или ат ат, во вторых компиляторы разные, я сейчас уже учусь по книжке с интел под виндой, а пытаюсь собрать это на линуксе fasm-ом и gas-ом
Аноним 04/12/23 Пнд 14:06:15 #525 №2949657 
Снимок экрана от 2023-12-04 14-05-16.png
Сейчас сижу адаптирую под gnu assembler
Аноним 04/12/23 Пнд 15:57:17 #526 №2949743 
th-1318706626.jpg
>>2949215
епта, так в линухе gas по умолчанию, как настоящий преемник уникса, юзающий AT&T синтаксис, но который можно поменять на гейский синтаксис то ли в самой .s файле, то ли флагом компилятора.
AT&T-синтаксис по моему норм, я на нём raspberry pi (aarch64/ARM64) кодил. Вполне успешно.
Ладно там компиляторы разные (хотя есть дефолтный gas), но что вы так кипишуете из-за синтаксиса не пынямаю: либо юзай дефолтный, либо пытайся включить нужный.
Йа даже ассемблерные это было проще сделать, чем средствами самого C SIMD функции к крестам приковал.


За жизнь написал ~100 строк asm-кода.
_______Мамкин хацкер.
Аноним 04/12/23 Пнд 15:58:58 #527 №2949745 
Кстати:
Which is better: fasm, nasm, yasm, masm or gasm?
Аноним 06/12/23 Срд 11:37:19 #528 №2952077 
>>2949743
>AT&T-синтаксис
В каждой строчке на два символа больше :-) на доллар и процент. А так gas как будто лучше совместим с си с++.
Аноним 06/12/23 Срд 16:57:27 #529 №2952686 
15307301594500.jpg
>>2952077
>В каждой строчке на два символа больше :-)
зато ЧИТАБЕЛЬНЕЕ
Аноним 06/12/23 Срд 22:09:23 #530 №2953200 
Хакиры, у вас тред тонет.
Собираетесь перекатываться?
Аноним 07/12/23 Чтв 15:41:06 #531 №2953963 
>>2953200
Когда ASM перестанет тонуть в чартах, тогда и перекатим.
Нехер нам тут андеглаунд расшатывать. Тем более когда ссылка на тред в закрепе доски есть.
Аноним 07/12/23 Чтв 15:43:03 #532 №2953966 
cyberpunk.gif
>>2949745
>Which is better: fasm, nasm, yasm, masm or gasm?
???
Аноним 07/12/23 Чтв 20:35:40 #533 №2954471 
изображение(5).png
>>2425757 (OP)
>>2953963
Добавите в шапку этот плейлист https://youtube.com/playlist?list=PLYcYkbu2jlH2dMXtMD3qky3iIgQ5yLDg7&si=ee-iCGPvTYBdIb--
Годно.
Аноним 10/12/23 Вск 13:56:31 #534 №2957685 
Реверсеры могут хорошие деньги зарабатывать?
Аноним 11/12/23 Пнд 10:44:25 #535 №2958725 
>>2957685
Хакеры видеоигр на донатах живут.
Аноним 11/12/23 Пнд 11:08:51 #536 №2958746 
>>2957685
Тебя в гугле забанили? Там полно инфы о всяких багхантерах.
Аноним 11/12/23 Пнд 13:06:27 #537 №2958876 
>>2958746
Точнее, я бы хотел истории от местных анонов услышать. Что ты сразу токсичишь?
На хх видел позиции 400к+, в зарубежных компаниях может и больше.

>>2958725
>Хакеры видеоигр на донатах живут.
>>2958746
>багхантерах
Это все не серьезно.

Не, я имел ввиду серьезную работу в сфере безопасности:
анализ вирусного кода, поиск и исследование уязвимостей и тд.
Аноним 12/12/23 Втр 00:37:45 #538 №2960014 
2SxxRg61iMk.jpg
>>2957685
Смотря в чём хочешь ковыряться.

Из самых прибыльных в ревёрсе направлений - вулн-ресёрч, но вкатиться в него весьма себе трудно. Из плюсов: есть всякие партнёрки, которые сотрудничают с компаниями (zerodium, hackerone), так что тебе не придётся напрямую ебаться с секьюрити отделом той или иной компании. Из минусов: очень утомляет расковыривать ту или иную вулну месяцами (а иногда это может быть и просто баг, к которому не подобраться).

Есть ещё всякие малварные аналитики, что ревёрсят малварь, но это скучно что пиздец, хотя, мб, вкусовщина
Аноним 12/12/23 Втр 04:25:08 #539 №2960042 
>>2960014
>вулн-ресёрч
Вот что-то такого интересно.
Аноним 12/12/23 Втр 04:58:55 #540 №2960045 
dana2.png
>>2960042
Well, тогда держи материал, может заинтересует.

Прям самую базу тебе даст книжка "Хакинг. Искусство Эксплойта", там прям азы разбираются. Она написана с опорой на то, что ты используешь линукс, но прочитать её стоит.

Если необходимо для начала подтянуть ревёрс - однозначно Денис Юричев, книга быстро гуглится.

Могу также порекомендовать гайды Corelan, они весьма неплохи, затрагивают винду и тоже идут с азов.

Из более интересного, я посоветую курсы OpenSecurityTraining2 (большинство из них бесплатные). У них есть не только курсы по поиску вулн, но и по дебаггерам, внутрянкам винды, ассемблеру и по атакам на прошивки.

По практике, можно посмотреть в сторону интерактивных платформ по типу HTB (там вроде бы был разде Binary Exploitation, если память не изменяет). В крайняк, можно искать таски на эксплойтинг самому.

Инфу по обучению этому направлению чутка трудно систематизировать, но что выше можешь поглядет без проблем.
Аноним 12/12/23 Втр 05:28:34 #541 №2960047 
>>2960014
>малварные аналитики
А это не пересекается с вулн?
Аноним 12/12/23 Втр 06:08:47 #542 №2960051 
>>2960047
Далеко не всегда. В основном, рядовая малварь может использовать методы для обхода UAC, да и в принципе всё. Из последнего, что нашумело весьма сильно и что использовало эксплойт - BlackLotus (форк umap'a), конкретно абьюзилась вулна для обхода Secure Boot (смотри на реализацию BatonDrop).

В остальном, кейсы, где действительно используют эксплойты на ряду с малварью, касаются в основном ранзомвари, но и они разбираются вместе, так как Incident Response.
sage[mailto:sage] Аноним 13/12/23 Срд 00:34:24 #543 №2961279 
>>2809270
хуйней ты занимаешься, а не учишься. для начала хотя бы бегло прочитай доку
Аноним 13/12/23 Срд 02:49:41 #544 №2961316 
Си-тред мёртв, продублирую свою шизу здесь.

Как сделать кложу в C, чтобы портируемо/безопасно, без расширений GCC, ебли со стеком, сторонних библиотек и прочего?

Допустим, у меня есть массив указателей на функции, и мне нужно каждую из них заменить функцией-обёрткой, которая совершает какое-то действие и только после вызывает оригинальную функцию. Не приходит в голову, как в скоупе функции-обёртки получить адрес функции, которую нужно вызвать. Может потому что это просто невозможно.
При этом я ограничен тем, как сторонняя библиотека вызывает эти функции, то есть я не могу, например, сделать как здесь
https://stackoverflow.com/questions/63395637/get-address-of-a-function-inside-of-the-function-in-c-c

Пример того, как это не может выглядеть:
https://pastebin.com/6VUtVTu3
Аноним 13/12/23 Срд 09:55:13 #545 №2961425 
>>2961316
в Си++ загляни
Аноним 13/12/23 Срд 10:23:42 #546 №2961453 
>>2961316
Сделай еще один массив, туда запиши адреса оригинальных функций. А в funcs будут только адреса враппера. Внутри враппера вызывай оригинальную функцию. Профит

Или ты что-то не договариваешь?
Аноним 13/12/23 Срд 13:34:01 #547 №2961660 
>>2961453
А, нет, это я сначала неправильно понял.

Если у тебя будет одна функция-враппер вместо всех функций массива, то не получится дернуть нужную старую функцию.

Тупой вариант - генерировать (макросом? кодогенератором?) N враппер-функций, каждый враппер будет дергать старую функцию.
Аноним 13/12/23 Срд 15:55:58 #548 №2961880 
>>2960045
А линукс плох?
Аноним 13/12/23 Срд 16:29:17 #549 №2961920 
>>2961880
Мне нравиться. К нему привыкаешь и винда кажется неудобным говном. Как минимум это интересное гиковское занятие, которое расширит твои CS горизонты. Линух это просто рай для программиста.
Правда, в НЕКОТОРЫЕ видеоигры на нём не сыграть.
Аноним 13/12/23 Срд 17:01:10 #550 №2961959 
>>2961920
У меня сложилось впечатление, если занимаешься безопасностью/хакингом, то в первую очередь нужно изучать линукс и баш, многие вещи делаются проще и там больше специальных утилит. А винда это моветон.
Аноним 13/12/23 Срд 17:39:36 #551 №2962064 
nvall9ngdd451-4157222924.png
workstationframework.png
изображение.png
изображение.png
>>2961959
Про пентестинг хз что это и хакинг (серверов, сетей и прочего, не связанного непосредственно с виндой, как например вирусы под неё) ты верно думаешь. Kali linux стандарт.
Даже если ты просто пайтон-раб, то линух то же подходит.

Я бы его вообще рекомендовал всем, кроме домохозяек.

Если будешь собираться ставить убунту как основную систему - не надо. Этот некогда первый домохозяйский линукс скатился в говно по неудобнее винды. Попробуй для начала линух минт: у него гуи как у винды. Или fedora, но с его гуи тебе будет не привычно. https://fedoraproject.org/workstation/
Если безбашенный, то займись юнихпорном (pic 34), т.к. он самый удобный, но сложный.

Баш кста не сложный. Не преувеличивай это.
Аноним 13/12/23 Срд 17:50:00 #552 №2962079 
>>2962064
Убунту настолько плох? И форки?
Желания разбираться со всякими генту нет.
Аноним 13/12/23 Срд 18:30:56 #553 №2962151 
>>2962079
Сам убунту -- да. Форки -- смотря какие. Линукс минт это его форк.
Аноним 13/12/23 Срд 20:48:49 #554 №2962387 
>>2962151
Я не хочу собирать и кастомизировать систему, это ненужное трата времени.
Аноним 14/12/23 Чтв 13:31:56 #555 №2962978 
>>2962387
Просто скачай любой линух на флешку, воткни её в комп и в биосе/уефи сделай загрузочной. Так ты сможешь в live-режиме заценить ОС и определиться.
Аноним 16/12/23 Суб 03:40:41 #556 №2965829 
IDA Pro под линукс идентична версии под виндовс?
Аноним 16/12/23 Суб 11:12:03 #557 №2965976 
>>2965829
Хз.
Если нет, то в линухе есть свои аналоги.
Аноним 16/12/23 Суб 14:02:54 #558 №2966065 
>>2962151
ubuntu mate
Аноним 20/12/23 Срд 14:27:47 #559 №2970399 
Программирование и reverse engineering могут совмещаться?
Аноним 20/12/23 Срд 17:23:46 #560 №2970676 
>>2970399
На этом канале есть видео и как ревёрсить, и как хакать, и как патчить/модить ПО: >>2954471
Аноним 21/12/23 Чтв 11:03:52 #561 №2971274 
Планирую получать образовать в ЕС, на США вряд ли накоплю
думаю, идти на направление reverse engineering (если такое есть) или на хакинг/киберсекрюити/компьютер сайнс, что порекомендовали бы?
Аноним 21/12/23 Чтв 11:42:11 #562 №2971311 
>>2971274
>хакинг/киберсекрюити/компьютер сайнс
Это как? Что конкретно?
Я бы выбрал компьютер сайнс, ибо там большие знания и можно будет стать Джоном Кармаком, Линусом Торвальдсом, Танненбаумом и много кем ещё.

А чему научать в reverse engineering кроме как пользоваться отладчиком-дизассемблером я не знаю.
Аноним 21/12/23 Чтв 11:43:59 #563 №2971313 
И в какую страну ты собираешься? Сколько тебе лет?
И Джон Кармак кста был ахринительным асмоёбом и хацкером.
Аноним 21/12/23 Чтв 11:59:09 #564 №2971326 
>>2971311
>можно будет стать Джоном Кармаком, Линусом Торвальдсом, Танненбаумом и много кем ещё.
Ты вряд ли станешь таким. Амбиции скромные.
Аноним 21/12/23 Чтв 20:04:51 #565 №2971857 
Я хочу научиться сами знаете чему. Можно ли писать arm на x86 ? Как это делать максимально просто?
Аноним 22/12/23 Птн 11:09:36 #566 №2972410 
изображение.png
изображение.png
>>2949657
Пикрил в помощь

>>2971857
Я ваще ассемблировал на ARM (64) с помощью raspberry pi 4, на линухе, но можно и без всего этого кодить и на amd64 винде, и на amd64 линухе.
Я немножко; мне был нужен только пикрил 2 для векторных вычислений научился арм асму благодаря офиц. документации: https://developer.arm.com/documentation/dui0473/c/writing-arm-assembly-language (нужен VPN).
Также я сейчас кажется нашёл перевод этой документации: https://metanit.com/assembler/arm64/ .

Для программирования на винде есть официальная IDE от ARM.
Аноним 22/12/23 Птн 12:11:22 #567 №2972497 
Сейчас дошло до меня что на ассемблере можно написать прогу которая запустится на пк без ОС, а на Си можно ли такую написать?
Аноним 22/12/23 Птн 14:37:41 #568 №2972805 
А есть ли в сфере реверса работа на аппаратном уровне? Hardware hacking, т.е. изучать как работает электронная плата, находить аппаратные уязвимости, получать несанкционированный доступ к прошивке для дальнейшего реверса. Любые методы от подключения к служебным портам типа uart, которых поленились убрать с платы, до вскрытия чипов и визуального считывания ячеек памяти через электронный микроскоп.

Или вот направление на исследование уязвимостей микроконтроллеров https://www.cl.cam.ac.uk/~sps32/mcu_lock.html
Аноним 22/12/23 Птн 18:10:01 #569 №2973006 
cyberpunk.gif
>>2972497
>Сейчас дошло до меня что на ассемблере можно написать прогу которая запустится на пк без ОС
Капитан очевидность.
>а на Си можно ли такую написать?
Linux на Си написан.

>>2972805
>изучать как работает электронная плата
Абсолютно всегда, где это надо, есть спецификация, в которой изложено всё, что известно разработчику данной платы, а точнее архитектуры процессора. И этих (массовых) архитектур на свете как бы не очень не много.
Даже если процессоры корпоративные и не ориентированные на быдло из М. Видео, то всё равно они базируются на чём-то массовом и известном миру.
Также ко всему этому добавляется брутфорс, то есть ты тупо пытаешься получить т. н.
>несанкционированный доступ к прошивке
, но для этого нужны глубокие познания в устройстве ОС и надо уметь писать драйвера.
https://flatassembler.net/examples/win64_drivers.zip
https://habr.com/ru/articles/706766/
https://habr.com/ru/articles/701276/

Вообще то, что ты хочешь, больше к каким-нибудь электрикам и любителям паяльника относится, чем к программисту.
Аноним 22/12/23 Птн 18:27:20 #570 №2973032 
>>2973006
>Абсолютно всегда, где это надо, есть спецификация, в которой изложено всё, что известно разработчику данной платы
Какая-то наивная хуйня. Забей в общем.
Аноним 22/12/23 Птн 19:39:26 #571 №2973132 
>>2973032
Рил думаешь, что кто-то делает эксклюзивные технологии эксклюзивно для кого-то, а не просто берёт избитую и всем известную технологию и чутка модифицирует её?
Даже Cell (архитектура ЦП PS3) была основана на POWER и работает пiд линукс или бисди
Аноним 22/12/23 Птн 19:39:58 #572 №2973134 
что уже какбе делает её взламываемой
Лучший ASM. Аноним 22/12/23 Птн 20:22:52 #573 №2973153 
Анонче, какой кроссплатформенный ассемблер (ассемблерный транслятор) лучше использовать: nasm, fasm, yasm или gas?
Аноним 23/12/23 Суб 05:17:01 #574 №2973451 
Возможны стартапы по reverse engineering'у?
Аноним 23/12/23 Суб 12:58:00 #575 №2973603 
>>2973451
Какбе чтобы быть реверсером, нужно быть гением, то есть быть умнее джаваскриптизёров. А если ты такой гений, то значит, что ты уже работаешь в intel или другой богатой организации.
Аноним 23/12/23 Суб 13:01:49 #576 №2973606 
>>2973603
Что ты совсем затроллился, дружище. Пробуй тоньше.
Аноним 23/12/23 Суб 18:28:36 #577 №2973875 
kidzonya lda.mp4
>>2973606
Да пошёл ты, тупой ублюдок.
Зачем тебе ревёрсинг? Ты оргазм от этого ловишь?
Аноним 23/12/23 Суб 19:09:18 #578 №2973928 
>>2973875
>рвоньк
Аноним 24/12/23 Вск 18:52:49 #579 №2975615 
>>2973928
Так он прав, если бы ты был способен быть ревёрсером, создавать стартапы-хуяпы, не писал бы здесь ничего, а уже бы работал где-то, получая зеленую бумажку. А такие вопросы обычно задают бездарности всякие.
Аноним 24/12/23 Вск 19:03:42 #580 №2975645 
>>2975615
не семени
Аноним 24/12/23 Вск 20:09:23 #581 №2975812 
>>2975645
>АРЯЯЯ СЕМА СЕМЕНИ ВРЕТИ СЕМА СЕМЕН СЕМЯ
Аноним 26/12/23 Втр 07:21:22 #582 №2977844 
>>2975645
>>2973928
>>2973606
>>2973451
Одно из важнейших качеств реверсера - умение искать, ведь реверс это по сути распутывание клубка и поиск нужного конца нитки. А ты со старта побежал что-то спрашивать у других людей и даже не попытался погуглить, хотя гуглинг решает 99% твоих проблем во всех областях. Так что аноны правы, ты уже проиграл.
Аноним 26/12/23 Втр 07:51:57 #583 №2977852 
>>2977844
Проиграл тебе за щеку.
Moonlover 26/12/23 Втр 20:25:54 #584 №2979085 
А чего тред не перекатываете?
Аноним 26/12/23 Втр 20:41:30 #585 №2979111 
>>2973451
>Возможны стартапы по reverse engineering'у?
Создай бесплатный опенсорсный дизассемблер
Аноним 26/12/23 Втр 20:47:21 #586 №2979122 
>>2973006
>Linux на Си написан
Всё же без ассемблера его не запустить, ну или на Си это делается сложнее чем на асме.
Аноним 27/12/23 Срд 14:54:17 #587 №2979812 
изображение.png
изображение.png
изображение.png
>>2979122
Minix ещё на ум пришёл.

>>2979111
пикрил 1.
У GNU есть целый пакет для работы с бинарниками -- binutils.
Олсо есть x64dbg. Пикрил 2 & 3.
Аноним 27/12/23 Срд 15:10:36 #588 №2979833 
>>2504977
Двачую. Пока ничего адекватнее vi, gdb, SASM и x64dbg не нашёл.
В чём кодят гуру? В винасме или турбо борланде с ollydbg?
Аноним 28/12/23 Чтв 01:15:13 #589 №2980712 
x86 assembly is very simple and the instructions are very logical.
For example:

The mov instruction moves data,
The add instruction does sum,
The sub instruction subtracts,
The vcvtss2si instruction
Аноним 29/12/23 Птн 07:22:39 #590 №2982120 
>>2504977
>В чем вы пишете и дебажите это?
emacs+gdb+cutter
Аноним 01/01/24 Пнд 19:08:38 #591 №2985491 
Анончики, здравствуйте

Начал изучение ассемблера с учебника Юрова, но когда начала подглава с объяснением организации ОЗУ поехала крыша, нихрена не могу понять не дескриптивная таблица, селектор... Что такое линейный адрес, это я так понимаю адрес начала каждого сегмента ОЗУ?

Есть ли чтиво полегче, а то по своей наивности думал и на Таненбаума позарится, но судя по всему и до этого не дойду, очень буду рад, если посоветуете что-то дурачку, видел пост о том, что самому следует все искать... Но выбор литературу это очень важная вещь и без ментора тут не обойтись. Поэтому прошу Вас, помогите
Аноним 04/01/24 Чтв 01:15:13 #592 №2988238 
>>2985491
Ты гонишь маленько.

Тебе не нужно даже знать о существовании дескриторной таблицы, если ты не пишешь ядро операционной системы.

Кстати, перекать пилите!
Аноним 11/01/24 Чтв 20:12:27 #593 №2998109 
Доброго времени суток, аноны. Быдло-студент репортинг ин пхд, я не вчерашний школьник. Народился у мамы математиком, так вот мой коллега и по случайному совместительству тьютор посоветовал мне к исследованию разобраться с низкоуровневыми языками типа вашей асмы, либо С. Тащемта при получении степени сырны бакалавра я уже относительно глубоко изучал си, но увлечением кодингом, как таковым, он меня не заразил. Есть ли здесь аноны, которые брали асму за базис своего исследования в области компьютер саенса с точки зрения именно математики? Алсо тема "Modelling and optimisation of machine learning algorithms using low-level programming language(s) to enhance computational performance and energy efficiency of computing system", учусь не в пахомии, если это важно, если есть ученики из мелкобритании, то готов к кооперации
Аноним 12/01/24 Птн 03:12:49 #594 №2998671 
>>2998109
>асму за базис своего исследования в области компьютер саенса с точки зрения именно математики
я нихуя не понял
Bakin-ец 26/01/24 Птн 10:25:35 #595 №3020171 
Народ, кто-то пробовал реверснуть формат .rbpack нового игрового движка RPG Developer Bakin?

Я вижу как C# прелоадер декриптит бутстрап экзешники и могу это вроде повторить, а как игра распаковывает остальные ресурсы? Можно это тоже повторить извне? И ещё интересует перепаковка обратно в этот формат для перевода игр.
comments powered by Disqus

Отзывы и предложения