분류 전체보기

들어가며지난 1편에서는 치트 엔진을 활용해 플레이어 데이터를 읽어올 수 있는 오프셋과 3D 좌표 변환의 핵심인 ViewMatrix를 메모리에서 직접 찾아내는 과정을 다루었습니다.이번 2편에서는 앞서 확보한 데이터를 바탕으로, 실제 C++ DLL을 제작하여 게임 프로세스 내부에 인젝션(Injection)하고, DirectX 9 렌더링 파이프라인을 후킹하여 화면에 ESP(위치 추적) 박스를 그리는 전체 과정을 구현해 보겠습니다. 이전 포스팅 보러가기https://imoracle.tistory.com/81 [CS:S] ESP 월핵 / 에임봇 개발기 - 1편: 엔티티리스트 탐색과 오프셋들어가며게임 클라이언트 해킹 연구는 단순한 메모리 변조를 넘어, 운영체제의 메모리 관리 구조, 3D 렌더링 파이프라인, 그리고 ..
들어가며게임 클라이언트 해킹 연구는 단순한 메모리 변조를 넘어, 운영체제의 메모리 관리 구조, 3D 렌더링 파이프라인, 그리고 어셈블리 역공학 등을 아우르는 종합적인 기술의 집약체입니다. '게임 핵의 역사'를 되짚어보면 초기 유저 모드에서의 단순한 메모리 읽기/쓰기에서 시작해, 현재는 커널 레벨이나 하이퍼바이저 단에서 안티치트와 창과 방패의 싸움을 벌이는 수준까지 발전했습니다. 이전에 본 게임(CS:S)을 대상으로 DirectX(D3D) Hooking을 수행하여, 모델의 Stride 값을 기반으로 색상을 입히는 Chams(월핵의 일종)를 구현해 본 적이 있습니다. 하지만 Stride 방식은 렌더링되는 폴리곤의 고유값에만 의존해 객체를 식별하기 때문에, 모델이 겹치거나 특정 환경 요소와 혼동될 때 필연적으..
들어가며프로그래머로 살다 보면 "이거 내가 만들면 더 잘 만들겠는데" 싶은 순간이 있습니다. 연차 관리 시스템 DayOFF는 그 충동에서 시작됐습니다. 주변에서 연차 관리를 엑셀로 하는 걸 보면서 항상 불편함을 느꼈습니다. 수식이 잘못 설계되어 있어도 아무도 모르고, 누군가 실수로 셀을 건드리면 데이터가 날아가고, 매년 새해가 되면 파일을 새로 복사해서 써야 하는 상황. HR 담당자가 연차 계산 실수로 노동부에 신고 당하는 일도 심심치 않게 일어납니다."근로기준법대로 정확하게, 실무에서 바로 쓸 수 있는 연차관리 프로그램을 직접 만들자." 그렇게 DayOFF 개발이 시작됐습니다. 1편에서는 연차 계산 엔진과 버그 수정을, 2편에서는 라이센스 시스템과 보안을 다뤘습니다. 1편 보러가기https://imor..
들어가며프로그래머로 살다 보면 "이거 내가 만들면 더 잘 만들겠는데" 싶은 순간이 있습니다. 연차 관리 시스템 DayOFF는 그 충동에서 시작됐습니다. 주변에서 연차 관리를 엑셀로 하는 걸 보면서 항상 불편함을 느꼈습니다. 수식이 잘못 설계되어 있어도 아무도 모르고, 누군가 실수로 셀을 건드리면 데이터가 날아가고, 매년 새해가 되면 파일을 새로 복사해서 써야 하는 상황. HR 담당자가 연차 계산 실수로 노동부에 신고 당하는 일도 심심치 않게 일어납니다."근로기준법대로 정확하게, 실무에서 바로 쓸 수 있는 연차관리 프로그램을 직접 만들자." 그렇게 DayOFF 개발이 시작됐습니다. 지난 1편에서는 DayOFF의 탄생 배경과 연차 계산 엔진 구현, 그리고 개발하면서 발견한 버그들을 다뤘습니다. 1편 보러가기..
들어가며프로그래머로 살다 보면 "이거 내가 만들면 더 잘 만들겠는데" 싶은 순간이 있습니다. 연차 관리 시스템 DayOFF는 그 충동에서 시작됐습니다. 주변에서 연차 관리를 엑셀로 하는 걸 보면서 항상 불편함을 느꼈습니다. 수식이 잘못 설계되어 있어도 아무도 모르고, 누군가 실수로 셀을 건드리면 데이터가 날아가고, 매년 새해가 되면 파일을 새로 복사해서 써야 하는 상황. HR 담당자가 연차 계산 실수로 노동부에 신고 당하는 일도 심심치 않게 일어납니다."근로기준법대로 정확하게, 실무에서 바로 쓸 수 있는 연차관리 프로그램을 직접 만들자." 그렇게 DayOFF 개발이 시작됐습니다. 왜 직접 만들었나시중 프로그램의 문제점시중에 연차관리 프로그램이 없는 건 아닙니다. 상용 ERP 솔루션도 있고, 각종 엑셀 템..
들어가며이 글은 상용 DLP(Data Loss Prevention) 프로그램의 핵심 기능을 분석하고, 윈도우 커널 드라이버 기반으로 직접 구현해보는 시리즈입니다.지난 글에서는 Minifilter를 확장하여 '민감정보 패턴 검사'와 '파일 첨부 차단' 기능을 구현하는 과정, 그리고 그 과정에서 마주친 Office 파일(.xlsx) 검사의 딜레마를 어떻게 해결했는지 다루어 보았습니다. 이번 글에서는 DLP 시스템의 핵심 기능 중 하나인 파일 암호화 구현 과정을 다룹니다. 파일을 특정 '보안 폴더'에 넣으면 자동으로 AES-256 방식으로 암호화되어 전용 확장자(.siyul)로 저장되고, 더블클릭 시 패스워드를 입력하면 원래 프로그램으로 열리는 명시적 암호화(Explicit Encryption) 구조를 만들어..
들어가며이 글은 상용 DLP(Data Loss Prevention) 프로그램의 핵심 기능을 분석하고, 윈도우 커널 드라이버 기반으로 직접 구현해보는 시리즈입니다.지난 글에서는 네트워크 필터(WFP)의 한계와 유저모드 클립보드 차단을 다루었습니다. 이번 편에서는 다시 커널로 돌아가서, Minifilter를 확장하여 '민감정보 패턴 검사'와 '파일 첨부 차단' 기능을 구현하는 과정, 그리고 그 과정에서 마주친 Office 파일(.xlsx) 검사의 딜레마를 어떻게 해결했는지 공유합니다.그리고 파일 첨부를 차단하는 기능을 구현하는 과정에 대해 서술합니다. 이전 글 보러가기https://imoracle.tistory.com/75 [DLP 개발기] 4. WFP DNS 차단의 한계와 유저모드 클립보드 제어들어가며이 ..
들어가며이 글은 상용 DLP(Data Loss Prevention) 프로그램의 동작 원리를 분석하고, 윈도우 커널 드라이버 기반의 보안 솔루션을 직접 구현해보는 시리즈입니다.지난 글에서는 WPF 트레이 앱 통신과 매체/파일 제어(USB & Minifilter)를 다뤘습니다. 이번 편에서는 네트워크 보안의 핵심인 WFP(Windows Filtering Platform) 기반 웹사이트 차단 시도와 일상적인 정보 유출 경로인 클립보드 차단 구현 과정을 공유합니다. 이전 글 보러가기https://imoracle.tistory.com/74 [DLP 개발기] 3. WPF 트레이 앱 통신과 커널 레벨 매체/파일 제어 (USB & Minifilter)들어가며이 글은 오피스키퍼 등 상용 DLP(Data Loss Prev..
들어가며이 글은 상용 DLP(Data Loss Prevention) 프로그램의 동작 원리를 분석하고, 윈도우 커널 드라이버 기반의 보안 솔루션을 직접 구현해보는 시리즈입니다.지난 2편에서는 커널 드라이버의 IOCTL 통신, 소프트웨어 실행 차단, 그리고 E2E 파이프라인 구축 과정을 다뤘습니다.이번 글에서는 사용자에게 동작 상태를 보여줄 WPF 트레이 앱을 만들고, 본격적인 매체 제어인 USB 차단과 Minifilter 기반 파일 확장자 차단을 구현해 봅니다. 이전 편 보러가기https://imoracle.tistory.com/73 [DLP 개발기] 2. 커널 드라이버와 IOCTL, 그리고 E2E 파이프라인 구축들어가며지난 1편에서 설계한 아키텍처를 바탕으로, 이번 편에서는 실제로 데이터가 흐르고 동작하..
들어가며지난 1편에서 설계한 아키텍처를 바탕으로, 이번 편에서는 실제로 데이터가 흐르고 동작하는 E2E(End-to-End) 파이프라인을 완성해 보겠습니다. 목표는 심플합니다. "관리자 웹에서 정책을 변경하면, 30초 안에 커널 드라이버까지 도달해 실제 차단이 이루어지게 만든다." 이전편 보러가기https://imoracle.tistory.com/72 [DLP 개발기] 1. 커널 드라이버 기반 보안 시스템, OpenGuard 시작하기들어가며 다양한 기업용 PC 보안 솔루션을 접하다 보면 자연스레 호기심이 생깁니다. "이거 대체 어떻게 구현한 거지?" 사실 오래전, DLP 보안 솔루션 전문 기업에 입사 지원을 했다가 서류에서 탈imoracle.tistory.com 다음편 보러가기https://imoracl..
들어가며 다양한 기업용 PC 보안 솔루션을 접하다 보면 자연스레 호기심이 생깁니다. "이거 대체 어떻게 구현한 거지?" 사실 오래전, DLP 보안 솔루션 전문 기업에 입사 지원을 했다가 서류에서 탈락했던 아쉬운 기억이 있습니다.원래부터 이 분야에 워낙 관심이 많았는데, 최근 여러 보안 솔루션의 동작 방식을 다시 분석하다 보니 그때의 기억이 새록새록 떠오르더군요. USB를 꽂자마자 차단하고, 파일 첨부를 막아내는 이런 로우레벨의 제어 기술들은 단순히 유저모드의 소프트웨어 레벨에서는 구현이 불가능합니다. USB를 꽂자마자 차단하고, 파일 첨부를 막아내는 이런 로우레벨의 제어 기술들은 단순히 유저모드의 소프트웨어 레벨에서는 구현이 불가능합니다. 그래서 과거의 아쉬움도 달래고 심도 있는 시스템 스터디도 할 ..
들어가며일반적으로 게임 보안 프로세스인 안티치트(Anti-Cheat)는 크게 유저 모드(User-Mode)와 커널 모드(Kernel-Mode) 기반으로 나뉩니다. 유저 모드 안티치트는 과거부터 메모리 후킹이나 코드 인젝션 등 다양한 기법을 통해 우회되어 왔으나, 커널 모드 안티치트는 운영체제의 핵심부인 Ring 0에서 동작하기 때문에 일반적인 권한으로는 접근 자체가 불가능합니다. 하지만 BYOVD(Bring Your Own Vulnerable Driver) 기법을 활용하면 견고해 보이는 커널 레벨의 보호막도 뚫어낼 수 있습니다. 이 기법은 공격자가 '이미 정상적으로 서명되었지만, 보안 취약점이 존재하는 드라이버'를 시스템에 로드하여 커널 메모리에 대한 임의 읽기/쓰기(Arbitrary Read/Write..
시유리
'분류 전체보기' 카테고리의 글 목록