2010-04-27 5 views
1

this question의 역함수를 사용하고 싶습니다.실행 파일에서 배열을 추출하려면 어떻게해야합니까?

실행 파일에 배열로 파일을 포함하고 있으며 나중에 실행 파일에서 포함 파일을 추출하고 싶습니다.

objcopy가 유용 할 것 같지만 아직 적절한 주문을 알아 내지 못했습니다.

:

+0

역수 란 무엇입니까? 그 질문은 파일을 실행 파일에 배열로 포함시키는 방법입니다. – Stephen

+0

나는이 질문을 잘 이해하고 있는지 모르겠다. 그러나 배열을 파일로 바이트 단위로 출력하지는 않을 것이다. – tiftik

+0

tiftik : 실행 파일을 실행하지 않고 포함 파일을 추출하고 싶습니다. – bstpierre

답변

2

포함 된 파일을 고유 섹션에 배치하면 objcopy를 사용하여 해당 섹션을 원시 출력 파일로 추출 할 수 있습니다. gcc의를보세요 __attribute__((section("embedded_file"))) 또는 다른 방법으로 다른 섹션으로 가져올 수 있어야합니다 링커를 사용하여 다른 방법으로 exe 파일을 받고 있다면,하지만 난 그 일을 잘 알고 있어요.

+0

감사합니다. 나는 이것도 약간 보았다, 나는 그것을 시험해 보겠다. – bstpierre

1

당신이 파일의 데이터를 찾을 수 있도록 배열의 시작 부분에 인식 할 수있는 패턴을 넣어 (편집 질문을 명확하게, 나는 어떻게 든 ... 원래 편집에서의 핵심을 제거).

Windows 실행 파일을 만드는 경우 데이터를 배열로 인코딩하는 대신 실행 파일의 이진 리소스에 저장하면 일반 Windows 리소스 함수 (FindResource, LoadResource 등)를 사용하여 데이터를 가져 오십시오 (처음에는 정상적으로 작동하는 것보다 올바르게 작동하려면 다소 까다 롭습니다).

+1

이것은 리눅스 (elf32-powerpc) 실행 파일입니다. 나는 패턴 사냥보다 더 튼튼한 무언가를 찾고 있습니다. – bstpierre

+0

@bstpierre : 몇몇 사람들은 Unix 실행 형식으로 리소스와 같은 기능을 추가하는 프로젝트를 수행했습니다. 한 가지 예를 보려면 http://www.taniwha.com/~paul/res/을 참조하십시오. –

+0

포인터를 보내 주셔서 감사합니다. – bstpierre