eCryptfs 파일의 헤더를 구문 분석하는 프로그램 (C가 아닌 Free Pascal 사용)을 작성 중입니다.이 고유 한 파일 헤더 '특수 표시'가 eCryptfs에 eCryptfs 파일임을 어떻게 알립니 까?
헤더의 값 중 하나는 바이트 7에서 시작하여 15 (8 바이트 값)로 끝납니다. 이 파일은 eCryptfs 파일로 고유하게 식별되는 값이기 때문에 나에게 유용합니다. 그래서 파일에서 이러한 값을 찾을 때 인식하도록 앱을 코딩하려고합니다.
그러나 마커 자체는 무작위로 생성 된 4 바이트 값 (X)을 0x3c81b7f5 (Y)의 다른 4 바이트 정적 16 진 값과 XOR 연산하여 생성됩니다. 생성 된 값은 4 바이트이며, Z.X + Z는 함께 8 바이트 특수 마커를 형성합니다. Y 자체는 파일 헤더에 저장되지 않습니다. 따라서 0x3c81b7f5 (Y) 값이 헤더에 저장되지 않는다는 것을 알기 위해 응용 프로그램을 코딩하여 다른 4 바이트가 하나의 정적 값과 다른 임의의 하나의 XOR 결과로 표시되도록 코딩 할 수 없습니다. , 나는 그것이 어떻게인지 알아낼 수 없다.
eCryptfs 프로그램이 eCryptfs Launchpad 사이트 (https://answers.launchpad.net/ecryptfs/+question/152821)에서이 값을 "eCryptfs 파일"로 인식하는 방법을 묻는 질문에 커뮤니티 중 한 명이 아래 링크 된 관련 C 소스 코드를 참조했습니다. C가 특수 마커를 인식하는 방법을 이해할만큼 충분히 이해할 수 있습니다. 누군가 내 응용 프로그램에 같은 종류의 인식 프로세스를 코딩 할 수 있도록 도와 줄 수 있습니까? 저는 소스 코드가 필요 없지만 누군가에게 설명하기를 원합니다. C 코드는 운동 방법 "아 그래, 그건 eCryptfs가 바로 거기 파일입니다!"나는 내가 할 수있는 내 응용 프로그램을 코딩 할 필요가 무엇인지 알 수 있도록.
http://fxr.watson.org/fxr/source/fs/ecryptfs/crypto.c?v=linux-2.6;im=excerpts#L1029
그런 세부 사항을 자세히 설명해 주셔서 감사합니다. 그거 멋지 네, 고마워. 지금 코드를 이해합니다. –