Решение сводилась к замене значения контрольной суммы плеера на нужное нам.
Антивирус, мониторил плеер по заголовку окна, в случае нахождения
открывал файл и производил подсчет контрольной суммы, в случае если
контрольная сумма равна 1ECF9BF2, выдавал положительное решение,
в противном случае с негодованием завершал работу плеера.

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

Решение: Имеем контрольную сумму равную 01EC2554, необходимо получить значение 1ECF9BF2.

01EC2554 -> 1ECF9BF2
FE13DAAB -> E130640D 

FE=a3 13=a2 DA=a1 AB=a0
E1=f3 30=f2 64=f1 0D=f0

e3=f3 =E1 -> 4B E10E9818
d3=f2+e2 =30+0E=3E -> E7 3E6E77DB
c3=f1+e1+d2 =64+98+6E = 92 -> CC 92D28E9B
b3=f0+e0+d1+c2 = 0D+18+77+D2 = B0 -> 7A B0D09822

Для того что бы получить из E1->E10E9818 необходимо воспользоваться доступной таблицей
контрольной суммы (crc32) и найти dword, по первому байту
в данном случае E1, единственным вариантом будет E10E9818
смещение по таблице этого dword'а=4B. Точно такую же процедуру
необходимо совершить и с другими байтами (3E,92,B0).

7A=n1 CC=n2 E7=n3 4B=n4

x=n1+a0=7A+AB=D1
x2=n2+b0+a1=CC+22+DA=34
x3=n3+c0+b1+a2=E7+9B+98+13=F7
x4=n4+d0+c1+b2+a3=4B+DB+8E+D0+FE=30

Т.о. для того что бы изменить контрольную сумму на
значение 1ECF9BF2, необходимо добавить в конец файла следующие
4 байта: D134F730

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

Тем не менее условие задачи выполнили три участника.
Победитель выбирался исходя из качества и
быстроты выполнения задачи - это постоянный
участник наших головоломок Samvel.

Для более подробного представления о
восстановлении контрольной суммы можно прочитать в стать Anarchriz "CRC and how to Reverse
it".

 

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии