Жестоко поиздевавшись над McScript с Олей и Идой (сильные такие дэвочки) удалось подсунуть "самодельную" gdeltaavv.ini (точнее сложно было заставить принять правильный PkgCatalog.xml) . Однако лазейка нашлась - есть момент, когда распакованный файлик из полностью проверенного (подписанного) архива лежит беззащитный на диске. Остаётся его заменить - и он воспримется как родной. Вчера я пытался поломать место, где проверяется этот архив - удалось заставить скушать мой неподписанный и незашифрованный cab вместо PkgCatalog.z - однако проверка подписей всё испортила. Вместо слома алгоритма подписей - всего лишь замена файла после распаковки. Не очень здорово - но для целей однократно "подсунуть" нужные обновления - вполне годится.
Теперь найденная в скайнете версия 4244 обновилась до 4292 - которая уже есть в актуальной базе обновлений. Почему-то ночью не докачались обновления с 4290 до 4305..
Что-то я намудрил откуда их брать. Остатки хотел взять от наишников.. Но не взялось. Надо логи ночной скачки посмотреть. Ладно. Пара исправлений в gdeltaavv.ini и теперь актуальная версия 4292 а не 4305 :) Дообновимся завтра штатными средствами.
В ini файле зачем-то убрали размер файлов - однако контрольная сумма та-же самая - старые алгоритмы работают :) Сплошное издевательство над crc32.
use String::CRC32;
sub validate($)
{
open S,'<'.$_[0];
binmode S;
my $sum=crc32(*S) ^ -1;
close(S);
sprintf "$_[0] %04X,%04X %i",$sum>>16,$sum&0xFFFF,$sum;
}
sub validate_ini($)
{
open S,'<'.$_[0];
binmode S;
my $sum=crc32(*S,-1) ^ -1;
close(S);
sprintf "%s=%u",$_[0],$sum;
}
Спасибо немцам за хорошую накопительную (просто историческую) базу обновлений :)
Будем ломать дальше. Блин, откуда брать DateTime в каталогах - два часа бился над алгоритмом преобразования из unix time в мелкософтовское время - (злой Перл не умеет понимать 64-битные целые числа - спасибо Руби не оплошал) - а оказалось зря. Наишники отдают вместо времени модификации файлов - текущее.. Так что время файлов - всего лишь - когда немцы обновлялись. Причём и web и ftp отдают текущее. ИИС, блин.