Вопрос о контрольной сумме

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by cyber_xz, 28 Sep 2009.

  1. cyber_xz

    cyber_xz New Member

    Joined:
    7 Jul 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Кто может помочь:есть 10к одинаковых файлов с разными именами.Нужна программа\скрипт которая добавит в каждый файл рандомный кусок мусорного кода,чтобы контрольные суммы были разные.Как возможно реализовать такое??запись версион инфо или иконок влияет на CRC?Заранее спасибо
     
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    если это exe или dll файлы то любое изменение в файле повлияет на CRC
    если отдельно её вычислять. А если юзать crc в PE заголовке то не все компиляторы её заполняют и она никем не проверяется.
    А вообще достаточно будет в конец файла дописать 512 байт - мусора.
    и эже всё отлично будет. за исключеним случая если прога проверяет свою CRC
     
  3. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    в большинстве случаев безопасно дописывать в конец файла нули, если это ПЕ файлы, то можно вообще все что угодно в конец пихать оно будут считаться оверлеем, т.к. вне секций. А вот если это какие-нибудь архивы или еще что-нибудь с самопроверкой чексуммы, как сказал Slash, то тут сложней...
     
  4. cyber_xz

    cyber_xz New Member

    Joined:
    7 Jul 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    В принципе я понял,можете пример кода привести,или написать софт за монетку??Просто никогда не занимался таким,а тут нужно срочно
     
  5. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    обыная консольная команда.
    copy /b file.exe + file_musor.txt new.exe
    осталось тока сгенерить мусорные текстовые файлы.
     
  6. cyber_xz

    cyber_xz New Member

    Joined:
    7 Jul 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Спасибо,сейчас буду пробовать.Я просто не знал команду как вообще дописать что либо в середину файла.
     
  7. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Должно работать, если я не накосячил
    Code:
    use warnings;
    
    #Директория
    my $dir = '.';
    #Расширения обрабатываемых файлов
    my @ext = qw(txt);
    
    $| = 1;
    my %ext;
    $ext{$_} = 1 for @ext;
    
    opendir(my $hn, $dir) || die "Error opening $dir - $!\n";
    for my $file(readdir $hn)
    {
     my ($prefix, $ext) = ($file =~ /^(.*)\.(.*)$/);
     if(defined $ext{$ext})
    	{
    	 print "Processing $file\n";
    	 open(F, ">>$file") || die "Error opening $file - $!\n";
    	 binmode F;
    	 print F rand 1000000;
    	 close F;
    	}
    }
    closedir $hn;
    
     
    _________________________