Практика языка C (МФТИ, 2023-2024). Семинар 6.2. Условные переходы и память в ассемблере x86.

preview_player
Показать описание
Практические занятия по языку C на первом курсе МФТИ. Кафедра информатики.

На этом занятии мы погрузимся в работу с флагами. Мы начнём с того что обсудим детали goto. Далее вспомним кодировку для целых чисел. Далее мы увидим как отличаются знаковые и беззнаковые сравнения. Потом мы познакомимся с концепцией "эффективного адреса" и научимся работать с памятью. В конце нас ждёт погружение в тёмные искусства.

Семинарист: Константин Владимиров.
Дата: 4 марта 2024 года.
Съёмка: Марк Гончаров.
Звук: Юлий Тарасов.

Timeline
00:00 Немного про goto
11:29 Условные переходы в x86
14:30 Вспомним 2-адические числа
20:14 Снова к условным переходам
30:15 Беззнаковые сравнения
35:40 Эффективный адрес в x86
40:37 Выбираем синтаксис
44:00 Время решать задачи
46:00 Кодировка инструкций на практике
51:30 Введение в крэкми
01:02:10 Проблемы редактирования ассемблера
01:10:55 Разбор проблемы AGF и завершение

Errata
* Слайд 27, 31:05 -- на самом деле ja проверяет коньюнкцию условий.
Рекомендации по теме
Комментарии
Автор

О Боже какое счастье прямой эфир, ваши лекции золото

MikhailGoncharov-tlcr
Автор

посмотрел, теперь буду как дурак умным ходить :-)
лучшие лекции по тематике

mahabat
Автор

Тааак, всем привет. Дядя Женя 41 годик снова пришёл на лекцию 😊. Пошёл смотреть с самого начала.

sibedir
Автор

Зараза! Залез на пару минут глянуть о чем семинар. Опомнился только после окончания видео. Подача отличная, материал усваивается моментально.

intivi
Автор

Просто смотрю и нкайфую, спасибо огромное👍👍👍

phil
Автор

Как круто что я вас нашел, так доходчиво все, еще бы по языкам для ПЛИС такого преподавателя)

АлексейАндреевич-жж
Автор

Как всегда великолепно и четко объяснили 👍

ArtemDaineko-fp
Автор

Какая ностальгия. Я помню учился ассемблеру по книжке, отладчик был OllyDBG, а в качестве дизассемблера использовал HIEW и дебажил крякмисы из журнала Хакер :-D интернет тога был был по карточкам и диалап модемчику

pavelrid
Автор

На 54:28 Вы говорите что "check" никогда не вернет ноль, но именно ноль она и будет всегда возвращать. int check() {return (g_code2 == g_code); Логическое сравнение на равенство она никогда не пройдет (из-за g_code2 = code + 1), поэтому "check" вернет false - 0.

smolewood
Автор

Спасибо за семинар) Как всегда - потрясающе

44:11 Могу ошибаться, но кажется, что код на C мог бы выглядеть так:

int foo(int *arr, int len) {
int i, value = 0;
if (len <= 0)
return 0;
for(i = 0; i < len; i++) {
value += arr[i];
arr[i] = value;
}
return value;
}
То есть: заполнить массив прогрессией, где каждый очередной член равен сумме предыдущих, начиная с arr[0]

КонстантинНестеров-ви
Автор

код на 18 слайде с goto можно заменить на это
for (i=0; i<umax;++i)
for (j=0; j<umax;++j) {
if(upper_cond()) lower_action();
if(lower_cond()) upper_action();
}
лайк за лекции

voffkaopera
Автор

Хорош!

Ещё бы полноценный курс по реверс-инжинирингу...

malsh
Автор

goto активно используется в ядре Линукса в probe функциях драйверов для перехода к обработке ошибок.

Airatgl
Автор

3:50 on right side it is not while loop. It is do while

MahdiyDev
Автор

Чуть-чуть не так считали точку приземления. В момент вычисления "куда пойду" IP равен уже 0x1244, и тогда точное попадание на второй call abort (0x1244+0x2B=0x126F).
И ничего не рассказали про то, зачем компилятор на O1 бережно сдублировал нам аборты (чтобы мы не ругали потом отладчик).
Но это все мелочи, лекции очень крутые!

ЮрийПершин-ез
Автор

@tilir, Константин, вы упомянули упомянули способ хранения данных, в данном кейсе little-endian. На примере опкода 74 2b на этом тайминге 57:07. Открыв бинарь через хекс- редактор порядок был прямым, как будто это big-endian, я чтото упускаю?

evgenyrozhnowsky
Автор

Тут еще и немного реверс инжиниринга😀 Константин, есть инструмент radare2, очень удрбный дизассемблер, hex editor и еще еще еще👍👍👍

phil
Автор

1:23:28
То неловкое чувство, когда решил cm0 за полтора часа((

napalm
Автор

в инете давно уже забрасывают асм, а зря..и курсов никто нормальных не делает для х64, крис касперски толковые книжки выпустил про exe и реверс, но охото свежего

KrINekroN
Автор

57:10 Так вот кто эти хулиганы, которые мой айпи с помощью артмани взломали

sibedir