yasm을 사용하여 간단한 ELF 프로그램을 작성하려고합니다. 그러나 VMA 주소가 0이 아닌 0x1000에서 시작되도록 .TEXT 섹션을 대상으로 지정하는 방법을 알아낼 수 없습니다. START 및 ORG 지시문을 사용하여 시도했지만 이러한 경우는 타겟팅 할 때만 유효합니다. 빈, 엘프가 아니야. 이것은 yasm에서 할 수 있습니까?yasm에서 ELF32 섹션의 물리적 주소를 지정 하시겠습니까?
2
A
답변
2
일반적으로 ELF 개체에서는 가능하지 않습니다. ELF 객체는 입니다. 즉,로드 주소가 아직 수정되지 않았 음을 의미합니다. 일반적으로 링커이라는 별도의 프로그램을 사용하여 재배치를 해결하고로드 주소를 수정합니다. 링커에서 사용하는로드 주소와 해당 섹션을 배치 할 순서를 구성 할 수 있습니다. 링커 스크립트를 사용합니다.는 예를 들어, GNU 링커에 대한 간단한 링커 스크립트는 COM 파일에 적합하도록 코드를 링크 : 처음에
SECTIONS {
. = 0x0100;
.text : {
*(.text.startup);
*(.text);
}
.data : {
*(.data);
*(.rodata);
}
.bss : {
*(.bss);
}
}
. = 0x0100
라인 주소 0x100
에서 다음 섹션 배치 링커를 알려줍니다. 비슷한 스크립트를 사용하여 코드를 0x1000
에 배치 할 수 있습니다. 자세한 내용은 the manual을 참조하십시오.
관련 문제
- 1. 가상 주소를 특정 물리적 주소로 매핑하십시오.
- 2. UICollectionView 섹션의 배경색을 설정 하시겠습니까?
- 3. 링커 스크립트를 사용하여 특정 섹션의 메모리 주소를 지정하는 방법은 무엇입니까?
- 4. 사용자 지정 구성 섹션의 여러 요소
- 5. 사용자 지정 구성 섹션의 Web.Config 변환
- 6. SQLDelete 주석에서 물리적 이름 지정 전략이 무시됩니다.
- 7. 이메일 주소를 확인 하시겠습니까?
- 8. 링커가 .rodata 섹션의 특정 데이터 주소를 결정하는 방법은 무엇입니까?
- 9. C에서 각 PE 섹션의 시작 주소를 얻는 방법은 무엇입니까?
- 10. ROM의 전용 위치에 섹션의 시작 주소를 쓰는 방법
- 11. ELF : elfutils를 올바르게 사용하여 섹션의 주소를 얻는 데 혼란이 있음
- 12. 섹션과 관련하여 섹션의 레이블과 섹션 주소를 정적으로 얻음 (런타임이 아님)
- 13. 물리적 주소를 다른 크기의 가상 주소에 매핑하는 방법은 무엇입니까?
- 14. 리눅스에서 물리적 주소를 가상으로 변환하고 그 내용을 읽으십시오.
- 15. 동일한 물리적 주소를 다른 가상 주소 공간에 매핑
- 16. 리눅스 커널 - 물리적 주소를 얻는 방법 (메모리 관리)? 리눅스
- 17. java.nio.MappedByteBuffer 물리적/가상 주소는
- 18. 루아에서 배열의 색인 주소를 지정
- 19. 문자열의 주소를 수동으로 메모리에 지정
- 20. 대량 이메일을 섹션의 PHP로 전송 하시겠습니까? 스팸을 차단 하시겠습니까?
- 21. 물리적 장치에서 10.0.2.2가 작동합니까?
- 22. Perl에 IP 주소를 추가 하시겠습니까?
- 23. 피보나치 재귀 : 주소를 반송 하시겠습니까?
- 24. FreeRadius에서 IP 주소를 제외 하시겠습니까?
- 25. 어떻게 주소를 DWORD로 변환 하시겠습니까?
- 26. Dart의 이메일 주소를 확인 하시겠습니까?
- 27. FQL 및 위치를 지정 하시겠습니까?
- 28. 어떻게 메시지를 설정 하시겠습니까? EWS Managed API를 사용하여 회신 주소를 지정 하시겠습니까?
- 29. 핀 도구의 물리적 주소 얻기
- 30. 물리적 캐시
이것은 환경과 같은 사용자 지정 OS 용으로 제작되었습니다. 재배치 기능을 사용하지 않을 것입니다. ELF 형식에는 섹션을로드 할 위치를 알려주는 필드가 있지만 yasm에서 지정하는 방법이 없습니다. 링커 스크립트를 사용하여 ld에서 수행 할 수 있지만 ld – Earlz
@Earlz를 사용하지 않아도됩니다. 링커가 모든 재배치를 해결할 때 재배치가 필요하지 않습니다. ELF 실행 파일을 링커를 사용하지 않고 직접 생성 할 수있는 어셈블러가 전혀 없다고 생각합니다. ELF는 링커와 함께 사용되기 때문에 대부분 쓸모가 없습니다. – fuz
@Ellz 왜 링커를 사용하지 않아도되기를 희망 했습니까? 당신이 이것을 설명 할 수 있다면, 아마도 내가 가진 제한을 더 잘 이해할 수있을 것입니다. – fuz