블로그 이미지
문슐랭 upip57@naver.com
진짜귀찮음

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
  • total
  • today
  • yesterday
2018. 3. 1. 00:34 카테고리 없음

kernel32.dll 주소값 찾기


※ TEB

현재 실행중인 쓰래드에 대한 정보를 담고 있는 구조체


※ PEB

현재 실행중인 프로세스에 대한 정보를 담고 있는 구조체



windbg 를 이용해 ie 를 열었습니다. 해당으로 kernel32.dll 을 찾아보도록 하겠습니다.


(주소 값은 pc 환경이나 실행동작 등으로 다르게 나오실 거라 제 사진이랑 같지 않습니다.)



TEB (Thread Environment Block)




windbg 를 명령어 !teb 를 통해 TEB 정보를 한번 확인 하였습니다.

TEB 주소 값이 0324f000 인 것을 확인 할 수 있습니다.


dt 명령어를 통해 이제 메모리 값을 확인 해 보도록 하겠습니다.





+0x30 란을 보시면 ProcessEnvironmentBlock 탭에 PEB 주소 값이 표시되어 있는 것을 확인 할 수 있습니다.


이제 PEB 주소로 넘어가도록 해보겠습니다. (LDR 주소를 찾기 위해서 이죠)


※ LDR (프로세스에 로드된 모듈의 정보를 담고 있는 구조체)




PEB (Process Environment Block)





PEB 의 메모리 내용 밑쪽의 0x00c 에 LDR 주소값이 있는 것을 확인 할 수 있습니다.

지금 0x77d9ab40 이라고 나타나져 있군요.

들어가보도록 하겠습니다.







0x014 탭에 inMemoryOrdrModuleList 가 있는데 그 앞의 주소값 0x36d1d48 - 8 로 들어가 보도록 합니다.

(-8을 해주는 이유는 좀더 공부해서 확실하게 되면 수정하겠습니다. flink 에서 -8 이유가 구조 때문에 그런 것 같은데 확실하게 설명을 못해서..ㅠ)




들어가보면 저희가 실행시킨 파일이 ie 라는 것을 확인 할 수 있었습니다. 또 한번 똑같은 방식으로 들어가 보도록 하겠습니다.




※ ntdll

ntdll.dll의 역활은 유저모드 코드에서 발생하는 시스템 자원에 대한 접근을 커널모드에게 요청하는 역활을 수행함.




ntdll.dll 이 커널모드에게 요청을 한다고 햇습니다. 그럼? 저 주소를 한번더 따라 들어가면??







커널의 주소값을 확인 할 수 가 있습니다. DllBase 인 0x77aa0000 가 해당 주소 값입니다.



(아직 시스템 공부를 시작한지 얼마안되서 설명도 미흡하구 그러네요 저두 아직 확실하게 개념이 박힌것이 아니라 공부하면서 계속 수정해 나가겠습니다.)

posted by 진짜귀찮음