티스토리 뷰

Study/연구실

2014-12-10 삽질 일지

shovelman 2014. 12. 10. 23:03

1-1. 이상하다 분명 어제 구현(배낀)한 코드는 에러가 났었는데... 방금 코드 수정 없이 컴파일 했는데 Handle 값들이 제대로 추출된다...

여기서 의심가는 것은

 

(1) Visual Studio 프로그램을 여러개 켜둔 이유? <-- 이건 아닌거 같은데...

(2) PID를 잘못 입력 했으려나? 아닌데... 지금 아무 PID 값이나 생각없이 입력해봤는데 실행은 된다...

재현이 안된다... 오류 화면좀 캡쳐해둘껄.... 앞으로는 그래야겠다.

 

1-2 어제(그러니 오늘 새벽) 구현한 코드를 멘토님께 수정해달라 부탁드렸다. 수정된 부분은

(1) 확장자 .c -> .cpp

(2) wmain 과 인자 WCHAR* -> _tmain 과 인자 _TCHAR*

(3) NtDuplicateObject 받는 인자 중 인자 값에 (Handle) 캐스팅

 

흠...

(2) 부분은 서로 무엇인지 정확하게 알아봐야겠고,

(3)같은 경우에는 MSND에 두번째 인자값 Type이 Handle이니 형변환 한것 같다.

(1)은 .c로 구현했을때와 .cpp로 구현했을때 둘다 똑같이 출력이 된다.

.c와 .cpp의 확장자 차이는 내부적으로 엄청나게 차이가 난다는데...

흠... 같은 출력이 되니 이상하다...

분명 어제 삽질할때는 확장자때문에 되다 안되다 했는데 오늘은 확장자가 같은데 되군...

미스터리해...

 

(2)의 경우 찾아보니

main 함수는 C , C++ 프로그램의 Entry Point 이고,

유니코드 프로그래밍 모델을 따르는 코드를 작성하는 경우 main의 와이드 문자 버전인 wmain을 사용할 수 있다고 한다.

또한 <TCHAR.h>에 정의된 _tmain을 사용할 수 도 있다고 한다.

_tmain은 _UNICODE가 정의되지 않는 한 main으로, _UNICODE가 정의된 경우에는 wmain으로 확인 된다고한다..

흠 앞으로 _tmain을 애용해야겠군...

 

 

2. 이제 저번주부터 삽질하던 코드는 거의 이해가 갔다. 하지만 그중 하나가 거슬린다...

 


objectName 이라는 UNICODE_STRING 구조체형 변수에 objectNameInfo 변수를 형변환 시켜 저장하는 것 같은데... 흠 UNICODE_STRING으로 형변환을 하면 했지...

뭐 더 양보해서 *PUNICODE_STRING와 같은 PUNICODE_STRING으로 형변환 할 수 있다치자... 근데 또 *가 나왔다... 뭘까?

 

 

3. 기존 코드를 이해하고 (배껴서...)구현해봤지만 PID 4 즉 system 쪽을 아에 건들지 못하는데 한계를 느꼈다.

이에 Process Handle 에 있는 드라이버를 엄청나게 쳐다봐야할듯하다.

그 전에 드라이버가 어떻게 생겼고 어떻게 해먹는지를 좀더 자세하게 알아봐야할 듯하하다..

 

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함