Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 588 101 238
ASM тред №16 /asm/ Аноним 05/08/22 Птн 20:28:34 2425757 1
4444444444.PNG 985Кб, 779x669
779x669
Книги:
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 2425761 2
>>2425757 (OP)
Читая книги по ассемблерам я понял что раньше развитие в плане прозводительности шло по сути за счёт расширения регистров, увеличения кол-ва ядер и ускорения самих проциков.

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

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

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

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

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

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

Так что мои советы особо ничего не стоят, но тред всё равно полудохлый поэтому имеем что имеем. Попробуй на англюсике свой вопрос на англоязычных профильных форумах позадавать.
Аноним 15/09/22 Чтв 22:16:00 2463849 23
Аноним 15/09/22 Чтв 22:18:41 2463853 24
Аноним 19/09/22 Пнд 07:45:52 2466898 25
Всю жизнь тред назывался "ASM & Reverse engineering", а теперь ни ссылки на предыдущий, ничего %) мда..
Аноним 19/09/22 Пнд 07:47:13 2466899 26
Аноним 19/09/22 Пнд 21:37:37 2467485 27
Здравствуйте, решил изучать 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 2467491 28
>>2467485
Вот ты уже нашел в интернете что нужно сделать. Теперь найди - как. И нам потом рассказать не забудь.
Аноним 19/09/22 Пнд 22:39:30 2467531 29
>>2467485
У тебя в программе очевидный баг, кстати - выполнение начинается с текстовой строки, а не с кода ее печати.
Аноним 19/09/22 Пнд 23:34:54 2467575 30
ugh.gif 124Кб, 220x156
220x156
>>2467531
Школяры в 80-х не зная нихуя писали самомодифицирующиеся полиморфные движки, а он данные в код пихает в 2022.
Аноним 20/09/22 Втр 07:54:03 2467684 31
12079794618860.webm 2083Кб, 480x360, 00:02:14
480x360
Аноним 16/10/22 Вск 23:54:09 2490263 32
16659525288950.webm 13934Кб, 1920x804, 00:00:27
1920x804
Бамп
Аноним 24/10/22 Пнд 01:28:11 2496954 33
https://habr.com/ru/company/macloud/blog/566478/

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

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

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


На другом языке я догадываюсь как сделал бы, узнал бы длину бита и прошелся бы по нему спокойно через цикл, тут просто реализация сложнее будет
Аноним 05/11/22 Суб 03:13:41 2506079 41
>>2506047
на спектруме был сдвиг влево в регистр флага, то есть откусываемый бит влиял на последующий условный переход
Аноним 05/11/22 Суб 03:22:03 2506081 42
Аноним 05/11/22 Суб 21:02:08 2506683 43
image.png 26Кб, 696x349
696x349
image.png 26Кб, 869x330
869x330
Что происходит? Почему не компилируется? Используется masm32, Windows 7 32.
Аноним 05/11/22 Суб 23:25:27 2506791 44
Аноним 07/11/22 Пнд 17:51:06 2508067 45
image.png 3Кб, 193x320
193x320
image.png 56Кб, 200x200
200x200
Аноним 08/11/22 Втр 23:48:10 2509336 46
>>2506683
Первая ссылка в гугле говорит что надо link16 а не link
Аноним 10/11/22 Чтв 17:59:57 2510784 47
В чем вы пишите? Я просто в текстовом редакторе дофолтном и в консольки компилирую. Правда мне еще gdb не пригодился, не знаю будет ли дальше так же удобно
Аноним 20/11/22 Вск 21:54:05 2518905 48
image.png 63Кб, 906x795
906x795
>>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 2518909 49
>>2508067
Лол, уже решил давно, только заглянул, но спасибо
Аноним 20/11/22 Вск 21:55:45 2518910 50
>>2508067
Лол, уже решил давно, только заглянул, но спасибо
Аноним 20/11/22 Вск 21:58:29 2518913 51
>>2425757 (OP)
>x86
>x64
Зачем учить ненужные платформы, на которых ассемблер не используется?
Ассемблер - это либо современные микроконтроллеры, либо ретро игры с демосценой (Z80, 6502, Motorola 6800).
Аноним 20/11/22 Вск 22:01:13 2518917 52
>>2518913
Чел, я вообще на х80 кодю, ебало представил?
Аноним 20/11/22 Вск 22:08:15 2518924 53
>>2518913
Для реверса как вариант.
Аноним 20/11/22 Вск 22:15:58 2518930 54
>>2518917
Так Intel 8080 это и есть ретро.
Там и компиляторов ЯВУ нормальных не завезли.
И нужно считать каждый байт и каждый такт процессора.
А вот для x86/x64 нет совершенно никакого смысла писать на ассемблере.
Тем, кто пишет для многоядерных процессоров - следует немедленно вызывать врачей и госпитализировать в Кащенку, такие люди опасны для общества.
Аноним 20/11/22 Вск 22:17:03 2518933 55
>>2518924
В нулевых да. Сейчас большинство кода пишется не для x86.
Аноним 20/11/22 Вск 22:34:47 2518960 56
>>2518905
в стеке инструкциями push и pop.
подсказали на другом форуме.
Аноним 20/11/22 Вск 23:19:41 2519017 57
image.png 6Кб, 294x380
294x380
image.png 14Кб, 665x228
665x228
image.png 7Кб, 230x361
230x361
>>2518960
>>2518905
А почему при CALL, у меня указатель стека меняется?
и вообще че это за значения, как они влияют на работу программы?

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

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

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

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

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


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

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

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

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

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

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

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

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

Причём только в этой стране, в других тоже пайплайн.
Аноним 03/12/22 Суб 03:16:00 2529354 87
Screenshot20221[...].jpg 186Кб, 720x717
720x717
>>2425757 (OP)
Сап, двач, а какую книгу надо выгуглить по актуальным архитектурам процессоров, чтобы понимать глубоко и полностью суть, как в этом видео, но подробно: https://youtu.be/XWZTHecUluM
И не просто теорию в целом, поверхностно, но глубже. К примеру, в видео говорят, что кэшируется память самостоятельно, а мне хочется понимать как именно "самостоятельно", что именно она кеширует, как выбирает, и кто за это в железе отвечает, не магия же.
Аноним 03/12/22 Суб 06:18:06 2529372 88
Аноним 03/12/22 Суб 07:35:22 2529392 89
>>2529086
Анонче, у меня нет с этим проблем. Если у вас принято называть по хипстерски, могу называть по хипстерски. У меня опен майнд, ноу кринж ресивед.
Аноним 03/12/22 Суб 07:36:30 2529393 90
>>2529392
Хотя наверное правильнее говорить - зиро криндж гайнед.
Аноним 04/12/22 Вск 14:55:46 2530537 91
Безымянный.png 48Кб, 1216x840
1216x840
Не понимат
Аноним 04/12/22 Вск 15:24:59 2530559 92
>>2530537
Используешь дорогие компоненты, можно более дешёвые.
Аноним 04/12/22 Вск 15:52:57 2530583 93
>>2530559
Вопрос не в стоимости же, а в количестве. Как из количества вентилей меньше трех собрать схему И-НЕ?
Аноним 04/12/22 Вск 15:56:22 2530590 94
Безымянный.png 35Кб, 1172x777
1172x777
О, доперло!
Аноним 05/12/22 Пнд 14:34:11 2531471 95
>>2529392 >>2529393
Ну ежели тебе так уж прям надо называть ето по-нашенскому, называй совмещение стадий выполнения.

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

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

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

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

Я ленивый питонист и не вникну без вводных. Точнее, не знаю, могу ли вникнуть.
Прежде всего ето васм, а его олькой не подебажишь. Или можно?
Аноним 16/12/22 Птн 17:34:00 2543231 103
>>2425757 (OP)
>Assembly Language Step-By-Step
Весьма заходит эта книга. Но почему до сих пор нет перевода на русский? С одной стороны, конечно, полезно подтянуть английский. Но, с другой стороны, очень медленное чтение, хочется быстрее проглотить эту мням-нямку.
Аноним 01/01/23 Вск 03:30:34 2559818 104
Здравствуйте, программисты. Я не программист. И вопрос даже не о языке ассемблера как таковом. Просто вопрос связан с довольно низкоуровневой штукой, и я решил, что именно тут могут сидеть достаточно компетентные нерды.
Можно ли чисто в теории сконвертировать скомпилированную 32-битную программу в 64-битную? То есть, проанализировать её машинный код, и выдать программу, делающую аналогичные по сути вещи, но являющуюся 64-битной. Что примерно нужно сделать, если это возможно в принципе?
Контекст вопроса: возможность запустить старую программу на новой версии мак ос, в которой не работают 32-битные программы вообще.
Заранее спасибо за ответ.
Аноним 01/01/23 Вск 05:07:07 2559835 105
Аноним 01/01/23 Вск 11:15:56 2559899 106
>>2559818
Нельзя, можно разве что зареверсить и написать такую же свою.
Аноним 03/01/23 Втр 14:42:47 2561718 107
С чево изучать асемблерр? хочу вкатиться в ассемблер!
Welcome to IDA 8.2! Аноним 05/01/23 Чтв 19:08:34 2564023 108
image.png 211Кб, 1020x897
1020x897
image.png 130Кб, 1034x893
1034x893
image.png 117Кб, 1031x722
1031x722
image.png 253Кб, 1179x878
1179x878
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 2565525 109
Написали что-нибудь?
Аноним 15/01/23 Вск 15:01:11 2574634 110
Блядь какая же лютая дичь этот ваш ассемблер. Сраный цикл написать надо танцы с бубнами на 10 минут. Наверное только познав дзен можно писать на ассемблере.
Аноним 15/01/23 Вск 21:18:23 2575119 111
>>2574634
10 минут это ты быстро. Я по пол дня думаю.
Аноним 18/01/23 Срд 13:43:39 2578290 112
Правильно ли я понимаю аналогию понятий?
OFFSET - это мое нахождение, например, на 10 этаже здания. То есть - 10. А DISPLACEMENT - это на сколько этажей я туда-сюда опускаю и поднимаю веревку с грузом, например, до 8 этажа, значит - 2. Так?
Аноним 18/01/23 Срд 14:59:57 2578358 113
>>2578290
А где ты эти понятия нашел? Выглядят как синонимы - ведь OFFSET это тоже относительно чего-то.
Аноним 18/01/23 Срд 15:45:21 2578401 114
Почему загрузка ОС в 16 битном режиме до сих пор происходит? Я понимаю, легаси, все такое, но неужели нельзя уже отбросить это и запускаться в 32 битном режиме? Или просто нахуй не надо?
Аноним 18/01/23 Срд 16:49:24 2578496 115
>>2578358
>А где ты эти понятия нашел?
В книге топикстартера. В контексте адресации памяти.
Аноним 18/01/23 Срд 17:17:33 2578571 116
>>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 2578608 117
>>2578571
Да, спасибо, анон. Далее в книге автор так и сказал, не заморачивайтесь с названиями.
Аноним 18/01/23 Срд 17:33:11 2578629 118
>>2564023
Торрент дай или иди нахуй
Аноним 18/01/23 Срд 19:59:38 2578879 119
Мертвый тред мертвого языка
Аноним 20/01/23 Птн 01:18:23 2580264 120
binary-code-tee[...].mp4 242Кб, 118x66, 00:00:26
118x66
бампану шакалами
Аноним 20/01/23 Птн 01:46:47 2580275 121
1622888108002.mp4 982Кб, 640x480, 00:00:11
640x480
Аноним 25/01/23 Срд 13:17:27 2586518 122
А что за мудаки сидят на crackmes.one и проверяют решения? По какому принципу решение другого мудака, который написал брутфорс-скрипт на питоне, который тупо числа перебирает в терминал, пока не угадает, приняли, а моё, выдающее точный результат, нет? Им ещё буковы надо написать какие-то, объяснить, как я пришёл к решению? Что за хуета?
Аноним 25/01/23 Срд 17:42:45 2586876 123
>>2586518
Ладно, что-то я сильно на негативных эмоциях был и зазря обосрал хороших людей с хорошим проектом. Даже стыдно. Просто концепция сайта, видимо, предполагает, что опубликованные решения должны быть более подробны и полезны для других обучающихся. Но при этом сайту очень не хватает нормальной обратной связи по этой самой "подробности".
Аноним 25/01/23 Срд 19:09:16 2587046 124
>>2565531
>На хуй это платное говно нужно?
В бесплатную х64 версию декомпилер добавили онлайновый, кушай не обляпайся
>>2578629
Воровать плохо, пнятненько?
Аноним 25/01/23 Срд 20:04:05 2587116 125
kot103128670orig.jpg 53Кб, 679x453
679x453
>>2586518
Эх, я когда-то отсылал свои солюшены на ныне несуществующие сайты.
васм.ру, мс-рем, были времена. Даже писал на фрилансе драйвер-фильтры на асме. И кто-то даже этим пользовался.
Сейчас зарабатываю шекели на скриптоте и хочу вкатиться в 8080 и з80. В детстве не хватало мозгов и литературы, а формального образования по теме я не получил.
Аноним 26/01/23 Чтв 08:58:08 2587534 126
>>2467575
йоу, а можно по-подробнее? меня чёт этот факт зацепил.
Аноним 26/01/23 Чтв 17:50:28 2588295 127
У ФПУ стак же больше, чем 8 ST регистров? Сколько в таком случае?
Аноним 26/01/23 Чтв 19:24:41 2588461 128
>>2588295
>стак же больше, чем 8
Почему ты так решил?
Аноним 26/01/23 Чтв 19:45:02 2588484 129
>>2588461
Ковырялся в чит енжине и заметил, что когда инструкция грузит число в ФПУ стек, то регистры съезжают вниз и ST(6) переезжает в ST(7), но когда позже инструкция выгружает число, то регистры съезжают вверх и ST(7) переезжает в ST(6), но ST(7) показывает то же число, что и было до пуша.
Хотя в ST(0) грузилось то же число, что и было в ST(7), может оно переехало туда после попа.
Ну и в регистрах всегда какие-то числа есть, но оно не ругается, если загрузить еще одно и тем самым переполнить стек.
ебать там тему вскрыли Аноним 27/01/23 Птн 14:38:00 2589476 130
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 2593561 131
image.png 1199Кб, 1280x720
1280x720
Аноним 08/02/23 Срд 17:24:47 2603731 132
Где найти insight для 32-битной убунты, который используется в книге Дантмана. Я нашел только для 64-битной системы и там таки да, работает, а в 32-битной не хочет.
Аноним 09/02/23 Чтв 02:39:21 2604244 133
image.png 168Кб, 357x357
357x357
Алло, это обратной разработки тред? Вопросы по этой теме есть смысл задавать?
Аноним 09/02/23 Чтв 11:47:04 2604466 134
>>2604244
Если у тебя есть вопросы,то пиздуй дальше учиться.
Аноним 09/02/23 Чтв 12:35:50 2604556 135
>>2604466
От двачей иного и не ждал.
Аноним 09/02/23 Чтв 13:00:47 2604582 136
>>2603731
Впрочем, не надо. Разобрался, как играться и в 64-битной убунте. Оказывается, всего-то надо было установить дополнительные библиотеки gcc, чтобы он не ругался и мог компиллировать 32-битный код.
Аноним 10/02/23 Птн 02:20:24 2605486 137
>>2604244
Безопасно ли изменять значения флагов и регистров в вызываемой функции? Например, бывает ли такое, что код пишет какой-нибудь адрес в ЕСХ, вызывает функцию и позже читает этот адрес из ЕСХ?
Аноним 11/02/23 Суб 15:11:44 2607396 138
>>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 2607884 139
>>2607396
Я не знаю, может ли быть такое, что компилятор может не учесть calling convention и не сохранить non-volatile регистры в callee. Например, потому что цепочка callee использует non-volatile регистры в качестве временных и компилятор решил сохранить этот регистр в caller или еще выше, чтобы не раздувать про и эпилоги лишними push и pop.
Аноним 20/02/23 Пнд 17:16:40 2617848 140
>>2543231
Уфф, наконец-то я осилил эту замечательную во всех отношениях книгу. Со словарем и с убунтой на виртуалке. Посоветуй, мудрый анон, что еще почитать по этой теме. Склоняюсь больше к реверс-инженерингу. Научиться читать код ассемблера.
Аноним 27/02/23 Пнд 16:20:07 2624644 141
>>2425757 (OP)
Может глупые вопросы, но спросить стоит.
Начал недавно изучать асм, x86-64, естестественно комп многоядерный.

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

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

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

3. Тредов (которые можно "создавать") в процессоре нет. Это понятие уровня ОСи. После включения процессорное ядро просто работает - исполняют инструкции, либо остановлено в idle.
В WinAPI на назначение треда на ядра можно повлиять лишь через thread affinity и/или указать предпочтительное ядро. В остальном ОС (пере)планирует треды на любые доступные ядра.
Аноним 28/02/23 Втр 18:07:09 2626016 144
>>2425757 (OP)
Современный ассамблер нельзя назвать низкоуровневым языком?
Аноним 28/02/23 Втр 19:01:50 2626097 145
1575751941835.png 24Кб, 852x355
852x355
>>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 2626517 146
Аноним 01/03/23 Срд 15:13:40 2626693 147
>>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 2626934 148
>>2626693
> Даже в Си, если написать a = 3; b = 4; компилятор может переставить местами b = 4; a = 3;
> Ассемблер так делать не будет. Там как написал, так и выдаст.
Ассемблер mips может и переставить.
Аноним 06/03/23 Пнд 20:34:27 2631936 149
Возможно ли заставить работать кэш процессора как виртуальный жесткий диск?
Аноним 07/03/23 Втр 00:57:34 2632206 150
>>2625283
>сохранить стек
может он про пролог/эпилог функций с сохранение/восстановлением содержимого регистров в/из памяти?
Аноним 07/03/23 Втр 02:13:09 2632227 151
>>2625283
Может он про многозадачность?
Аноним 12/03/23 Вск 15:00:28 2637882 152
Из книги Столярова узнал, что когда программа на линуксе(или не только на нем?) запускается, то в esp лежит argc, а в [esp+4*n] лежит argv[n]
Вопрос к уважаемым знатокам, где в интернете об этом написано? Какая документация мне нужна, чтоб это прочитать?
Пытался гуглить "the contents of the stack when the program starts" и прочее, но гугл всегда предлагал какой-то кал
Аноним 14/03/23 Втр 15:38:00 2639903 153
Что скажете про книгу Reverse Engineering for Beginners book Юричева? Сложная?
Аноним 14/03/23 Втр 20:22:49 2640269 154
>>2637882
Доки по устройству конкретной ОС? В крайнем случае исходники или реверс.
Аноним 14/03/23 Втр 20:29:17 2640275 155
1621889122462.png 162Кб, 976x802
976x802
Аноним 16/03/23 Чтв 16:32:46 2642180 156
>>2639903
Я сейчас после прочтения книги Дантмана открыл эту и прифигел: это называется для бегиннеров? Это какая-то каша данных про всевозможные процессоры.
Прочту по диагонали, что-нибудь отложится в памяти, потом вернусь после прочтения других книг.
Аноним 16/03/23 Чтв 19:22:41 2642367 157
У кого-то есть полсденяя версия книги Юричева по реверсу? Можете выложить?
Аноним 21/03/23 Втр 14:24:13 2647560 158
>>2425757 (OP)
Есть одна древняя игра и отвязка от диска к ней. Носиди состоит из хакнутых екзешника и длл. Есть другая версия длл, которая добавляет в игру очень полезную функцию, но она не отвязана от диска. Тут есть кулхацкер, который сможет адаптировать носиди для этой длл?
Аноним 28/03/23 Втр 19:52:26 2655547 159
Если бы вам всё таки выпала доля коечто накалякать на асме под прыщи, что бы выбрали - gas или nasm?
Аноним 28/03/23 Втр 21:23:16 2655617 160
>>2655547
Конечно Gas, причем непременно AT синтаксис.
Чтобы все офигели от того как я могу.
Аноним 29/03/23 Срд 14:44:25 2656159 161
>>2655547
>>на асме под прыщи
>>прыщи
а прыщи в данном случае это что?
мимо недавно вкатившийся
Аноним 29/03/23 Срд 16:40:36 2656344 162
Аноним 29/03/23 Срд 17:46:36 2656466 163
Аноним 31/03/23 Птн 02:55:21 2657891 164
>>2656466
хотя нет, я передумал, fasm
Выбор книги. Кот_в_Шляпе 31/03/23 Птн 14:18:30 2658219 165
изображение.png 1719Кб, 1186x881
1186x881
скрин.jpg 242Кб, 640x585
640x585
изображение.png 507Кб, 987x544
987x544
Аноны, я знаю что в шапке закреплены книги, но всё же...
Если бы одна из этих книг по ассемблеру была для вас первой, то какая и почему?

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

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

Остается лишь понять, где и в каких целях использовать накопленные знания. Удивительно что ты не отреагировал на мой текст взаимной агрессией, возможно мы бы стали хорошими друзьями, но видимо не в этой жизни.
Аноним 20/04/23 Чтв 10:13:09 2676817 218
Аноны, подскажите, пожалуйста, как решить эту проблему: есть рекурсивная функция; перед вызовом самой себя создаётся переменная 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 2676825 219
>>2676817
А да, забыл добавить, что в вызываемой функции с этой переменной [rbp-8] ничего не происходит. Все действия с этой переменной происходят по возвращению управления.
Аноним 20/04/23 Чтв 18:15:57 2677287 220
>>2676817
>С чем это может быть связано?
Что-то пишешь куда-то не туда, скорее всего. Тут нет гадалок, так что кидай код, если хочешь чтобы кто-то помог.
Аноним 21/04/23 Птн 10:58:41 2677778 221
>>2677287
Анон, задачу я взял у Столярова, там типа строка сравнивается с образцом. Типа есть три варианта, из чего состоит образец: 1) обычный ascii символ; 2) знак вопроса; 3) символ звёздочки '*'
Если в образце есть обычный ascii символ, то этот ascii символ должен совпадать с ascii символом в сравниваемой строке. Если в образце есть знак вопроса, то он может совпадать с любым ascii символом в сравн. строке. Если в образце есть звёздочка, то она может совпадать с любой последовательностью ascii символов в сравн. строке, главное, чтобы остаток образца (образец до звёздочки и после звёздочки), совпадал с остатком сравн. строки.

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

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

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

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

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

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

>фасм это игрушка для хакеров под вирусы и тд
ИБАНИСЬ, НАХОЙ
Аноним 21/04/23 Птн 17:50:43 2678054 224
>>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 2678398 225
Аноним 22/04/23 Суб 14:38:23 2678609 226
>>2678054
Что хоть там происходит? запускаю кусок на сайтах, а там тупо ничего не происходит, да и функций не вызывается никаких.
В чём там прикол?
Аноним 22/04/23 Суб 18:33:30 2678768 227
>>2677858
>в будущем хочу стать реверс инженегром и хотелось бы изучать сразу необходимый ассемблер из выше перечисленных.
Во время реверс инжиниринга ты читаешь дизассемблированный бинарный код, который выплюнул компилятор или ассемблер, а в нем нет всяких макросов как в ассемблерах и всё ещё перемешано между собой будет. Лучше иди почитай reverse engineering for beginners и порешай простенькие crackme, намного больше пользы будет чем писать что-то. Можешь ещё поиграться с godbolt.org.
Аноним 25/04/23 Втр 12:08:37 2680696 228
Аноны, как вкатиться в это дело? Хочу разбираться в архитектуре, пощупать асма примитивномуровне, но что бы прям понимание было. Есть литература совсем для даунов? Читал Таненбаума, нихуя не понятно. Особенно никогда не мог понять разрядность, системы счисления. Вроде немного усвоил, но через неделю забываю. Спасибо
Аноним 25/04/23 Втр 17:07:47 2681018 229
>>2680565
Читал её. Стоит.
мимодругойанон
Аноним 25/04/23 Втр 20:08:11 2681203 230
Аноним 25/04/23 Втр 22:59:18 2681323 231
>>2681203
Вообще лучше почитать все книги Касперски, у него там про вирусы полно инфы. Вирусы это часто нечто низкоуровневое типа ассемблера и они как раз через ассемблер объясняются.
Аноним 26/04/23 Срд 10:18:17 2681576 232
>>2681323
Да, Касперски крутой чувак! Мне ещё его слог нравится, такой типа "крутой", приблатнённый и с лёгким похуизмом, прям чувствуется дух 90-х и начала 00-х. Я ещё его трюки на Си читаю, тоже очень нравится. Спасибо, анонче! Сейчас, после Ван Гуйа, приступлю к "Искусству дизассемблирования".
Аноним 01/05/23 Пнд 10:54:43 2685554 233
Аноним 01/05/23 Пнд 12:13:18 2685609 234
Аноним 01/05/23 Пнд 12:25:43 2685628 235
>>2681576
>>приблатнённый и с лёгким похуизмом, прям чувствуется дух 90-х и начала 00-х
Да, этим он как раз хорош тоже.
Кароче, в нашей стране любой кто прогает на ассемблере под x86 должен все его книги прочитать.
Аноним 01/05/23 Пнд 13:10:40 2685647 236
>>2685609
Спасибо! Добра тебе, анончик.
Аноним 02/05/23 Втр 07:24:04 2686211 237
>>2685628
>Кароче, в нашей стране любой кто прогает на ассемблере под x86 должен все его книги прочитать.
Спасибо, анонче! Учту!
Аноним 02/05/23 Втр 17:27:02 2686663 238
>>2678768
>>2678768
можешь, пожалуйста, еще что нибудь для изучения реверса подсказать?
вот требования которые выдвинула компания в которую я хочу попасть на должность мидла и сказала что если я хочу стать стажером нужно от этого отталкиваться:
понимание архитектуры винды
умение работать с дизассемблером и дебаггером
виндовс апи
работа с сетью(сокеты, http, smb)
умение дружить с компилятором и линкером
принципы написания безопасного кода

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

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

Аноним 05/05/23 Птн 19:18:43 2689337 240
Аноним 05/05/23 Птн 19:22:31 2689343 241
>>2689225
Судя по статье из википедии там одинарная точность только, двойной нетю.
Аноним 05/05/23 Птн 19:28:29 2689347 242
>>2689343
Поправочка, в SSE2 уже двойная точность имеется, но там добавлен вариант вставить за раз два числа двойной точности в один регистр против 4 чисел одинарной точности в SSE.
Аноним 05/05/23 Птн 19:33:13 2689352 243
Аноним 05/05/23 Птн 19:36:32 2689354 244
изображение.png 56Кб, 747x766
747x766
изображение.png 39Кб, 707x519
707x519
>>2689337
>Прочитай всю статью вплоть до примеров
Уже читал и разбирал код в отладчике, просто интересно, как это выглядит на уровне архитектуры, хотелось чуть-чуть побольше про это почитать, хотя не думаю что есть в этом смысл.
Аноним 05/05/23 Птн 19:37:46 2689358 245
>>2689354
Если процы не делаешь, то нах оно тебе надо.
Аноним 05/05/23 Птн 19:41:24 2689368 246
>>2689358
Алсо, там ничего сложного. Ну берёт из регистра пару или четвёрку чисел, берёт ещё пару или четвёрку из другого регистра, потом складывает или делит или чё там, и срёт пачкой чисел в первый регистр или в третий. Чего там сложного. Те же операции, только сразу над пачкой данных, а не по одному.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Простите, ребята, что так много написал, чёт туплю сегодня!
Аноним 29/06/23 Чтв 23:48:54 2748644 319
Советы это заебись, но мне код нужен, я ж нихуя не понимаю вообще
Аноним 30/06/23 Птн 17:37:38 2749359 320
>>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 2749365 321
>>2749359
Ещё и сам nasm, конечно, нужен:
sudo apt install nasm
Аноним 12/07/23 Срд 22:03:21 2763630 322
>>2748569
Это массив содержит числа от нуля до тысячи по возрастанию, или же это каждое число в массиве от 0 до 1000? нипанятна. ставь запятые.
Аноним 17/07/23 Пнд 19:16:05 2770387 323
Как же сложно вкатится в это.
Насколько сильно синтаксис языка архитектур отличается?
Я так понял, что лучшие туториалы по x86
Аноним 17/07/23 Пнд 19:31:29 2770404 324
могила-корзины.jpg 235Кб, 604x582
604x582
Поскольку Си-тред исчез куда-то, спрошу здесь:
почему объект нельзя модифицировать при передачи
его в функцию через указатель?
Аноним 17/07/23 Пнд 20:58:00 2770516 325
>>2770404
>почему объект нельзя модифицировать при передачи его в функцию через указатель?
Потому что можно.
Аноним 18/07/23 Втр 01:43:22 2770744 326
>>2770387
Да, по твоему сообщению видно, что ты ещё толком не начинал. Желаем удачи!
Аноним 18/07/23 Втр 09:41:39 2770901 327
Для реверса старых виндовых прог стоит MASM подучить? Или NASM/FASM вполне хватит?
Аноним 18/07/23 Втр 17:38:25 2771819 328
>>2770744
Я выразился плохой терминологией.
Каждый проц имеет свои собственные сокращения к действиям с регистрами?
Аноним 18/07/23 Втр 19:15:40 2771944 329
По сути ассемблер это как ты берешь значение и всовываешь его в другой участок памяти по многу раз?
Аноним 18/07/23 Втр 20:58:06 2772073 330
>>2771819
>Каждый проц имеет свои собственные сокращения к действиям с регистрами?
Тебе лучше начать с другого: гугли "Instruction Set Architecture", потом посмотри как команды процессора реально устроены на бинарном уровне для разных архитектур, например у Z80, ARM, x86. После этого вопросы про ассемблер отпадут, я надеюсь.
Аноним 22/07/23 Суб 19:23:10 2777916 331
1.png 23Кб, 380x207
380x207
2.png 32Кб, 416x265
416x265
Вопрос к обмазывающимся fasmg коданам: в CALM инструкции как-то можно проверить, существует ли некая переменная? Короче, интересует CALM-эквивалент простого макроса на первом пике - такое в CALM можно запилить? То, что я напидорасил на пикрелейтеде 2, работает только с символьными переменными, т.е. pizda equ 1 детектится, а pizda = 1 нет. А надо, чтобы детектилось.
Аноним 26/07/23 Срд 11:46:34 2781989 332
На каком ассемблере лучше писать шеллкоды под линуксом? NASM, FASM, %GNU AS%?
Аноним 29/07/23 Суб 23:09:46 2787458 333
Решил я убить двух зайцев: изучить основы Python и, дизассемблируя упражнения, попутно изучать методы реверс-инженеринга.
Написал одну строчку "Print("Hello, World"). Скомпилировал. Получился файл размером 1MB! У вас всегда так?
Загнал exeшник в Иду и не нашел, где выполняется эта команда. Я не нашел в памяти даже строку "Hello, World". Это что за компилятор такой? Походу гиблое дело. С С++ до этого как-то проще было.
Аноним 30/07/23 Вск 13:17:58 2787739 334
>>2787458
Алло, товарищ, у Питона своя виртуальная машина, которая исполняет байт-код.
Так что в ассемблере ты получишь нечто пережёванное: эту машину и где-то ещё должен быть байт-код твоего хеллоувордла. А строку ты не можешь найти потому, что там вполне может юзаться другая кодировка, отличная от ASCII и UTF8, где один символ кодируется двумя байтами, а не одним.
Аноним 30/07/23 Вск 13:19:17 2787741 335
Аноним 30/07/23 Вск 13:38:53 2787760 336
>>2787458
>>2787739
Это просто бандл с вм, либами и скриптом, какой там хело ворлд искать, лул.
Аноним 30/07/23 Вск 13:46:12 2787781 337
>>2787760
Ну тык я ему и говорю то же самое.
Он наверно посчитал, что раз получился экзешник, то значит его питонский скрипт скомпилировался как код на Си или плюсах.
Аноним 30/07/23 Вск 13:58:00 2787801 338
Как указать gcc, под какую архитектуру собирать проект? Я хочу собрать под x86, a gcc собирает под x86_64.
Аноним 30/07/23 Вск 14:22:33 2787847 339
Аноним 30/07/23 Вск 21:51:51 2788433 340
Screenshot20230[...].png 113Кб, 533x520
533x520
>>2425757 (OP)
Как на фасме сделать jjmp 0, real_start? Не компилится
Аноним 01/08/23 Втр 15:37:29 2790304 341
Безымянный.png 20Кб, 667x283
667x283
>>2787760
А я-таки нашел, лул. Строка появляется в самом конце выполнения exe-файла, причем каждый раз появляется в совершенно разных адресах памяти. Есессно я абсолютно не понимаю как и откуда она появляется.
Аноним 01/08/23 Втр 22:29:58 2790837 342
>>2790304
Так может скрипт тупо сжат, а при выполнении разжимается.
Аноним 01/08/23 Втр 22:37:49 2790847 343
>>2790304
>>Есессно я абсолютно не понимаю как и откуда она появляется.
копай исходники той утилы, которая захуячила тебе это всё в exe, там и поймёшь сразу как и откуда
Аноним 01/08/23 Втр 22:40:32 2790851 344
2023-08-01 22-3[...].png 208Кб, 993x473
993x473
>>2790304
На кой-то она ещё засунула путь исходника. Зочем? А главное нахуя?
Аноним 02/08/23 Срд 00:26:27 2790932 345
>>2425757 (OP)
Какие есть книги и статьи о том, как создать свой собственный ассемблер? Хотя бы самый простой. Помогите найти и разобраться.
Аноним 02/08/23 Срд 00:30:20 2790934 346
>>2790932
Блядь, это парад тупиздны или что?
Are you совсем tam ohueli?

Виртуальную машину лучше делай свою.
Аноним 02/08/23 Срд 01:36:47 2790947 347
>>2790934
Что тупого в написании своего ассемблера intel?
Аноним 02/08/23 Срд 10:29:50 2791063 348
>>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 2791100 349
>>2790947
Ну нахуя свой ассемблер? Господи, ну нахуя?
Аноним 02/08/23 Срд 11:49:21 2791132 350
>>2791100
Хочу написать полиморфный ассемблер, который на этапе компиляции вируса будет разбавлять код мусорными рандомизированными инструкциями.
Аноним 02/08/23 Срд 11:51:50 2791137 351
>>2791132
Это технологии 80-90-х, сейчас это всё уже давно не работает.
Аноним 02/08/23 Срд 12:01:01 2791147 352
>>2791132
Полиморфный вирус генерирует декриптор в рантайме, причем здесь этап компиляции? Тебе движок писать надо, а не ассемблер.
Аноним 02/08/23 Срд 12:38:03 2791200 353
>>2791147
Какой декриптор? Там просто мусор, разбавляющий реальный код и не влияющий на его выполнение. Это делали, чтобы не палиться по сигнатурам.
Аноним 02/08/23 Срд 12:59:09 2791232 354
>>2791200
Ты уверен, что не путаешь полиморф с метаморфом? У полиморфа вирусное тело тупо шифруется и все. А дальше добавляется код расшифровщика тела вируса - декриптор - сгенерированный полиморфным движком под конкретную копию вируса. В него-то и засовываются мусорные инструкции, а не в тело вируса.
Аноним 02/08/23 Срд 14:33:45 2791399 355
>>2791137
А какие технологии сейчас актуальны в компьютерной безопасности?
Аноним 02/08/23 Срд 14:50:42 2791432 356
>>2791399
Ты сначала освой эти дедовские технологии, а потом, мб, кто-то из тихого дома сам до тебя достучиться, если увидят в тебе потенциал.
Аноним 03/08/23 Чтв 02:16:29 2792082 357
Ответственность за действия со знаковыми/беззнаковыми переменными всегда лежит на программисте?
Аноним 03/08/23 Чтв 03:39:49 2792100 358
>>2787801
Сходочку милых надо
Аноним 03/08/23 Чтв 19:29:04 2793080 359
>>2792082
>>Ответственность за действия со знаковыми/беззнаковыми переменными всегда лежит на программисте?
юрист вошёл в хату
Аноним 08/08/23 Втр 13:59:19 2798257 360
Решил навестить сайт дядюшки Пирогова (http://asm.shadrinsk.net) спустя много лет, однако потерпел фиаско. Есть какая-нибудь инфа по его сайту? Переехал на другой домен? Жив ли он вообще?
Аноним 08/08/23 Втр 14:22:17 2798282 361
>>2798257
У меня жив только через ВыПыЭн
Аноним 08/08/23 Втр 17:36:32 2798490 362
>>2790932
Куришь описание самого простого процессора, вроде c18. Пишешь цикол, читающий строку за строкой. Сравниваешь начало строки с названиями инструкций. Сравниваешь остаток строки с операндами. Пишешь код в текущую ячейку массива. Потом добавляешь метки. Метку и ее адрес надо хранить в словарике. Потом решаешь проблему ссылок на неопределенные метки, это довольно просто.
Аноним 11/08/23 Птн 18:06:00 2802470 363
Аноны, посоветуйте, пожалуйста, хороший дебаггер под линукс, а то я чёт сейчас разочаровался в Cutter на основе radare2, потому что он не может в отображение регистров, которые используются в simd инструкциях. Вобщем, юзал ddd, sasm, edb и Cutter (который очень крутой для дебага, дизассембла, и т.д., но чёт сейчас прям руки опустились, когда не смог настроить его на отображение xmm и mxcsr регистров, бред какой-то, такой мощный функционал, а в отображение всех регистров не может).
Аноним 17/08/23 Чтв 12:57:29 2809219 364
1.png 30Кб, 716x462
716x462
str1.png 49Кб, 1888x367
1888x367
str2.png 54Кб, 1785x401
1785x401
>>2790304
Понемногу проясняется, анон.
Оказывается, в Питоне нет переменных, там создаются объекты с несколькими полями: тип переменной само значение переменной и количество ссылок на этот объект.
2 - это, наверное, тип - строка. Где же тогда количество ссылок?
Аноним 17/08/23 Чтв 13:23:44 2809258 365
>>2809219
>>Оказывается, в Питоне нет переменных, там создаются объекты с несколькими полями: тип переменной само значение переменной и количество ссылок на этот объект.
С подключением. Это знают все, кто на нём программируют, потому что они читали мануал.
Аноним 17/08/23 Чтв 13:32:08 2809270 366
>>2809258
Я не читал. Я просто написал одну строчку и хотел посмотреть, как выполняется код. Был слегка ошарашен.
Аноним 17/08/23 Чтв 13:46:52 2809296 367
Но пока так и не нашел, где и когда создаются эти объекты. Там тысячи инструкций, чтобы напечатать одну строку.
Аноним 17/08/23 Чтв 14:20:38 2809356 368
>>2809296
Ты хоть почитал, как это всё работает? Отдельный парсер и коньпелятор берут текст скрипта, пережевывают его и висирают говно, которое потом жует вм. Т.е. ты трассируешь саму вм, которая выполняет говно и видешь её стейт. В этом нет никакого смысла. Тем более, что исходники открыты.
Аноним 17/08/23 Чтв 15:04:41 2809448 369
>>2809356
Я просто хочу видеть, как работает код. Например, вот в куче выделяется память, вот туда помещается строка, вот в стек помещается адрес строки и вызывается процедура и так далее. С С++ до этого было абсолютно наглядно. Здесь я нихера не понимаю, что происходит. Где появляется это "говно" лол? Как оно выполняется? Ты прав, анон, я ничего не читал, поскольку не программист. Потихоньку читаю, когда есть свободное время.
Аноним 17/08/23 Чтв 15:57:11 2809519 370
>>2809448
Это конечный автомат, который выполняет байт-код. Он одинаковый для всех скриптов, меняется только байт-код, который и есть результат переваривания скрипта.
Можно просто развернуть его обратно в читабельный формат, а не трассировать исполнителя.
Аноним 17/08/23 Чтв 16:23:13 2809555 371
>>2809519
Но ведь, наверное, можно этот байт-код как-то выцепить, чтобы отреверсить в Иде
Аноним 17/08/23 Чтв 16:28:45 2809565 372
>>2809555
Для этого есть уже готовые тулзы, которые умеют разворачивать его, как тот же IL для дотнета.
Аноним 17/08/23 Чтв 16:43:42 2809577 373
Аноним 17/08/23 Чтв 16:45:49 2809578 374
Аноним 17/08/23 Чтв 16:48:58 2809580 375
2023-08-17 16-4[...].png 63Кб, 1613x579
1613x579
Если хотите получить питоновский байткод в виде этакого ассемблера, то юзайте модуль dis

Суёте этому модулю любую функцию и получаете распечаточку, сразу, быстро и без головняка.
Аноним 17/08/23 Чтв 16:50:11 2809582 376
Аноним 17/08/23 Чтв 16:53:19 2809586 377
>>2809270
В питоне вообще всё объекты. Держу в курсе.
Аноним 17/08/23 Чтв 17:25:14 2809640 378
>>2809580
Да я игрался с этим, как-то не то. Ведь интересно отреверсить готовый exe-файл, кет-то написанный на питоне. Это походу непростая задача.

Скомпилировал два файла, в которых просто разные строки. Сравнил. Разница всего-лишь в двух байтах. Вот как это работает?
Аноним 17/08/23 Чтв 17:25:48 2809641 379
1.png 77Кб, 1683x493
1683x493
Аноним 17/08/23 Чтв 18:09:56 2809702 380
>>2809641
Ты бы хоть показал что за строки. Это во-первых.
Во-вторых, скрипт может храниться в сжатом виде.
Аноним 17/08/23 Чтв 18:13:46 2809708 381
>>2809640
Да это пиздец тупая задача. Никто бы не стал заниматься тем, чем ты занимаешься имея на руках исходники.
Обычно такой хуйней занимаются хакеры, чтобы снять виртулку защиты от копирования с видеоигры. Там от этого хоть какой-то толк. А тут ты только будешь переоткрывать то, что в документации написано на самом видном месте. Смысл?
Вообще рекомендую залипнуть на всякие crackme. И полезней, и интересней будет.
Аноним 18/08/23 Птн 07:07:57 2810149 382
Почему тред мертв? Я думал на дваче дохуя хакеров. Ну как минимум кто-то пилит кряки/моды к играм или какие-нибудь читы к танчикам.
Аноним 18/08/23 Птн 10:27:07 2810269 383
784130af398776b[...].jpg 73Кб, 500x419
500x419
Какой, нахуй-блядь, питухон в моём ASM-треде? А ну уёбывайте отсюда нахуй в свой петушатник!!!11
Аноним 18/08/23 Птн 11:34:06 2810355 384
>>2810269
Хули ты подорвался, тут обсуждают кишки питона
Аноним 18/08/23 Птн 13:25:11 2810468 385
Аноним 18/08/23 Птн 13:25:52 2810469 386
>>2810149
Есть как минимум специализированные ресурсы. А треды чисто для новичков.
Аноним 18/08/23 Птн 16:18:23 2810765 387
>>2810469
Как будто крякеров новичков не бывает. Не все же денуво ломают. А на ресурсах сидят ебнутые быдланы (рунет), либо полуграмотные индусы (англонет), двачеров я там не обнаружил.
Аноним 19/08/23 Суб 10:02:41 2811637 388
>>2810355
>>2810468
Потому что кишки питухона надо обсуждать в треде про компоновщики и загрузчики, которые и создают эту питухонскую "магию".
Аноним 19/08/23 Суб 10:08:51 2811642 389
>>2811637
Я здесь лучше обсудил бы устройство этих линкеров и лоадеров, потому что они как раз и робят на уровне асма, оперируя адресами.
Аноним 22/08/23 Втр 21:48:51 2815766 390
Аноним 22/08/23 Втр 23:21:55 2815822 391
что значит
>mov (%r14,%r15,1),%rax
Что тут делают скобки?
Аноним 23/08/23 Срд 01:34:33 2815870 392
>>2815766
Она пиздата. Дерзай.
Аноним 23/08/23 Срд 21:40:08 2816740 393
Аноним 23/08/23 Срд 23:14:29 2816816 394
>>2816740
Спасибо за хорошую ссылку
Аноним 24/08/23 Чтв 01:13:27 2816846 395
>>2816816
Но ты ведь сам мог загуглить.
мимокрок
Аноним 24/08/23 Чтв 01:27:30 2816848 396
>>2816846
нашёл бы это - не стал бы сюда писатьЗАКРОЙ РОТ ТВАРЬ
Аноним 24/08/23 Чтв 01:28:26 2816849 397
Извините, коллеги. Вырвалось.
Аноним 25/08/23 Птн 18:28:21 2818478 398
Аноним 25/08/23 Птн 20:03:41 2818651 399
Сап, не особо надеюсь на ответ, но что уж, чудеса случаются (нет).
Почему в стек трейсе андроида (логкат) после краша в регистрах какой-то рандом, не имеющий отношения к моему приложению? Дальше идет бектрейс, там вроде бы нормальные адреса, но сверху какой-то рандом.
Аноним 25/08/23 Птн 20:48:07 2818694 400
>>2818478
Пробежался быстро, но увидел много годных вещей.
Я сам давно хочу разреверсить Conflict: Desert Storm, ибо это моя первая игра на ПК.
Но хуй там, времени нет, сейчас читаю книги по сетям и TCP/IP, обходы внуренних и внешних блокировок, пишу сетевое приложение... Короче, времени нет.

>>2818651
Повертел несколько вариантов в голове, но они не подошли по логике ситуации. Действительно, хуй его знает. Желаю скорейшей разгадки.
Аноним 25/08/23 Птн 20:51:54 2818697 401
>>2818478
только если игрушку реверситЬ, то надо почитать книги по той версии DirectX, что была на момент выхода. Да и вообще в 3D шарить немножк.
Аноним 27/08/23 Вск 03:42:07 2819740 402
Чему я научился за время существования треда:
1 Полностью расковырял Valkyrie Profile для перевода, написал инструментарий, написал архиватор который делает архивы с указанным размером.
2 Могу делать с локальными файлами всё что угодно, уже пригодилось на работе.
3 Написал парсер с авторизацей(просто подставлешь куку и парсишь)
4 Могу в OpenGL, тут уже больше геометрия рулит. Этим сейчас буду заниматься.
Аноним 27/08/23 Вск 03:44:39 2819743 403
Забыл - фасм форева
Аноним 27/08/23 Вск 23:38:53 2820600 404
>>2819740
>>Могу в OpenGL, тут уже больше геометрия рулит. Этим сейчас буду заниматься.
>>тут уже больше геометрия рулит
и линейная алгебра. Геометрия, причём проективная, там разве что по поводу проецирования 3D мира на 2D плоскость для показа на экране.
Аноним 28/08/23 Пнд 10:49:16 2820769 405
Безымянный.png 14Кб, 753x309
753x309
Как происходит попадание в обозначенные процедуры, если перед ними стоят безусловные джампы?
Аноним 28/08/23 Пнд 11:09:55 2820790 406
>>2820769
Статический анализ/дизассемблер - не панацея.
Аноним 28/08/23 Пнд 11:42:05 2820808 407
Аноним 28/08/23 Пнд 13:32:51 2820960 408
Безымянный.png 23Кб, 883x470
883x470
Аноним 28/08/23 Пнд 20:26:43 2821373 409
>>2820960
Ты точно знаешь что попадание в процедуры происходит?
Аноним 28/08/23 Пнд 20:45:04 2821381 410
image.png 252Кб, 1278x762
1278x762
>>2820769
Если попадание и есть, то x64dbg показал бы это сразу нарисовав рядом стрелочку как в пикриле слева.

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

Короче, удачи. Насчёт специализированных материалов - книги Криса Касперски в помощь. Ещё в книгах бывают списки использованной литературы - её тоже можно читать.
Аноним 28/08/23 Пнд 22:21:11 2821497 418
>>2821492
exelab вроде есть, правда на него ходить сейчас только через vpn
Аноним 29/08/23 Втр 09:23:27 2821701 419
>>2821373
По идее должно происходить. Я шел с конца: выводе строки у вас триал версия и дошел до этих вызовов.
>>2821381
Спасибо, анон, попробую. Похоже на ollydbg.
Аноним 29/08/23 Втр 09:24:26 2821702 420
Посоветуйте книги про то, как работают современные процы. Что содержит микрокод, как аллокация регистров происходит, как проц режимы переключает как работают кеши данных и инструкций и т.д.
Аноним 29/08/23 Втр 18:14:52 2822328 421
>>2821702
Архитектура компьютера Таненбаума. А потом многотомные талмуды от Intel и AMD или что там
Аноним 29/08/23 Втр 18:16:35 2822330 422
2023-08-29 18-1[...].png 102Кб, 1491x535
1491x535
>>2822328
А талмуды как-то вот так называются. Но сейчас, чтобы зайти по этим страницам, нужен VPN
Аноним 30/08/23 Срд 16:21:06 2823429 423
Аноним 30/08/23 Срд 19:55:37 2823797 424
>>2823429
Нет, кажись, в самих талмудах больше разной инфы, а не просто подробное
перечисление команд.

Твоя ссылка в толк будет когда хотя бы раз все талмуды пробежал глазами.
Аноним 30/08/23 Срд 20:37:06 2823850 425
ATTENTION.png 75Кб, 1913x157
1913x157
>>2823797
на это кликнуть не пробовал? загрузится свежий PDF с мануалом интела
Аноним 30/08/23 Срд 20:41:16 2823855 426
>>2823850
А, ну да.
Это другое дело.
Все талмуды в одной PDF-ке, годнота.
Аноним 30/08/23 Срд 20:59:19 2823879 427
>>2823855
Кстати, рекомендую также читать X86-спецификации от AMD. Мне гораздо больше нравится их описание системы команд в общем. Стиль более литературный. Читается интереснее.
Аноним 01/09/23 Птн 11:55:19 2825640 428
Screenshot429.jpg 150Кб, 645x422
645x422
>>2820600
Придётся разбираться с плавающей запятой.
Аноним 01/09/23 Птн 22:32:44 2826447 429
Аноним 02/09/23 Суб 07:52:19 2826561 430
2023-09-02 07-4[...].png 33Кб, 846x965
846x965
>>2826447
дополнение

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

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


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

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

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

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

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

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

>ничего качественно хорошего уже не напишешь
Говоришь за себя.
Аноним 06/09/23 Срд 20:10:59 2831539 445
IMG202309062204[...].jpg 88Кб, 447x373
447x373
>>2831363
Тебя судя по всему термины и "правильные значения" ебут больше чем какие то ассемблеры и архитектуры.

Туда ли ты зашел, тролль-гуманитарий? Тут тебя никто развлекать не станет, иди в бэ.
Аноним 19/09/23 Втр 05:16:32 2847459 446
Screen Shot 202[...].png 669Кб, 1254x727
1254x727
Screen Shot 202[...].png 100Кб, 1132x550
1132x550
Реверсач, я все волосы на жопе выдрал. Может ты подскажешь. Короче, смотрю на ютубчике ролик с разбором PE с нуля. Чел загружает в IDA экзешник как бинарный файл и пошагово создает структуры, входящие в заголовок. На первом скрине то, что у него получается после создания IMAGE_NT_HEADERS. На втором - то, что получается у меня. Вопрос: почему у него IDA показывает адрес каждого поля созданной структуры, а мне для всех полей показывает один и тот же адрес, соответствующий началу структуры? Как сделать так же, как у него?
Аноним 19/09/23 Втр 09:19:23 2847520 447
Аноним 19/09/23 Втр 10:27:38 2847577 448
>>2830882
Где ты достал асм Эльбруса и сам Эльбрус?
Аноним 19/09/23 Втр 10:59:35 2847593 449
>>2847459
Точно не знаю, но у меня есть предположение что,
может это потому что чел задавал каждое поле по отдельности, не объявляя одну большую структур. А ты сделал как раз одну общую структуру с полями, поэтому отображается ее адрес начала.
Аноним 23/09/23 Суб 09:57:53 2852133 450
Кто-нибудь пытался писать эмулятор х86?
Аноним 23/09/23 Суб 15:11:38 2852406 451
Аноним 24/09/23 Вск 04:18:17 2852986 452
Аноним 24/09/23 Вск 13:59:24 2853349 453
>>2821702
>Посоветуйте книги про то, как работают современные процы
База: Паттерсон Хенесси Количественный подход, Жан Поль Шень, Лапасти Modern Processor Design: Fundamentals of Superscalar Processors
>микрокод
Микрокод - это прошлое, сынуль.
Аноним 24/09/23 Вск 17:34:53 2853568 454
>>2853349
>Микрокод - это прошлое, сынуль.
Ну видимо процессор по воле аллаха инструкции декодирует и обрабатывает.
Аноним 24/09/23 Вск 21:36:20 2853974 455
>>2853568
Щас бы через дополнительную память/плм делать декодер.
Аноним 25/09/23 Пнд 07:32:49 2854288 456
>>2425757 (OP)
блять, вы куда шапку снесли нахуй мудачьё
Аноним 25/09/23 Пнд 15:54:02 2854825 457
>>2854288
Действительно, ОП - хуй, но я сейчас принесу тебе шапку.
Аноним 25/09/23 Пнд 15:54:31 2854827 458
>>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 2854843 459
>>2854827
Это старая, давно протухшая шапка.
Аноним 25/09/23 Пнд 19:05:01 2855058 460
>>2854843
лол, что там два года могло протухнуть? разве что ты
Аноним 26/09/23 Втр 08:37:27 2855497 461
>>2853349
> Микрокод - это прошлое, сынуль.
Хуй86 в целом прошлое, но оно всегда будет с тобой. И микрокод в отдельных его командах неизбежен.
Аноним 27/09/23 Срд 01:49:02 2856906 462
>>2855497
Что такое микрокод в твоей голове?
Аноним 27/09/23 Срд 20:39:06 2857978 463
>>2847577
По асму документация есть
К самим эльбрусам дают удаленный доступ. Вот на этом сайте http://элбрус.рус документация лучше всего оформлена, в ней команды находятся поиском.

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

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

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 2929250 493
Аноним 20/11/23 Пнд 11:21:20 2929280 494
>>2929250
Не, меня не порядок размещения интересует, а почему, когда я прибавляю к стеку некоторое смещение, допустим, что к rsp я прибавил 7, и получил 0x11; но, когда я к rsp прибавляю 6, то я получаю не 0х22, а 0х1122.
Аноним 20/11/23 Пнд 11:47:56 2929309 495
image.png 126Кб, 2074x986
2074x986
image.png 93Кб, 2107x707
2107x707
Всё, аноны! Я разобрался! Нужно просто нужный размер данных брать из стека (пикрил 1). А вообще, смотрите какой прикол (пикрил 2): получается, что, если не указывать размер данных, который нужно взять из стека, то rsp будет указывать на данные до дна стека, который был выделен для программы. Получается, на пикриле 2, что смещение rsp + 6 указывает на 0x1122, которые были запушены с rax, и на остальные 0х334455667788, которые были запушены с rbx.
Аноним 21/11/23 Втр 11:08:16 2930565 496
Хочу начать изучать ассемблер для общего развития. Но не знаю какой изучать. Сижу на линуксе так что MASM отпадает, а вот какой из NASM, FASM или GAS выбрать я хз. Помогите с выбором.
Аноним 21/11/23 Втр 11:28:14 2930608 497
>>2930565
Хз, мб я неправ, но все книги, которые я встречал по асму, и которые также с упором в Линукс, везде употребляется NASM. А вообще без разницы какой асм изучать, ты главное с синтаксисом определись, да и даже это не особо важно, ибо можно привыкнуть и к интеловскому синтаксису, и к AT&T, и GAS, и т.д. Всё это об одном и том же, но не с небольшими отличиями. Так что всё зависит от лит-ры. Для вката тебе подойдёт Ван Гуй, он кодит на NASM в Линуксе.
Аноним 21/11/23 Втр 11:54:12 2930646 498
Аноним 21/11/23 Втр 12:14:58 2930688 499
>>2930646
Ну, можешь и по этой книге из шапки вкатываться, наверное, она даже круче Ван Гуйа, потому что тут уже современное издание есть:
Assembly Language Step-By-Step - Programming with Linux Jeff Duntemann
Аноним 21/11/23 Втр 15:09:32 2931053 500
>>2930688
С моим пососным знанием английского я не вывезу книгу на нём. Либо читать 3-е издание.
Аноним 21/11/23 Втр 15:12:42 2931060 501
Аноним 22/11/23 Срд 01:45:23 2932039 502
Аноним 22/11/23 Срд 15:10:13 2932502 503
>>2932039
Мне кажется, что еxit коряво организован. Системный вызов под номером 60 завершает прогу.
Не знаю, как в FASM, но в NASM выход так организовывается:
xor rax, rax
xor rdi, rdi
mov rax, 60
mov rdi, 1
syscall
Аноним 23/11/23 Чтв 18:32:27 2934077 504
Снимок экрана о[...].png 253Кб, 1366x768
1366x768
>>2932502
ваш вариант ничего не изменил, зато я научился пользоваться SASM это типа иде. Так там заметил что похоже проблема в том что не останавливается вывод символом после окончания строки. Три символа выведены правильно потом похоже читает дальше по памяти, пока не доходит в область закрытую для проги. Мои знания ещё слишком слабы чтобы понять где ошибка
Аноним 23/11/23 Чтв 19:33:40 2934177 505
>>2934077
>ваш вариант ничего не изменил
>mov rdi, 1
Вот тут поправь на ноль, либо лучше вообще эту команду убери. Я чёт вчера лиху дал с единицей. Прога должна вернуть ноль, если нет ошибок.
Ну да, похоже, что он дальше идёт. Хотя, по коду что-то невидно каких-то явных ошибок. Советую тебе в том же SASM продебажить код. И понаблюдай за регистром rcx, мб, из стека какая-то хрень возвращается, возможно, что значение не того регистра возвращает и стека, т.е. либо более ранее, либо более позднее значение.
Аноним 23/11/23 Чтв 20:25:30 2934274 506
>>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 2934284 507
>>2934077
https://pastebin.com/pT4He9W4

Вот в таком варианте всё работает. Я заменил инструкции push rcx и pop rcx, на
до вызова системного вызова
mov r9, rcx
после вызова
mov rcx, r9
Аноним 28/11/23 Втр 19:49:05 2941416 508
kidzonya4.mp4 1854Кб, 576x1024, 00:00:10
576x1024
Аноним 29/11/23 Срд 20:51:27 2943036 509
>>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 2943432 510
>>2943036
Зачем тебе этот gdb? Ты шиз, что ли? У тебя же есть SASM в нём и дебажь! В гдб пиздос как неудобно дебажить, особенно когда нужно следить за регистрами!! И особенно, когда ты ничего не знаешь про гдб и только вкатываешься в асм!!! Это пытка, шо пиздос, дебажить в твоём положении асм код в гдб.
Аноним 30/11/23 Чтв 21:39:30 2944525 511
>>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 2945729 512
cyberpunk.gif 1286Кб, 700x393
700x393
>>2943036
ты должен добавить флаг компилятора, отвечающий за отладочный режим (-d вроде).
Там, где ты ловишь segfault, находится твой протык.

>>2943432
А чо? Я так свой игровой движ на несколько тыщ строк C++ дебажил, впервые юзая gdb.
Аноним 01/12/23 Птн 20:11:22 2945731 513
изображение.png 75Кб, 1462x275
1462x275
А нет, нужен флаг -g
Аноним 01/12/23 Птн 20:30:10 2945765 514
>>2945729
>Я так свой игровой движ на несколько тыщ строк C++ дебажил, впервые юзая gdb.
Ты жоский тип!
Но это разные вещи, когда чел совсем не сечёт в языке программирования, и когда чел пишет уже свой игровой движок.
Аноним 02/12/23 Суб 16:17:42 2946713 515
>>2945765
>Ты жоский тип!
Си, Синьор!
Аноним 03/12/23 Вск 18:27:54 2948328 516
Аноним 04/12/23 Пнд 01:14:13 2949215 517
>>2945729
>C++ дебажил
он легко дебажиться в любом идэ, без особых сборок.
А тут на асме во первых синтаксис разный интел или ат ат, во вторых компиляторы разные, я сейчас уже учусь по книжке с интел под виндой, а пытаюсь собрать это на линуксе fasm-ом и gas-ом
Аноним 04/12/23 Пнд 14:06:15 2949657 518
Снимок экрана о[...].png 70Кб, 668x411
668x411
Сейчас сижу адаптирую под gnu assembler
Аноним 04/12/23 Пнд 15:57:17 2949743 519
th-1318706626.jpg 34Кб, 474x614
474x614
>>2949215
епта, так в линухе gas по умолчанию, как настоящий преемник уникса, юзающий AT&T синтаксис, но который можно поменять на гейский синтаксис то ли в самой .s файле, то ли флагом компилятора.
AT&T-синтаксис по моему норм, я на нём raspberry pi (aarch64/ARM64) кодил. Вполне успешно.
Ладно там компиляторы разные (хотя есть дефолтный gas), но что вы так кипишуете из-за синтаксиса не пынямаю: либо юзай дефолтный, либо пытайся включить нужный.
Йа даже ассемблерные это было проще сделать, чем средствами самого C SIMD функции к крестам приковал.


За жизнь написал ~100 строк asm-кода.
_______Мамкин хацкер.
Аноним 04/12/23 Пнд 15:58:58 2949745 520
Кстати:
Which is better: fasm, nasm, yasm, masm or gasm?
Аноним 06/12/23 Срд 11:37:19 2952077 521
>>2949743
>AT&T-синтаксис
В каждой строчке на два символа больше :-) на доллар и процент. А так gas как будто лучше совместим с си с++.
Аноним 06/12/23 Срд 16:57:27 2952686 522
15307301594500.jpg 91Кб, 372x372
372x372
>>2952077
>В каждой строчке на два символа больше :-)
зато ЧИТАБЕЛЬНЕЕ
Аноним 06/12/23 Срд 22:09:23 2953200 523
Хакиры, у вас тред тонет.
Собираетесь перекатываться?
Аноним 07/12/23 Чтв 15:41:06 2953963 524
>>2953200
Когда ASM перестанет тонуть в чартах, тогда и перекатим.
Нехер нам тут андеглаунд расшатывать. Тем более когда ссылка на тред в закрепе доски есть.
Аноним 07/12/23 Чтв 15:43:03 2953966 525
cyberpunk.gif 1286Кб, 700x393
700x393
>>2949745
>Which is better: fasm, nasm, yasm, masm or gasm?
???
Аноним 07/12/23 Чтв 20:35:40 2954471 526
изображение(5).png 812Кб, 564x753
564x753
Аноним 10/12/23 Вск 13:56:31 2957685 527
Реверсеры могут хорошие деньги зарабатывать?
Аноним 11/12/23 Пнд 10:44:25 2958725 528
>>2957685
Хакеры видеоигр на донатах живут.
Аноним 11/12/23 Пнд 11:08:51 2958746 529
>>2957685
Тебя в гугле забанили? Там полно инфы о всяких багхантерах.
Аноним 11/12/23 Пнд 13:06:27 2958876 530
>>2958746
Точнее, я бы хотел истории от местных анонов услышать. Что ты сразу токсичишь?
На хх видел позиции 400к+, в зарубежных компаниях может и больше.

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

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

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

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

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

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

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

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

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

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

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

Как сделать кложу в 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 2961425 538
Аноним 13/12/23 Срд 10:23:42 2961453 539
>>2961316
Сделай еще один массив, туда запиши адреса оригинальных функций. А в funcs будут только адреса враппера. Внутри враппера вызывай оригинальную функцию. Профит

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

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

Тупой вариант - генерировать (макросом? кодогенератором?) N враппер-функций, каждый враппер будет дергать старую функцию.
Аноним 13/12/23 Срд 15:55:58 2961880 541
Аноним 13/12/23 Срд 16:29:17 2961920 542
>>2961880
Мне нравиться. К нему привыкаешь и винда кажется неудобным говном. Как минимум это интересное гиковское занятие, которое расширит твои CS горизонты. Линух это просто рай для программиста.
Правда, в НЕКОТОРЫЕ видеоигры на нём не сыграть.
Аноним 13/12/23 Срд 17:01:10 2961959 543
>>2961920
У меня сложилось впечатление, если занимаешься безопасностью/хакингом, то в первую очередь нужно изучать линукс и баш, многие вещи делаются проще и там больше специальных утилит. А винда это моветон.
Аноним 13/12/23 Срд 17:39:36 2962064 544
nvall9ngdd451-4[...].png 742Кб, 1920x1080
1920x1080
workstationfram[...].png 269Кб, 665x581
665x581
изображение.png 473Кб, 1000x563
1000x563
изображение.png 778Кб, 1280x720
1280x720
>>2961959
Про пентестинг хз что это и хакинг (серверов, сетей и прочего, не связанного непосредственно с виндой, как например вирусы под неё) ты верно думаешь. Kali linux стандарт.
Даже если ты просто пайтон-раб, то линух то же подходит.

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

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

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

А чему научать в reverse engineering кроме как пользоваться отладчиком-дизассемблером я не знаю.
Аноним 21/12/23 Чтв 11:43:59 2971313 556
И в какую страну ты собираешься? Сколько тебе лет?
И Джон Кармак кста был ахринительным асмоёбом и хацкером.
Аноним 21/12/23 Чтв 11:59:09 2971326 557
>>2971311
>можно будет стать Джоном Кармаком, Линусом Торвальдсом, Танненбаумом и много кем ещё.
Ты вряд ли станешь таким. Амбиции скромные.
Аноним 21/12/23 Чтв 20:04:51 2971857 558
Я хочу научиться сами знаете чему. Можно ли писать arm на x86 ? Как это делать максимально просто?
Аноним 22/12/23 Птн 11:09:36 2972410 559
изображение.png 79Кб, 1527x397
1527x397
изображение.png 28Кб, 569x253
569x253
>>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 2972497 560
Сейчас дошло до меня что на ассемблере можно написать прогу которая запустится на пк без ОС, а на Си можно ли такую написать?
Аноним 22/12/23 Птн 14:37:41 2972805 561
А есть ли в сфере реверса работа на аппаратном уровне? Hardware hacking, т.е. изучать как работает электронная плата, находить аппаратные уязвимости, получать несанкционированный доступ к прошивке для дальнейшего реверса. Любые методы от подключения к служебным портам типа uart, которых поленились убрать с платы, до вскрытия чипов и визуального считывания ячеек памяти через электронный микроскоп.

Или вот направление на исследование уязвимостей микроконтроллеров https://www.cl.cam.ac.uk/~sps32/mcu_lock.html
Аноним 22/12/23 Птн 18:10:01 2973006 562
cyberpunk.gif 1286Кб, 700x393
700x393
>>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 2973032 563
>>2973006
>Абсолютно всегда, где это надо, есть спецификация, в которой изложено всё, что известно разработчику данной платы
Какая-то наивная хуйня. Забей в общем.
Аноним 22/12/23 Птн 19:39:26 2973132 564
>>2973032
Рил думаешь, что кто-то делает эксклюзивные технологии эксклюзивно для кого-то, а не просто берёт избитую и всем известную технологию и чутка модифицирует её?
Даже Cell (архитектура ЦП PS3) была основана на POWER и работает пiд линукс или бисди
Аноним 22/12/23 Птн 19:39:58 2973134 565
что уже какбе делает её взламываемой
Лучший ASM. Аноним 22/12/23 Птн 20:22:52 2973153 566
Анонче, какой кроссплатформенный ассемблер (ассемблерный транслятор) лучше использовать: nasm, fasm, yasm или gas?
Аноним 23/12/23 Суб 05:17:01 2973451 567
Возможны стартапы по reverse engineering'у?
Аноним 23/12/23 Суб 12:58:00 2973603 568
>>2973451
Какбе чтобы быть реверсером, нужно быть гением, то есть быть умнее джаваскриптизёров. А если ты такой гений, то значит, что ты уже работаешь в intel или другой богатой организации.
Аноним 23/12/23 Суб 13:01:49 2973606 569
>>2973603
Что ты совсем затроллился, дружище. Пробуй тоньше.
Аноним 23/12/23 Суб 18:28:36 2973875 570
kidzonya lda.mp4 16302Кб, 480x852, 00:01:36
480x852
>>2973606
Да пошёл ты, тупой ублюдок.
Зачем тебе ревёрсинг? Ты оргазм от этого ловишь?
Аноним 23/12/23 Суб 19:09:18 2973928 571
Аноним 24/12/23 Вск 18:52:49 2975615 572
>>2973928
Так он прав, если бы ты был способен быть ревёрсером, создавать стартапы-хуяпы, не писал бы здесь ничего, а уже бы работал где-то, получая зеленую бумажку. А такие вопросы обычно задают бездарности всякие.
Аноним 24/12/23 Вск 19:03:42 2975645 573
Аноним 24/12/23 Вск 20:09:23 2975812 574
>>2975645
>АРЯЯЯ СЕМА СЕМЕНИ ВРЕТИ СЕМА СЕМЕН СЕМЯ
Аноним 26/12/23 Втр 07:21:22 2977844 575
>>2975645
>>2973928
>>2973606
>>2973451
Одно из важнейших качеств реверсера - умение искать, ведь реверс это по сути распутывание клубка и поиск нужного конца нитки. А ты со старта побежал что-то спрашивать у других людей и даже не попытался погуглить, хотя гуглинг решает 99% твоих проблем во всех областях. Так что аноны правы, ты уже проиграл.
Аноним 26/12/23 Втр 07:51:57 2977852 576
>>2977844
Проиграл тебе за щеку.
Moonlover 26/12/23 Втр 20:25:54 2979085 577
А чего тред не перекатываете?
Аноним 26/12/23 Втр 20:41:30 2979111 578
>>2973451
>Возможны стартапы по reverse engineering'у?
Создай бесплатный опенсорсный дизассемблер
Аноним 26/12/23 Втр 20:47:21 2979122 579
>>2973006
>Linux на Си написан
Всё же без ассемблера его не запустить, ну или на Си это делается сложнее чем на асме.
Аноним 27/12/23 Срд 14:54:17 2979812 580
изображение.png 84Кб, 849x576
849x576
изображение.png 492Кб, 1469x739
1469x739
изображение.png 1423Кб, 1358x614
1358x614
>>2979122
Minix ещё на ум пришёл.

>>2979111
пикрил 1.
У GNU есть целый пакет для работы с бинарниками -- binutils.
Олсо есть x64dbg. Пикрил 2 & 3.
Аноним 27/12/23 Срд 15:10:36 2979833 581
>>2504977
Двачую. Пока ничего адекватнее vi, gdb, SASM и x64dbg не нашёл.
В чём кодят гуру? В винасме или турбо борланде с ollydbg?
Аноним 28/12/23 Чтв 01:15:13 2980712 582
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 2982120 583
>>2504977
>В чем вы пишете и дебажите это?
emacs+gdb+cutter
Аноним 01/01/24 Пнд 19:08:38 2985491 584
Анончики, здравствуйте

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

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

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

Кстати, перекать пилите!
Аноним 11/01/24 Чтв 20:12:27 2998109 586
Доброго времени суток, аноны. Быдло-студент репортинг ин пхд, я не вчерашний школьник. Народился у мамы математиком, так вот мой коллега и по случайному совместительству тьютор посоветовал мне к исследованию разобраться с низкоуровневыми языками типа вашей асмы, либо С. Тащемта при получении степени сырны бакалавра я уже относительно глубоко изучал си, но увлечением кодингом, как таковым, он меня не заразил. Есть ли здесь аноны, которые брали асму за базис своего исследования в области компьютер саенса с точки зрения именно математики? Алсо тема "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 2998671 587
>>2998109
>асму за базис своего исследования в области компьютер саенса с точки зрения именно математики
я нихуя не понял
Bakin-ец 26/01/24 Птн 10:25:35 3020171 588
Народ, кто-то пробовал реверснуть формат .rbpack нового игрового движка RPG Developer Bakin?

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

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов