none
Build시 생성되는 Section 들의 Virtual Address 값을 제가 임의로 설정할수 있나요?? 또는 Build후 Relocate 할수 있을까요???? RRS feed

  • 질문

  • Section Access 문의드렸는데 답변 잘 받았습니다.

    덕분에 Section 정보를 초기에 저장한후 POR (Power On Reset)시

    해당 Section의 변수들을 초기에 저장한 값으로 변경하는게 가능하게 되었습니다.

    추가 질문은 다음과 같습니다.

    궁극적으로는 VS의 Build의 결과인 exe 파일의 Memory Map이 Target 제품의 MemoryMap과 동일하게 하는건데요.

    다음과 같은 순서로 시도해봤습니다. (Build후 재설정)

    1. Build한다. (exe 파일 생성)

    2. exe파일을 Open하여 Relocate 하고 싶은 SectionHeader의 정보를 변경후 저장한다. (VirtualAddress 값)

    3. exe 파일을 다시 실행한다. (실행안됨)

    제가 원하는 건 Section들의 Virtual Address를 임의로 지정하고 싶은건데요.

    방법은 두가지 일것 같습니다.

    1. Build시 설정: Build시 Section들의 Virtual Address정보를 추가로 입력하여 Build 한다. (가능한지 모르겠네요.)

    2. Build후 재설정: Build시 생성된 exe파일을 PE Format 형태로 Read하여 위 시도한 방법처럼 수정후 저장한다.

    위 2개의 방법에 대해 가능여부만이라도 알수 있으면 좋겠습니다.

    감사합니다.

    2016년 7월 15일 금요일 오전 8:10

답변

  • 1. 빌드시 설정하는 것이 가장 좋겠지만, 제가 아는 범위 내에서는 Visual C++에서 Section 관련 주소를 직접 지정하는 옵션은 없습니다. (섹션 규모는 아니고 DLL/EXE 규모로는 base address 위치를 지정할 수는 있습니다. 단, dll은 relocating 될 수 있습니다.)

    2. 가능은 할텐데, 현재 빌드 과정과 통합할 알려진 도구는 없는 듯 합니다. GUI로는 다음의 도구가 검색됩니다.

    http://www.heaventools.com/PE_Explorer_section_editor.htm

    근데, 편집한다는 것과 그것이 실제로 잘 동작하기 위해 다른 여러 의존 값들을 바꿔주는 것은 다른 문제일 수 있습니다. 따라서 PE 파일 포맷에 대한 공부를 좀 하셔야 할 것입니다. (근데... 쉬울까요? ^^)

    • 답변으로 표시됨 sundong0724.kim 2016년 7월 20일 수요일 오전 1:27
    2016년 7월 16일 토요일 오후 1:44

모든 응답

  • 1. 빌드시 설정하는 것이 가장 좋겠지만, 제가 아는 범위 내에서는 Visual C++에서 Section 관련 주소를 직접 지정하는 옵션은 없습니다. (섹션 규모는 아니고 DLL/EXE 규모로는 base address 위치를 지정할 수는 있습니다. 단, dll은 relocating 될 수 있습니다.)

    2. 가능은 할텐데, 현재 빌드 과정과 통합할 알려진 도구는 없는 듯 합니다. GUI로는 다음의 도구가 검색됩니다.

    http://www.heaventools.com/PE_Explorer_section_editor.htm

    근데, 편집한다는 것과 그것이 실제로 잘 동작하기 위해 다른 여러 의존 값들을 바꿔주는 것은 다른 문제일 수 있습니다. 따라서 PE 파일 포맷에 대한 공부를 좀 하셔야 할 것입니다. (근데... 쉬울까요? ^^)

    • 답변으로 표시됨 sundong0724.kim 2016년 7월 20일 수요일 오전 1:27
    2016년 7월 16일 토요일 오후 1:44
  • 제가 원하는 최종 결과(?) (방법이 있습니다. 겠죠??^^) 는 아니지만 정말 정성스런 답변 감사합니다.

    VS로 해보고 싶은게 많은데 Tool 이다 보니 Tool관련 기본 지식이 필요한데 찾을곳이 없어서 많이 힘들었는데

    여기 포럼의 답변률이 너무 좋네요.

    정말 정말 감사합니다. 즐거운하루 보내세요.

    P.S 툴관련 문의사항 있으면 또 여쭤봐도 되죠??

    2016년 7월 20일 수요일 오전 1:31
  • 2. 가능은 할텐데, 현재 빌드 과정과 통합할 알려진 도구는 없는 듯 합니다. GUI로는 다음의 도구가 검색됩니다.

    http://www.heaventools.com/PE_Explorer_section_editor.htm

    근데, 편집한다는 것과 그것이 실제로 잘 동작하기 위해 다른 여러 의존 값들을 바꿔주는 것은 다른 문제일 수 있습니다. 따라서 PE 파일 포맷에 대한 공부를 좀 하셔야 할 것입니다. (근데... 쉬울까요? ^^)

    => 위 case를 MS의 지원을 받아서 진행할수 있을까요?? 케이스 생성 가능합니다.

    2016년 7월 20일 수요일 오전 1:43