나는 두 개의 dll로 64 비트 애플리케이션을 개발 중이다.Windows 64 비트 주소 공간
win32에서로드 된 dll의 의 기본 기본 주소가 0x10.000.000이고 충돌이 발생했을 때 이동 한 위치입니다.
Wintellect의 John Robbins가 dll의 고유 주소를 설정하도록 권장 했으므로 메모리 공간 사용량이 다른 실행에서 동일합니다.
그는 .net 2.0 응용 프로그램을 디버깅하는 책에서 기본 주소가 dll 이름의 첫 문자로 안내되어야한다고 제안했습니다.
교류 0x60.000.000
안양 0x61.000.000
GI 0x62.000.000
JL 0x63.000.000
개월 0x64.000.000
홍보 0x65.000.000
스와 0x66.000.000
VX 0x67.000.000
yz 0x68.000.000
64 비트로 변경되었다고 생각합니다. (적어도 주소). 누구나 더 나은 해결책을 찾았습니까? (? 그래서 다른 PC에 하나 개의 실행에서 주소, 광산
를 매핑 할 수 있습니다 -. 또는 어딘가로 만들어진 미니 덤프가 내 옆에로드 할 수 있습니다)
(1) ASLR이 기본 주소를 임의로 변경하기 때문에 ASLR을 도입하면 기본 주소에 대한 기존 인수가 무효화됩니다. (2) ASLR과 함께보다 효율적인 재배치 알고리즘이 나왔으므로 DLL 재배치 비용이 매우 적습니다. TL : DR : 일단 지침이 있으면 더 이상 적용 할 수 없습니다. ASLR. –