Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Вопрос о контрольной сумме (https://forum.antichat.xyz/showthread.php?t=144174)

cyber_xz 28.09.2009 13:18

Вопрос о контрольной сумме
 
Кто может помочь:есть 10к одинаковых файлов с разными именами.Нужна программа\скрипт которая добавит в каждый файл рандомный кусок мусорного кода,чтобы контрольные суммы были разные.Как возможно реализовать такое??запись версион инфо или иконок влияет на CRC?Заранее спасибо

slesh 28.09.2009 15:47

если это exe или dll файлы то любое изменение в файле повлияет на CRC
если отдельно её вычислять. А если юзать crc в PE заголовке то не все компиляторы её заполняют и она никем не проверяется.
А вообще достаточно будет в конец файла дописать 512 байт - мусора.
и эже всё отлично будет. за исключеним случая если прога проверяет свою CRC

s0l_ir0n 28.09.2009 15:53

в большинстве случаев безопасно дописывать в конец файла нули, если это ПЕ файлы, то можно вообще все что угодно в конец пихать оно будут считаться оверлеем, т.к. вне секций. А вот если это какие-нибудь архивы или еще что-нибудь с самопроверкой чексуммы, как сказал Slash, то тут сложней...

cyber_xz 28.09.2009 16:03

В принципе я понял,можете пример кода привести,или написать софт за монетку??Просто никогда не занимался таким,а тут нужно срочно

slesh 28.09.2009 16:26

обыная консольная команда.
copy /b file.exe + file_musor.txt new.exe
осталось тока сгенерить мусорные текстовые файлы.

cyber_xz 28.09.2009 16:30

Спасибо,сейчас буду пробовать.Я просто не знал команду как вообще дописать что либо в середину файла.

Kaimi 28.09.2009 16:34

Должно работать, если я не накосячил
Код:

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;



Время: 10:57