OutDoorFrog의 리버싱 이야기

배우지 못했던 일부의 "윈도우즈 시스템 프로그래밍" 본문

취미/나를 되돌아 보는 시간

배우지 못했던 일부의 "윈도우즈 시스템 프로그래밍"

OutDoorFrog 2018. 9. 13. 00:22

안녕하세요! 블로그의 주인장인 OutDoorFrog입니다!



오늘 다뤄볼 주제는 바로!! 배우지 못했던 "윈도우즈 시스템 프로그래밍" 입니다!!


제가 독학을 할 때 따로 공부하지 못한 부분들이 있습니다.


윈도우 빠돌이를 자처하는 사람으로써, 오늘은 이 중대한 문제를 거론하고자 합니다.







제가 Windows API에 입문했을 때 같이 즐겨보았던 책입니다.


악성 코드를 분석하기 위해서 반드시 알아야할 개념, 함수를 정리해놨습니다.


(책 목차 보기!!)





악성코드를 분석하기 원한다면 반드시 한 번 쯤은 봐야할 책으로써


WDK, MFC, ATL 등 상위 단계를 공부할 때 반드시 필요합니다.


 제가 책을 꼼꼼히 안 읽고, 유튜브를 덜 활용하는 경향이 있었습니다.(외부 활동도 안하고)


(윤성우님의 무료 윈시프 강의 들으러가기)




이끌어주던 선배님이 취업을 나가신 후 저 혼자 독학을 하게 됬습니다.


그 때 모르는 개념은 건너 뛰면서 공부했는데 그 개념 공부를 아직도 안하고 있었네요;;



Non-Signaled VS Signaled


(아마 이건 WaitForSingleObject와 곁들여서 설명할 듯 싶네요.)



스레드의 상태 컨트롤, 스레드의 우선 순위 컨트롤


(이건 아직 이해를 못한 상태일 겁니다.)


 쓰레드 동기화의 개념/임계 영역 접근 동기화


(세마포어와 뮤텍스 스레드풀에 관련된 이야기 겠군요. 생략했을 겁니다.)



SEH(구조적 예외 처리) 기법



(예외 처리 기법에 대해서 설명해주셨습니다.)



이후 내용은 요약해서 언급하겠습니다.





힙 컨트롤(안 배움),
가상 메모리 컨트롤(음.. 한 적은 있는듯)

알림 가능한 상태, APC(뭔지 모름),
캐쉬와 캐쉬 알고리즘


C++에서 사용하는 문법들까지 합해서

적어도 구현은 해봤을 수도 있지만 

리버싱까지는 해본 적이 없는 부분들입니다.





악성코드분석을 취미로 가진 고등학생으로써 말씀을 드리자면

악성코드 분석에 사용해야 하는 기초적인 지식들이 있습니다.




사용되는 언어, 운영체제에 간섭할 수 있는 매개체(API),
리버스 엔지니어링, 취약점, 악성코드에 대한 지식...


이런 기초적인 지식들이 부족할 때 기본은 버티지 못하고 무너집니다.




'A','N','T' 중에 T를 몰라서 'ANT'를 다 못 쓰는 꼴이지요.


고교 생활이 바빠지기 전 기초, 기본이 

부족한 자신을 보충할 수 있는 기회인듯 싶습니다.




기본이 부족한 사람, 응용을 조금 경험한 사람이 한 말씀을 드리자면


기본이 없다면 응용이 안됩니다.


테크트리라는 단어가 우연히 생긴 단어가 아닙니다.


제가 응용 이해할려고 그 부분을 7번 이상 읽었고...


기본 다지는데 그 노력을 쏟아 부으면 나중에 후회를 안합니다.


Comments