내가 버퍼에 .DOCX 파일을 읽고 성공적으로 새 파일에 쓰고에 .DOCX 파일을 작성합니다. (C에서 fread와 fwrite 사용하기) 그러나 지금 나는 암호화 목적으로이 프로젝트의 범위를 향상시키고 자한다. 버퍼를 조작 할 수 있도록하려면 새 파일에 쓰십시오.어떻게 읽고, 조작 및 C
이제 하나 개의 질문은 다음, 나는 어떤 조작을 필요로 할 수 있는가? 버퍼의 위치 15에 문자 's'를 쓰는 것과 같이 실제로는 아무 것도 될 수 있습니다. 아래와 같이이 새 버퍼를 작성합니다 (위치 15에 문자가 있지만 나머지 버퍼는 변경되지 않습니다). 새로운 .docx 파일
buffer[15] = 's';
이렇게하면 파일이 손상되었습니다. 필자는 .docx 파일의 구조를 완전히 알지 못하기 때문에이 바이트 번호 15는 잠재적 인 식별자 또는 헤더 또는 손상되지 않은 파일을 만드는 데 필요한 .docx 파일의 중요한 정보가 될 수 있습니다.
는 그러나, 나는 .DOCX 내부 구조에 대해 알고있는 사항은 다음과 같습니다
그것은 XML 파일로 구성이 함께 압축.
.docx 파일로 작성된 콘텐츠 (예 : test.docx라는 파일이 있고 여기에 "안녕하세요, 안녕하세요?"가 포함되어 있습니다.) "Hello, how are you?" XML 파일에 저장됩니다.
함께 압축 된 파일 중 .rels (확인하지 않음) 확장 파일이 있습니다.이 파일은 콘텐츠가 파일에 저장되는 위치, 즉 콘텐츠를 찾을 위치를 MS에 알립니다.
이 3 가지 이외에도 .docx 파일의 구조에 대해 많이 알지 못합니다. 이제이 모든 것을 고려하여 함께 압축 된 XML 파일에서 .docx 파일의 내용을 추출하고 버퍼에서 C로 읽은 다음 필요에 따라 버퍼를 변경하고 새 파일을 만들 수있게하려고합니다. 버퍼에있는 새로운 내용으로
사람이를 통해 나를 인도 할 수 있습니까? 코드를 제공해야하거나 다른 필수 세부 정보를 제공해야하는 경우 친절하게도 언급하십시오. 미리 감사드립니다. 이 모든
편집
목적 :
나는 암호화를 위해 모든이 작업을 수행 할 수. AES를 사용하여 파일을 암호화하면 전체 파일을 읽을 수없고 손상되어 내부의 모든 내용이 변경됩니다. 해당 파일의 암호를 해독하면 파일을 열 수 없습니다. 내 생각 엔 AES 암호 해독 알고리즘은 암호화 된 파일의 암호 해독에서 복구 된 콘텐츠를 구문 분석하여 새로운 .docx 파일로 변환하는 방법을 알지 못하므로 내용/구조를 적절히 배치 할 수 없습니다.
나는 그것을 시도했다. 원본 docx 파일은 14KB 였고 암호화 된 docx 파일은 14KB뿐 아니라 해독 된 docx 파일이었습니다. 그러나 암호 해독 된 파일을 열려고하면 파일이 손상되었다고 표시됩니다. 또한 16 진수 편집기에서 확인하려고했습니다. 복호화 된 파일은 정확히 30 바이트 뒤에 단지 00 바이트가 있습니다.
__ 실제로 무엇을 달성하려고합니까? 이것은 [XY 문제] (http://xyproblem.info/) 일 수 있습니다. –
'docx' 문서는 표준화 된 [OfficeOpen XML] (https://en.wikipedia.org/wiki/Office_Open_XML) 문서로되어 있습니다. Office는 비표준 확장 기능을 추가 한 것으로 알려져 있으며 간신히 문서화되었거나 전혀 문서화되지 않은 기능에 대한 논란이있었습니다. 나는 당신이 당신을 위해 문서를 다룰 라이브러리를 찾고, 그것을 스스로 시도하려고하지 말 것을 제안한다. –
@MichaelWalz 버퍼에있는 .docx 파일의 내용을 읽고 버퍼에있는 내용을 추가 한 다음 나중에 .docx 파일을 새로 만들고 싶습니다. – user52327