깨진 jpg 파일을 복구 13 44 6E C5 FD

안녕하세요. 비슷한 질문이 많이 있었지만, 많이 검색 한 후 내 상황을 설명하는 게시물을 찾지 못했습니다.

특정 지점 이후에 색상이 잘못되고 모든 픽셀이 왼쪽으로 이동하는 jpg 파일이 있습니다. 나는 이것이 변경되는 시점에서 누락 된 바이트 때문이라고 생각합니다. vi로 파일을 편집하려고했지만 누락 된 바이트가 어디에 있는지 알아내는 것이 불가능한 것 같습니다 .vi는 사용하기가 매우 복잡합니다. 나는 또한 나노를 시도했지만 바이너리 안전하지 않습니다.

이것은 문제의 이미지 중 하나입니다.

여기에 이미지 설명을 입력하십시오

그래서 두 가지 질문을하고 싶습니다 :

  1. Linux에서 이러한 이미지를 복구하려면 어떻게해야합니까?
  2. Linux의 바이너리 텍스트 편집기에서 파일을 안전하게 열고 편집하려면 어떻게해야합니까?

편집 :
hexedit를 사용하여 위치 0x27F000에서 0x27F403까지는 0xff가 하나 뿐이고 0x27F404에서 0x27FFFF는 0x00 만 있다는 것을 발견했습니다. 이것은 다음과 같은 것을 만듭니다 :

    0027EFF0   F8 83 C3 E2  09 35 AF 13  44 6E C5 FD  C7 EF 23 E8  .....5..Dn....#.
    0027F000   FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
    [...]
    0027F400   FF FF FF FF  00 00 00 00  00 00 00 00  00 00 00 00  ................
    [...]
    0027FFF0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
    00280000   8F 39 6E 47  4F 43 5F 36  7C 73 66 F1  0D AE AD AF  .9nGOC_6|sf.....

임의의 숫자 로이 바이트를 변경하면 이미지의 이동을 해제 할 수 있었지만 여전히 색상 문제가 있습니다.

누군가 jpeg 인코딩에 대한 문서를 알려 주시면 8×8 블록이 끝나는 위치를 알 수 있습니다.

왜 위치가 너무 정확한지 궁금합니다 (0x27F000 ~ 0x27FFFF). 캠의 버그 또는 사용한 메모리 카드 일 수 있습니까?



답변

http://en.wikipedia.org/wiki/JPEG#Entropy_coding 에있는 Wikipedia 기사 에는 많은 정보가 있습니다. 현재 문제와 가장 관련이있는 것은 다음과 같습니다.

이전 양자화 된 DC 계수는 현재 양자화 된 DC 계수를 예측하는데 사용된다. 둘 사이의 차이는 실제 값이 아니라 인코딩됩니다. 63 양자화 된 AC 계수의 인코딩은 이러한 예측 차이를 사용하지 않는다.

이미지의 나머지 부분에서 색상이 변하는 것은 하나의 잘못된 DC 계수로 인해 나머지 부분에 모두 적용됩니다. 색상에 안정적으로 영향을 미치는 작은 영역 (아마도 1 바이트, 2 바이트-실제로는 비트 시퀀스 일 수 있음)을 찾아서 다른 값을 시도 할 수 있습니다.

그래픽 편집기에서 이미지를 간단하게 수정하는 것이 더 쉬울 수 있습니다. 시프트 (및 랩 어라운드)가 아닌 게시 ​​한 이미지와 같이 밝기가 더 낮을 수 있습니다. 영역을 선택하고 레벨 도구를 사용할 수 있습니다. 색상 이동과 관련이있는 다른 사용자는 색상 채널 (JPG는 RGB 또는 Y’CbCr 일 수 있음)의 분해를보고 각 채널을 개별적으로 고정하여 채널을 교환하여 충분한 결과를 얻을 수 있습니다.

편집 : 죄송합니다. 귀하의 질문이 몇 살인지 보지 못했습니다. 아마도 이것은 당신이나 다른 사람에게 유용 할 것입니다.


답변

2) Linux의 바이너리 텍스트 편집기에서 파일을 어떻게 안전하게 열고 편집 할 수 있습니까?

/programming/839227/how-to-edit-binary-file-on-the-unix-systems 에서 많은 훌륭한 이진 편집기를 찾을 수 있습니다.

내 개인적인 마음에 드는 사람은 vim 입니다 : %! xxd hack and hexedit


답변

시도 했습니까 photorec? 다음과 같이 우분투에 설치할 수 있습니다.

sudo apt-get install testdisk

다음을 사용하여 설명서를 확인하십시오.

man photorec

photorec터미널에서 다음과 같이 실행 하십시오.

photorec

소스와 대상을 선택하고 jpg 파일을 자동으로 복구하도록 요청합니다.

원본이 손상되지 않도록하려면 dd명령 을 사용하여 복사하는 것이 좋습니다 . 행운을 빕니다!


답변

방금 Photorec을 사용하여 손상된 SD 카드에서 사진을 복구했습니다. 모든 파일을 복구하지는 않았지만 많은 수의 파일을 복구하는 데 큰 도움이되었습니다. 그 말로 MP4 비디오는 복구되었지만 열 수 없었습니다. 일부 JPEG 파일은 복구되었지만 샘플은이 스레드의 시작 부분에 제공된 것처럼 보지 못하거나 실제로 엉망이되었습니다. Photorec는 그들을 고치지 못했습니다.

결론 : Photorec은 손상된 파일 시스템에서 손실 된 파일을 검색하도록 설계되었지만 손상된 파일의 내용을 복구하기 위해 아무것도하지 않습니다.


답변