Может ли кто-нибудь дать некоторое представление о следующем коде сборки:
Дополнительная информация:
Загрузчик на самом деле представляет собой небольшой 16-битный загрузчик, который расшифровывается с помощью расшифровки Xor, более крупный загрузчик Linux, расположенный в секторах с 3 по 34. (1 сектор на этом диске составляет 512 байт).
Все это представляет собой систему защиты для exec, работающего на встроенном Linux.
версия со снятой защитой имеет уже расшифрованный загрузчик linux (мы смогли его реверсировать с помощью IDA), поэтому мы предполагаем, что ключ xor должен быть сделан только с нулями в версии без защиты.
если мы посмотрим на смещение от 0x800 до 0x8FF в версии со снятой защитой, оно не заполнено нулями, поэтому это не может быть ключом, иначе эта версия не может быть загружена, она будет использовать xor для простых данных и загружать только мусор.
секторы 3->34 зашифрованы в исходной версии и открыты в нашей версии (защита снята), но код MBR (маленький загрузчик) идентичен в обеих версиях.
Так может быть в ассемблерном коде MBR есть небольшая деталь, которая немного меняет место ключа xor?
Это просто упражнение, которое я делаю, чтобы лучше понять загрузчики ассемблерного кода, и я нашел это довольно сложной задачей. Я благодарю вас за ваш вклад до сих пор!