
📧 [email protected]
📞 +82-10-6814-2467
💻 @movebxeax
Last Updated : 2023.08.07.
INTRODUCE
높은 안정성을 가진 프로그램의 개발, 언제나 활발한 의사소통을 기반으로한 협업을 추구하는
5년차 개발자 변준우입니다.
C/C++, C#, Python, Git, Visual Studio, WinDbg, IDA, Jenkins 등을 사용한 개발, 분석, 배포 경험을 바탕으로 다양한 환경에서 높은 안정성을 가진 응용 프로그램을 개발하기 위해 언제나 고민하고 있습니다. 개발 뿐만 아니라 보안에도 관심이 많고, 보안 분야에서의 경험을 개발에 적용하기 위해 노력하고 있으며, 새로운 기술을 받아들이는 것을 즐긴다고 자부합니다.
또한, 개발 역량 못지않게 커뮤니케이션 능력 또한 필수적이라고 생각하는 사람으로서 동료와의 의사소통 및 협업을 중요하게 생각합니다. 커뮤니케이션 과정에서 이전에는 생각하지 못했던 문제 해결 방식이나 인사이트를 얻을 수 있다고 생각하기 때문에 동료와의 협업을 선호합니다.
Projects
(주)웰비아닷컴
- SW/HW 기반의 매크로 장치 탐지 기능 (2018.12. ~ 2021.12.)
- 개별 게임사의 요청으로 총 10여개의 SW/HW 기반의 매크로 장치 탐지를 위한 기능을 제작했습니다.
- Logitech, Corsair, Cherry, Bloody, Razer 등의 제조사에서 제조하는 키보드, 마우스가 제공하는 매크로 기능의 사용 여부 탐지를 위해 각각의 동작방식을 분석한 뒤 특이점을 바탕으로 탐지하는 기능을 구현했습니다.
- 이들 가운데 특정 제품의 경우 타사의 정상 제품과 동일한 VID, PID를 가지고 있어 단순히 이들 값의 비교만으로는 차단이 불가능했습니다.
- 이를 해결하기 위해 해당 제품을 조작하는 전용 SW의 분석을 통해 HW를 제어하는 특정 함수 및 값을 그대로 사용 및 전송하는 등의 방법을 통해 정상/매크로 기기 여부를 탐지하는 기능을 연구했으며, 이 과정에서 hid 장치 조작에 대한 많은 인사이트를 얻게 되었습니다.
- 솔루션 우회 탐지를 위한 서버 연동 기능 (2019.10. ~ 2022.03.)
- 일부 게임 핵의 경우 솔루션 자체를 동작하지 않게 우회하여 탐지를 회피하는 경우가 있었으며, 이를 탐지하기 위한 서버 인증 기능을 구현했습니다.
- 고객사 환경에 맞춰 해당 기능을 연동할 수 있게 배포해야했기 때문에 C++은 물론 C#, Python, Golang, Java, Node.js, Elixir 등의 언어를 사용하는 게임 서버에서 사용할 수 있도록 샘플 제작 및 연동 플러그인을 작성, 배포했습니다.
- 고객사 환경으로 Windows는 물론 Linux를 사용하는 고객사가 있었기 때문에 개발 과정 중 일부에서 cross-platform에 대한 고려가 필요했으며, 단일 소스코드 베이스로 빌드 환경에 따라 적합한 바이너리를 생성할 수 있도록 구성했습니다.
- 이 프로젝트를 통해 다양한 언어를 빠르게 습득하는 방법을 배움과 동시에 다양한 언어 및 플랫폼에서 동작함과 동시에 작성한 코드를 고객사의 입장에서 큰 변경 없이 쉽게 배포할 수 있는 구조에 대해 연구하는 계기가 되었습니다.
- 고객사와의 핵툴 탐지 관련 협업 (2019.03. ~ 2022.03.)
- 회사 개발팀을 대표하여 솔루션을 사용하던 고객사와의 협업을 담당했습니다. COVID19로 인해 대면 회의가 중단되기 전까지 특정 고객사와는 월 2~3회의 대면 미팅을 진행했으며, 그 이후에는 Slack 등을 사용한 실시간 커뮤니케이션을 통해 게임 핵 탐지 방법과 관련하여 협업을 진행했습니다.
- 게임 핵 탐지 방법, 일정 관리, 이슈 트래킹, 질의 응답, 결과 분석 및 후속 조치 진행 등의 전반적인 내용을 맡아 담당했으며, 재직중이던 회사는 물론 고객사들로부터도 협업 과정에서 원활한 커뮤니케이션이 이루어졌다는 평가를 받았습니다.
- 게임 핵 분석을 위한 Minifilter 드라이버, 탐지를 위한 Kernel 드라이버 (2019.04. ~ 2022.03.)
- 게임 핵 분석 과정에서 사용하기 위한 minifilter 드라이버를 구현했습니다.
- 게임 핵의 경우 사용자가 임의의 게임 핵 바이너리를 실행하여 메모리를 변조하는 방식을 사용합니다. 이 과정에서 게임 핵은 임의의 위치에 실행파일 이미지를 다운로드 받고 이를 사용해 메모리를 변조합니다. 이후 필요에 따라 다운로드 받은 이미지와 더불어 자신의 이미지까지 삭제하는 경우가 대다수였기 때문에 디스크의 임의의 위치에 파일 생성 및 수정 이벤트가 이루어지는 경우 해당 데이터를 백업하는 기능을 가진 minifilter 드라이버를 작성하여 분석에 사용했으며, 게임 핵을 직접 분석하는 일부 고객사에 배포하기도 했습니다.
- 탐지를 위한 kernel 드라이버의 경우 솔루션과 함께 배포되어 탐지 과정에 사용되었습니다.
- Unity 기반 게임 개발 환경에서의 연동을 위한 SDK (2020.04. ~ 2021.08.)
- Dump 분석을 위한 WinDbg 플러그인 (2019.08. ~ 2020.12.)
삼성 청년 SW 아카데미(SSAFY)
-
마이 리틀 콘서트 (2023.01. ~ 2023.02)
-
https://github.com/movebxeax/MyLittleConcert
-
WebRTC 기술을 활용한 중계 서비스로, 누구나 공연을 주최하는 아티스트가 될 수 있는 것에 더불어 온라인 콘서트의 단점인 아티스트와 관객 사이의 효과적인 경험 교류를 제공하기 위한 프로젝트입니다. 해당 프로젝트는 심사 결과 우수 프로젝트로 선정되었습니다.
-
해당 프로젝트에서 팀장을 담당했습니다. 기술적으로는 MSA 아키텍쳐를 기반으로 한 프로젝트 구조 설계 및 자동 배포, tensorflow.js와 face-api.js 를 활용한 감정 표현 관련 기능, OpenVidu를 활용한 WebRTC 기능 개발을 담당했습니다.
-
아티스트와 관객 사이의 소통을 위해 표정 및 동작 인식을 사용해 감정표현을 구현했습니다. 사용자가 특정 표정을 짓거나 동작을 취하는 경우 해당 상황에 맞는 이모티콘을 아바타가 대신해 출력해주도록 구성했으며, 이 과정에서 face-api.js와 tensorflow.js등을 사용했습니다.
- 최초 설계 당시에는 동작 인식을 위해 Google의 teachable machine을 사용하려고 했으나, face-api.js와의 tfjs 버전 충돌 문제로 사용이 어려웠습니다. 따라서 tfjs의 posenet을 사용하여 사용자의 동작을 구분할 수 있도록 구현했습니다.
- 프로젝트 설계 구조상 감정 표현 데이터들은 한번 적재되면 수정/삭제되지 않음이 보장되면서 시간순으로 적재되기 때문에 기존의 MySQL 같은 RDB 대신 TSDB인 InfluxDB를 사용했습니다.
-
각각의 서버는 dockerize 되어 필요한 경우 scale-out이 자유롭도록 설계했습니다. 다만, envoy 뒷단에서 eureka 등의 LB를 고려했으나 프로젝트 기간이 짧은 것에 더해 다수의 ec2 인스턴스를 사용할 수 없어 해당 부분까지 적용하지 못한 부분은 아쉬움으로 남습니다.
-
사용 기술

-
프로젝트 소개 영상
https://youtu.be/ki3b5bQMDsg
-
수면 습관 서포팅 서비스: Jaljara (2023.04. ~ 2023.05.)
-
Project R (2023.02. ~ 2023.04)
-
공공데이터를 활용한 구해줘! SSAFY Home 서비스 (2022.11. ~ 2022.11.)
Careers