디씨가 망했나... 리플도 안달리고... 글은 써질려나.. 

일단 그 코드의 문제점은 

*(unsigned int*)(zwq+1) = (unsigned int)NewNtOpenProcess - (unsigned int)zwq - (unsigned int)15; 이라인이 병신이고...

15 를 빼는게 아니고, 5를 빼야됨. 점프 명령어는 5 바이트 짜리라서, 그거 5개 수행 후에 점프할 곳이기 때문에 15가 아니고, 5...

그리고 커널 드라이버 만들면서 디버깅을 모르다니 -_-

일단 vmware 깔고, vmware 안에다가 드라이버 설치하고, 안의 os 를 디버깅 부팅시키고... 

바깥 리얼 OS 에서 WinDbg 띄워서 커널 디버거 연결해서 디버깅 해봐. 

이건 네이버 검색하면 조올라 많이 나오니깐 그냥 따라하면 돼. 

그리고 아오 퇴근 후엔 코드 보기가 귀찮아서 대충 대충 봤는데... 

일단 디버거 연결해서 코드를 한줄 한줄 따라가보고, 후킹한 부분이 15 가 되었을 때 어디로 뛰는지, 5가 되었을 때 어디로 뛰는지를 보면, 

이해가 훨씬 쉬울거임. 

이 글은 올라갈려나.. -ㅅ-