|
|


22018, 1/1101 |
![]() |
![]() |
![]() |
![]() |
|
pkdo1030 | ||||||
|
http://h00ker.tistory.com | ||||||
|
리눅스 헤더파일에 관해 | ||||||
|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=35328 [복사]
Hit : 8964 Date : 2017/08/22 03:25
|
|||||||
| ![]() |
| |
| 김답변 | 도와드리려면 어떤 헤더파일들을 모르시는지, 그 헤더파일을 인클루드시켜서 어떠한 함수를 쓰고 싶으신지를 같이 써주셔야 조금이라도 도와드릴수 있긴한데 http://elixir.free-electrons.com/linux/latest/source 여기가 커널소스 검색하기엔 제일 유명하고 좋은 사이트입니다 헤더파일 링크는 없지만 굳이 헤더파일이 아니라 함수 구현을 보고싶으신거라면 함수는 다 링크돼있습니다. 그 함수가 정의된 헤더파일도요 |
2017/08/22 | |
| pkdo1030 | 일단 현재 분석하고있는 misc.c에 인클루드된 asm/uaccess.h 와 asm/addrspace.h 입니다 | 2017/08/22 | |
| pkdo1030 | 한가지 더 여쭙고싶은데, 대문자 S가 뒤에오는 확장자는 뭔가요? 어셈블리어로 짜져있는거같은데 .global 이런 영역같은 단어가 써있더군요 중간중간에 .text 이런식으로요 |
2017/08/22 | |
| 김답변 | .S, .s 파일들은 어셈블리어 파일들입니다 완전히 어셈블리어는 아니고 컴파일러에서 지원하는 문법에 따라 작성된 어셈블리어 프로그램인데 .global ~~~ 은 이 심볼을 다른 파일에서 사용 가능하게 하겠다(헤더파일 개념), .text는 이 아래 나오는 코드 혹은 데이터는 텍스트 섹션에 들어가야 한다. 이런 의미들입니다 글의 첫 질문이 헷갈려서 헷갈리는 두가지 다 답변을 해보자면 1. 소스코드정도밖에 안나온다 -> 그 헤더파일을 사용하는 .c 파일밖에 찾을수 없다 찾고계시는 헤더파일들은 arch/[아키텍쳐]/include/asm/ 에 있습니다 -> 이거는 그냥 uaccess.h 와 addrspace.h 를 검색해보면 임의의 커널버젼의 임의의 아키텍쳐에 대한 헤더파일 경로들이 나옵니다. 그걸 보시고 원하시는 커널버젼과 아키텍쳐에서 찾아보시면 됩니다 2. 헤더파일 자체에 대한 문서를 찾아보고 싶다, 즉 헤더파일에 어떤 함수들이 있는지, 그 헤더파일은 어디서 사용되는지 등, 사실 이런 종류의 의문을 해결하기는 쉽지 않습니다. 왜냐하면 기능의 필요가 있어서 코드가 작성된것이지 코드가 작성된 후 그걸 사용하는 기능들이 생겨난게 아니기 때문이죠 그래서 보통 문서들에서는 어떤 기능을 사용하고 싶으면 어떤 헤더파일을 인클루드하고 어떤 함수를 호출하세요. 라는 식으로 적혀있습니다 지금 막연히 소스코드 파일들을 하나하나 읽어보시는 것 같은데, https://www.kernel.org/doc/html/latest/ 리눅스 커널 공식문서를 보시면서 공부하시는 걸 추천드립니다 https://www.kernel.org/doc/ <- 여기도 좋아요 |
2017/08/23 | |
| pkdo1030 | 감사합니다. 우선적으로 소스코드부터 분석을 시작했는데 답변님 도움덕에 어느정도 방향을 잡는거같습니다. | 2017/08/23 | |
|
|