삽질의 현장/- 윈도우 커널 22

윈도우커널_#022_Give Me A Call~ 핸들 추출이 필요할 때 불러~

안녕하세요... 삽잡이입니다...오늘은 미친삽이 아니라 센치한 삽입니다... 주말에 너무 잠을 자서.... 내일이 감히 월요일이지만...미친척하고 이러고 놀고 있습니다...(원래 누우면 그냥 잡니다... 잠이 안와서 안자는게 아니라... 그냥... 눈이 떠있고 싶네요...) 자.. 센치하게 코드 분석이나 해봅시다... 마치 문학 시간에 현대 시를 감상하듯이~ WinDbg에서 환경 설정을 해두고...프로세스를 클릭하여 Handle을 알아보고자 했을 때 당신이 나타났습니다... 당신은 이런 설명이 있더군요... "Gets a pointer to the handle table of a process." 고맙습니다... 당신 덕분에 프로세스에서 handle table을 얻을 수 있었습니다.당신의 return 이..

윈도우커널_#021_드라이버와의 진정한 대화! I/O Requset Packet!

여러분 안녕하십니까...몰아서 골을 시원하게 때려 박는 호날두와 같이몰아서 포스팅을 시원하게 때려 박는 삽날두 삽잡이입니다. 푸하하... 호날두가 골을 몰아넣는다는 식의 뉘앙스가 기분 나쁘시다면 죄송합니다...참고로 저는 호날두를 매우 좋아합니다...맨유시절 맨유와 첼시의 그 경쟁구도는... 캬~ 하지만 전 첼시팬... 허허... 아무튼!아무것도 모르는 삽날두님께서는윈도우 커널 디버깅에 멋도 모르고 뛰어 들었답니다...뭐 머리가 백지이니... 하나하나 무식하게 접근할 때마다 모르는 것들이 하나하나 생겨서...그때 그때마다 찾아보고 있습니다.나쁘지 않습니다. 하하.. 이번에 알아볼 것은 IRP... 그러니까 I/O Request Packet 입니다.Window Driver에서 핵심중에 하나라고 합니다.(어..

윈도우커널_#020_본격! WinDbg로 Target PC(Guest) 에 프로세스 디버깅하기!

안녕하세요~~~Kernel을 까보는듯 까지않는 깔것같은 삽잡이 입니다! 혹시 여러분 중 일분 일초의 시간이 아까워서,잠도 설치시며 일상 생활과 어둠의 생활을 즐기시는 분들이 있으신가요? 뭐 저는 그리 열심히 하는 편도 아니긴 하다만...졸음의 유혹에 못이겨 평일인데 진하게 푹 자고 일어났더니...정말 다음날 (그러니까 오늘이죠) 못찾던게 눈에 보이고, 뭔가 진행이 되는듯한...그런 느낌을 받았어요! 할렐루야~ 2보 전진을 위한 1보 후퇴 하는 전략이 있듯이...너무 앞만 보고 달려가지 마시고 한번쯤은 푹 쉬시고!평소보다 더욱 활기차게 앞으로 향하는 여러분이 되시길 진심으로 바랍니다! 자 뽜이팅 하는 정신으로! 지난 시간까지 Target PC에 임의로 시스템 파일을 로드시켜서 디버깅을 시도했었습니다... ..

윈도우커널_#019_RtlInitUnicodeString & InitializeObjectAttributes & ZwOpenKey & IoCreateDevice

안녕하세요... 삽잡이입니다.연초 계획은 잘들 짜셨는지... 저는 살좀 빼야될거 같습니다... 주변 사람들에게는 누누히 말하지만, 몸무게가 단기간에 확 많이 쪘었는데요... 안빠집니다...살빼야죠... 배가 너무 나와서... 겨울에는 어느정도 커버를 치겠는데 여름만 생각하면 끔찍합니다... ㅋㅋㅋㅋㅋ 아무튼... 이번에는 kprocesshacker.sys 파일을 디버깅하다가...무작정 달려드니, 좀 정리해보자 싶은 기초(?) 함수들을 포스팅하려 합니다~ RtlInitUnicodeString 함수에 대해서 알아보도록 하겠습니다....MSDN에는 어떻게 설명이 되있냐면요... "Initializes a counted Unicode string." 음... 유니코드 스트링을 초기화 하는 기능을 가지고있다 하네..

윈도우커널_#018_Driver 까본다는 사람이... Driver 개발의 기본 DriverEntry도 몰라?

안녕하십니까!햇병아리 삐약비약 삽잡이입니다. Driver를 까본다면서...DriverEntry를 그냥 C언어 코드 짤 때main이랑 뭐가 다른가 했습니다...그래서 무작정 디버깅에 뛰어들었습니다. 기초부터 차근차근 배우는 것도 나쁘지 않겠지만,저는 미친 삽질의 스타일 대로...삽질을 각오로 무작정 뛰어들고 필요할때마다... 알아보고 공부해보겠습니다. 푸하하...Driver 계의 Entry Point 인 DriverEntry()에 대해서 알아보도록 하겠습니다. 우선, EntryPoint란 뭘까요?프로그램을 시작할때 어디서 부터 시작할 것인가요?자기 멋대로 '여기서 부터 시작하겠어!' 라고 하며 각자 다른 부분 부터 진행한다고프로그램이 올바르게 시작할까요? 그렇지 않습니다... 그렇기에 모든 프로그램은 'E..

윈도우커널_#017_커널을 까볼자! Kernel Driver Debugging 도전기 (2)

[지난 이야기] 016. 커널을 까보자... Kernel Driver Debugging 도전기 (1) : http://sapzape.tistory.com/26 안녕하십니까.무식한데 무작정 달려들어 임무를 반드시 수행하고자 하기에 뵈는게 없는 삽잡이입니다. 우선, 들어가기 앞서서... * 저와 같이 삽질중이신 초짜 여러분! 함수명 중에서, Open은 '어떠한 Object에 엑세스를 할 수 있는 권한을 얻어온다'Initialize는 'Object를 생성하기 전에, 미리 수행해야 하는 작업이다' 라고 이해하시고 디버깅에 임해보세요!물론 여러분의 친구 MSDN과 구글링도 함께 해서요! 열심히 검색하다가 좋은 답변이 하나 있길래 저도 이 답변을 참조해서더욱 달려봐야겠습니다! 그럼 이제 시작해봅시다. ㅎㅎ지난시간에..

윈도우커널_#016_커널을 까보자... Kernel Driver Debugging 도전기 (1)

안녕하십니까...완전한 야매로 커널을 디버깅중인... 초짜 삽잡이입니다... 현재 저는 커널 드라이브 디버깅에 빠져있습니다...뭔말인지 솔직히 확신이 안설때가 있긴하지만... 무식하게 나아가고 있습니다...계속 나아가고 맨 밑까지 찍고,다시 올라가서... 다시 맨 밑까지 찍고...계속 하다보면 언젠가 Kernel의 고수가 되어있지 않겠습니까?또 혹시 모르죠... 리버싱의 대가... 푸하하 죄송합니다...아직 꿈만 꾸고 삽질만 하는 초짜입니다... 하지만 조금씩 실력은 늘지 않을까요?하나님께 기도하며 Kernel 과의 싸움에서 승리해보이겠습니다! 디버깅할 모듈에 break point를 걸고, Target PC에서 드라이버를 로드함으로커널 드라이버를 분석해보겠습니다! Driver 소스의 Entry Point..

윈도우커널_#015_끝까지 물고늘어진다! 윈도우 커널 디버깅 끝판왕!!!

버전 날짜 내용 작성자 1.0.0.1 2015.1.2 Kernel Driver Debugging 환경 설정삽잡이 1.0.0.2 2015.1.2bcdedit 설정 방법 추가 및 문구 정리삽잡이 [지난 이야기] 013. 에라 모르겠다! WinDbg로 커널 드라이버를 씹어먹자! : http://sapzape.tistory.com/24 여러분 안녕하십니까... 미친 삽질의 선두 주자! 별것도 아닌거에 질질 끄는!미친삽 삽잡이입니다. 여러분 새해복 많이 받으세요!!! 2015년이 찾아왔습니다.저는 2014년에서 2015년을 넘어가는 사이에도 드라이버와 씨름을 하고 있었답니다 하하...설정하는데만 얼마나 시간을 쏟았는지 허허... 최근에서야 드라이버 디버깅을 진행중이랍니다 ㅠㅠ 그래도 뭔가 묘한 매력이 있는거 같습..

윈도우커널_#014_에라 모르겠다! WinDbg로 커널 드라이버를 씹어먹자!

버전 날짜 내용 작성자 1.0.0.1 2014.12.30 WinDbg 삽질 내용 초안 삽잡이 1.0.0.2 2015.1.1WinDbg Symbols 설정 수정삽잡이 안녕하세요미친 삽질의 선두주자가 되고픈(아무도 노리지 않는 타이틀일듯..) 삽잡이입니다...Driver 씹어먹기 참 힘드네요... 허허허... 아직도 환경 구축하는데이리 오랫동안 삽질 중이랍니다...우선은 그냥 WinDbg를 사용하기로 했답니다 하하하... 그렇다면... 오늘은 바로 시작해봅시다...우선 WinDbg는 MS 홈페이지에서 WDK 8.1을 설치 하셨다면 해당 폴더 내에 있을거에요... 여러분 WinDbg를 실행시켜주세요! 실행시키셨다면, Target PC 즉 VM OS와 연결을 위해 아래와 같이 따라해주세요!Port와 Baud R..

윈도우커널_#013_지겹도다 언제 끝나냐 WDK 설치 완전 정복!

* 결론부터 말씀드리자면,아직 Visual Studio 2013 으로 Driver Debugging은 하지 못했습니다. WinDbg로 디버깅을 진행하는 아래의 링크를 참조해주세요! 015. 끝까지 물고늘어진다! 윈도우 커널 디버깅 끝판왕!!! : http://sapzape.tistory.com/25 지난 글을 작성한지 머나먼 시간이 지났습니다... 개인적으로...그 동안 하나님께 큰 가르침과 멘탈의 성장을 얻는귀중한 시간을 보내고 왔습니다... 하하... 그렇기에, 대략 일주일이라는 기간을 거쳐많은 멘탈 트레이닝을 받아 더욱 Upgrade가 되어 돌아왔습니다! (Dog Sound가 여러분에게 살며시 다가가도 그냥 그러려니 해주세요... 허허...) 푸하하... 성장통을 겪고 성장해 온 만큼 더욱더 뽜이아..