Решение сводилась к замене значения контрольной суммы плеера на нужное нам.
Антивирус, мониторил плеер по заголовку окна, в случае нахождения
открывал файл и производил подсчет контрольной суммы, в случае если
контрольная сумма равна 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".