dll에서 특정 함수의 RVA를 가져온 다음 해당 RVA를 dll의 기본로드 주소에 추가하여 원격 프로세스 메모리에서 함수를 찾아야합니다. 그러나 원격 프로세스에서 생성 될 스레드에이 메모리 주소를 버퍼에 전달해야합니다. 그래서 주소의 DWORD 표현으로 이것을 전달해야하는지 궁금합니다. 64 비트 Windows에서 실행 중이므로 DWORD_PTR, DWORD64 등이 필요합니까? 아니면 여전히 나에게 의미가없는 포인터로 전달할 수 있습니까?DWORD에 원격 가상 주소 저장?
1
A
답변
1
간단한 조사를 해보십시오. 우리는 spec을 참조 할 것입니다. 선택 헤더의 SizeOfImage
필드를 확인하십시오.
모든 헤더를 포함하여 이미지의 크기 (바이트). Section Alignment의 배수 여야합니다.
실제로 이것은 매핑 된 이미지의 크기이며 PE32 및 PE32 + 형식 모두에 대해 4 바이트 정수입니다. 결과적으로 PE 내부의 모든 상대 주소는 항상 32 비트 정수에 맞습니다. 또한 PE 구조의 RVA 필드의 대부분은 DWORD
으로 선언되며, IMO는 좋은 힌트입니다.
위로 가기 : 32 비트 또는 64 비트 시스템에서 DWORD
에 RVA를 저장할 수 있습니다.
관련 문제
- 1. 가상 주소 및 가상 주소 공간 이해
- 2. 가상 주소
- 3. 가상 주소 공간 대 가상 메모리
- 4. vtable의 가상 함수 주소
- 5. 가상 논리 커널 주소
- 6. 논리 및 가상 주소
- 7. 커널 가상 주소 변환
- 8. 수동 가상 주소 변환
- 9. Windows의 가상 주소 공간
- 10. 가상 메모리 주소 변환
- 11. 86 가상 주소 길이
- 12. 가상 IP 주소
- 13. 가상 대 실제 주소
- 14. 가상 주소 시스템의 주소 공간 처리
- 15. 물리 주소 매핑에 대한 가상 주소
- 16. 원격 IP 주소 정보
- 17. mysql 원격 연결 주소
- 18. php - 원격 주소
- 19. 원격 가상 디렉터리의 web.config
- 20. C와 리눅스의 가상 주소 할당
- 21. ELF의 가상 및 실제 주소
- 22. 프로세스 주소 공간과 가상 메모리
- 23. 가상 및 실제 주소 변환
- 24. 가상 멤버 함수 주소 인쇄
- 25. 프로세스 주소 공간과 가상 메모리
- 26. 다중 스레드 가상 주소 공간?
- 27. 가상 컴퓨터의 로컬 호스트 주소
- 28. "상대 가상 주소", 무엇에 비례합니까?
- 29. 사용자를위한 IP 주소 저장
- 30. QWidgets의 주소/포인터 저장