/proc/kcore
에서 시스템 호출 주소를 검색하려면 어떻게해야합니까? System.map
파일에서 시스템 호출 테이블 주소를 얻을 수 있습니다./ proc/kcore에서 시스템 콜 테이블의 시스템 호출 주소를 얻습니다.
답변
, 당신은 인터럽트 디스크립터 테이블 레지스터 결과적으로 인터럽트 디스크립터 테이블 자체를 얻기 위해 sidt
명령을 사용할 수 있습니다. 손에두고, 당신은 system_call
의 주소 (또는 x86-64의 호환성을 위해 IA32 상당) 0x80으로 시스템 호출 인터럽트에 의해 호출 기능을 얻을 수 있습니다. 해당 인터럽트 핸들러를 디스 어셈블하고 특정 간접 호출 명령어를 스캔하면 호출 명령어 내에서 주소를 추출 할 수 있습니다. 해당 주소는 시스템 호출 표 (x86) 또는 x86-64의 IA32 호환 시스템 호출 표입니다.
x86-64 네이티브 시스템 호출 테이블을 얻는 것은 비슷합니다 : sidt
으로 인터럽트 테이블을 재구성하는 대신 프로세서의 IA32_LSTAR MSR을 읽으십시오. (high << 32 | low)
의 주소가 시스템 호출 디스패처입니다. 이전과 같이 메모리 스캔 호출 명령에서 sys_call_table
주소를 추출하지만, 어드레스의 상위 32 비트를 마스크 기억한다.
이 글은 로트보다 더 많은 기술적 인 정보 (검색 할 바이트 등)를 커널 코드에서 훑어보기 전에 이해해야합니다. 빠른 Google 검색 후 문서화 된 전체 프로세스 (예제 모듈 코드 포함) here을 발견했습니다.
행운을 빌어 요, 자신을 날려하지 않으려 고!
을 사용하지 않음 링크가 죽었습니다. ( – galaxy
- 1. 시스템 콜 카운팅
- 2. 시스템 콜 중에 SIGINT 잡기/차단하기
- 3. 중복 리눅스 커널 시스템 호출
- 4. 시스템 호출 번호와 시스템 호출 핸들러 포인터 사이의 충돌
- 5. fork 시스템 호출
- 6. 시스템 호출 예
- 7. 실행 시스템 호출 오류
- 8. 어셈블리 및 시스템 호출
- 9. 는 시스템 호출
- 10. Fork() 시스템 호출 변경
- 11. Vfork 시스템 호출
- 12. 시스템 호출 및 명령
- 13. 파이프 시스템 호출
- 14. 모의 시스템 호출 루비에서
- 15. Ruby에서 시스템 호출
- 16. Windows에서 시스템 호출
- 17. .NET에서 모노로 시스템 호출
- 18. FUSE에서 시스템 호출 디버깅
- 19. UNIX 시스템 호출 목록?
- 20. .net 시스템 호출 성능
- 21. 스레드에서 슬립 시스템 호출
- 22. SQL INSERT 시스템 테이블의 날짜
- 23. C++ win32는 시스템 볼륨 가속기를 얻습니다.
- 24. 리눅스 시스템 호출 getpeername C++
- 25. W2K8의 Windows 시스템 호출 문제
- 26. 시스템 호출 set_tid_address는 언제 사용됩니까?
- 27. Android Linux 시스템 호출 목록
- 28. 뮤텍스 액세스 및 시스템 호출
- 29. 시스템 호출 creat의 이상한 동작
- 30. 리눅스 용 시스템 호출 작성
예. 시스템 맵 – user567879