
컴공 문해력: 모든 언어에 통하는 생각의 기본기
널널한 개발자
어떤 프로그래밍 언어를 배우더라도 그 전에 반드시 알아야 할 내용을 정리한 강의 입니다. 또한 전용 훈련 시스템을 활용해 실습함으로써 프로그래밍에 꼭 필요한 사고력을 누구나 쉽게 얻을 수 있습니다.
입문
자기계발, 코딩 테스트, 알고리즘
특정 응용 프로그램이 각종 API 함수들을 호출하는 과정을 가로채는 방법을 배워 보안 시스템을 개발할 수 있는 기술을 확보합니다. ※절대 악용금지!!!







Krafton
임직원들도 이 강의를 듣고 있어요!





Krafton
임직원들도 이 강의를 듣고 있어요!
먼저 경험한 수강생들의 후기
5.0
sunny75
(25/06/29/일 08:51) 강의를 들어서, hook 을 이해 했습니다. printf("Hello world"); 를 지금까지 간단하다고 생각했는데, 아주 복잡한 것이 었군요. 좋은 강의 만들어 주셔서 감사합니다.
5.0
세에바
강의를 정말 잘하시네요. 전달력이 좋아요.
5.0
jeonsh95
깔끔하고 좋습니다.
Windows API 호출을 가로채는 방법
64bit 기반 IAT hook, Inline hook
간단한 보안 프로그램이나 악성 코드를 제작하는 방법
이 강의는 Windows API hook 기술에 대한 강의로 보안 소프트웨어 개발자 분들에게 도움을 드리고자 만들어진 강의입니다. 이 API hook 기술은 오래 전부터 사용되어온 기술로 좋은 의도과 그렇지 못한 의도 양쪽 모두가 활용하는 기술입니다. ※악용금지
※주의, 이 강의에 사용된 예제 일부는 윈도우 디펜더가 악성코드로 인식 할 수 있습니다!
보안 소프트웨어 개발자가
되고 싶은 분
특히 PC에서 작동하는 각종 보안 프로그램을 개발하고 싶은 분들에 API hook 기술은 반드시 알고 있어야 할 기법이라 할 수 있습니다.
이 수업을 통해 꼭 알아야 할 핵심만 제대로 배울 수 있습니다.
리버싱 기술을 배우기에 앞서
고급 이론을 미리 공부려는 분
함수의 내부 구조를 어셈블리어 수준에서 분석할 수 있습니다. 무엇보다 고급어에서 볼 수 없었던 내부 구조를 이해하고 필요에 따라 수정할 수 있습니다.
결과적으로 '함수란 무엇인가?'에 대한 고수준 이해와 해답을 스스로 찾을 수 있습니다.
악성코드의 작동 원리를
알고 싶은 분
악성코드가 정상 프로그램에 주입되고 실행되는 과정을 일부 알 수 있습니다. 실제로 많은 보안 소프트웨어가 비슷한 기법을 사용하기 때문입니다.
그러나 이 강의는 악성코드 개발에 필요한 것들에 대해 언급하지는 않습니다.
'함수'에 대해 새로운 차원의 이해를 얻을 수 있습니다. 어쩌면 이 강의를 끝으로 함수에 관한 내 이해는 완성단계에 돌입 할 수 있습니다.
저수준으로 내려가서 문제를 해결하는 방법에 대해 알 수 있습니다. 기존 고수준 프로그래밍 언어의 세계에서는 절대로 알 수 없었던 새로운 세상을 경험할 수 있습니다.
C/C++로 개발된 프로그램이 실행 되고 있는 상태에서 종료하지 않고 특정 함수의 코드를 업데이트하고 실행 할 수 있습니다.
작동 원리를 이해시켜주는 강의
API hook 기술은 그 자체가 이미 높은 난이도를 자랑하는 것입니다. 경험 많은 C/C++ 개발자라 하더라도 이해하기 어려운 경우가 있을 수 있습니다.
그러나 사실 원리만 정확히 이해하면 코드 자체는 별것 아닙니다. 그런 이유로 원리에 집중합니다. 무엇보다 성능이 검증된 코드를 예제로 제시합니다.
윈도우 OS 환경 실행 파일(.exe, .dll)의 형식인 PE형식에 대해 간략히 소개하고 그 중 IAT(Import Address Table)을 조작해 함수 호출을 가로채는 방법을 다룹니다.
그러나 PE형식 및 관련 이론을 깊게 설명하기 보다 Hook 기술 구현에 필요한 최소한의 이론만 다루며 결과적으로 호출을 가로채는 결과에 집중합니다.
호출을 가로채고 싶은 대상 함수의 기계어 코드를 직접 변경하는 방식으로 구현합니다. 경우에 따라 Hook 대상의 안정성이 급격히 떨어 질 수 있는데 그런 문제를 최소화 하는 방법도 함께 설명합니다.
또한 인터넷에 공개된 대부분의 자료가 x86 환경을 기반으로 하고 있는데 이미 대부분의 시스템이 64bit 환경임을 고려해 x64 플랫폼에서 Inline hook을 구현하는 방법도 다룹니다.
Q. 안랩같은 회사에 취업하고 싶은 학생입니다. 이 강의가 도움이 될까요?
분야에 따라 차이가 있습니다. 그러나 PC수준 보안을 다루는 파트로 취업을 희망하는 것이라면 이 강의에서 다룬 내용은 반드시 알아야 할 것들입니다. 모르면 취업이 힘들 수 있습니다. 그리고 보다 높은 경쟁력을 갖추고 싶다면 커널 드라이버 개발 경험도 필요할 수 있습니다.
Q. 이 수업을 듣고 나면 V3같은 프로그램도 만들 수 있나요?
전체는 아니지만 기능 일부를 개발하는데 도움이 됩니다. API hook 기술은 전체의 일부일 뿐 모든 것이라 할 수는 없습니다. 그리고 V3같은 안티 바이러스 시스템의 핵심은 실시간 감시 엔진에 있으며 이는 커널 드라이버로 구현합니다.
Q. 악성코드 분석 전문가가 되고 싶습니다. 이 강의가 도움이 될까요?
네, 잘 찾아오셨습니다! API hook 기술은 간혹 '리버싱의 꽃'으로 설명되기도 합니다. 그 만큼 중요한 것이며 자주 사용됩니다. 어쩌면 일식 요리사님의 예리한 칼과 같은 것일 수 있습니다. 이 강의를 완전히 자신의 것으로 만드시기 바랍니다.
운영 체제 및 버전(OS): Windows 11
사용 도구: Visual Studio 2022 Community
PC 사양: Visual Studio가 무리 없이 작동 할 수 있는 수준이면 충분
강의에 사용된 PPT자료를 PDF로 제공
전체 예제(x86, x64 분리 제공)
포인터 사용에 어려움이 없는 수준의 C언어 프로그래밍 실력
(독하게 시작하는 C 프로그래밍 수준)
디버깅 목적으로 디스어셈블 코드를 일부 읽어 본 경험 (필수)
선형 자료구조에 대한 이해 및 C언어로 연결 리스트를 구현해본 경험 (필수)
C++ name mangling에 대한 이해 (필수)
Windows system programming 경험 (필수)
간단한 TCP/IP 채팅 예제를 이해할 수 있을 정도의 소켓 프로그래밍 경험 (선택)
(모두가 싫어하는) 국내 최초 PC 방화벽 개발자
1992년부터 C언어를 공부한 30년 묵은 C/C++ 개발자
다수 국책과제 수행 경험자이자 15년 이상 개발 강의 경력을 함께 보유한 아저씨!
C언어 인기 입문서 『독하게 시작하는 C 프로그래밍』 저자

학습 대상은
누구일까요?
C/C++ 기반 응용 프로그램의 내부 구조와 함수란 무엇인지 그 본질에 대해 깊은 이해를 얻고 싶은 개발자
보안 소프트웨어를 개발하려는 분
Windows 환경에서 리버스 엔지니어링을 해보려는 분
선수 지식,
필요할까요?
C언에 대한 높은 이해도
Windows system programming (중급 이상)
인프런인증
50,894
명
수강생
3,032
개
수강평
1,200
개
답변
4.9
점
강의 평점
29
개
강의
전체
27개 ∙ (4시간 6분)
해당 강의에서 제공:
6. 함수 포인터
08:48
7. 함수 포인터 배열
03:01
8. 함수 프롤로그와 에필로그
13:01
9. Naked 함수
10:20
10. 인라인 어셈블리
11:39
11. 가상 메모리 접근 모드
14:28
14. 캐시 플러싱
08:01
전체
39개
4.8
39개의 수강평
수강평 1
∙
평균 평점 5.0
5
적당히 스킵해주시면서 키워드는 다 담아주셔서 시간낭비 없이 궁금한 부분만 알아서 보충해가면서 듣기 좋습니다. 모든 내용을 담으려고 길게 만들어진 강의보다 훨씬 좋네요
좋은 평가와 피드백 고맙습니다. 최대한 깔끔하게 담아내고 싶었던 마음을 이해받는 것 같아서 행복하네요. :)
수강평 2
∙
평균 평점 5.0
5
injection에 대한 NTcreateFile함수에 대한 부분을 추가해서 예제를 해 주시면 더 좋을것 같습니다.
좋은 평가와 피드백 고맙습니다. NtCreateFile()을 Hook하실 모양이라면 실시간 감시 엔진같은 것을 만들고 싶으신 모양입니다. 그렇다면 Hook 기술을 사용하는 것이 적절치 않을 수 있습니다. 참고하시기 바랍니다. :)
지식공유자님의 다른 강의를 만나보세요!
같은 분야의 다른 강의를 만나보세요!