Żeby "naprawić błąd" musiałbyś za pomocą np. assemblera skoczyć do odpowiedniego miejsca w pamięci podmienić dany ciąg znaków na inny (na taki, który siedzi gdzieś w plikach, w których jest już obliczona prawdiłowa suma kontrolna) i pewnie, jeśli to jest jedyny "błąd", to plik zostałby odczytany. Bez napisania injector'a, czy czegoś w tym stylu otworzenie tego pliku/katalogu będzie niemożliwe moim zdaniem. Te sumy kontrolne (checksum), zostały do czegoś wymyślone w końcu. Jeśli chodzi o assembly, to można by napisać tak, że żeby dostać się do plików, to nie trzeba byłoby w ogóle sprawdzać sumy kontrolnej, ale wtedy trzeba byłoby zmodyfikować źródłowe pliki zależnie od tego jakim programem to otwieramy. Inna opcja, to taka, w której napisałoby się swój program do otwierania takich archiwów bez sprawdzania sumy kontrolnej, to wtedy to by Cię wpuściło od razu do przejrzenia swoich plików w archiwum np. zip.
Komputer wysyłający dane oblicza ich sumę kontrolną i dołącza ją do pakietu danych. Komputer odbierający dane również oblicza sumę kontrolną, lecz z odebranych danych
wikipedia
Chodzi o to, że suma kontrola jest obliczona dla np. spakowanego zip'a. I teraz jeśli chcesz te dane pozyskać musisz podać tę samą sumę kontrolną* (tzw. klucz) dla tego programu lub innego, żeby Cię wpuścił. Podanie sumy kontrolnej w tym programie winrar dzieje się chyba automatycznie, więc bez sposobu pierwszego nie wejdziesz po potrzebne pliki.
Druga opcja, to wysłanie ponownie nowego np. zip'a, jesli jeszcze masz dostęp do oryginalnych plików.
Cytat z quora.com
Generally speaking, you cannot. A checksum is used to check the integrity of a file. Basically, you run a cheksum generating program on a file, and offer the results along with the file to be downloaded. After the file is downloaded, you generate a new checksum. If the files match, the original and copy of the files are identical. If RAR is telling you the file checksum is wrong, then the file is corrupt and you need to download a new copy.
* Suma kontrolna powinna się chyba zgadzać z tymi danymi pierwotnymi, żeby móc zidentyfikować, czy to jest to samo lub podobne, może różniące się jakąś flagą/znakiem w ciągu. W tym ciągu powinien być identyfikator, chyba że cały ciąg jest identyfiktorem. Tak mi się wydaje, w każdym razie odsyłam do artykułów odnośnie checksum, żeby zweryfikować, to co napisałem.