- 개요
컴퓨터에서 핵은 해킹을 의미하는 말로, 프로그램의 취약점을 사용하여 메모리를 조작하는 방식으로 동작합니다.
핵을 통해 프로그램의 데이터를 조작하는 것 말고도, 통신에서 전달되는 패킷을 조작하는 것도 가능합니다.
치트 엔진과 같은 해킹 툴은 특정한 프로그램의 메모리를 스캔하고 스캔한 메모리의 데이터를 조작할 수 있습니다.
1) 리버싱
Reversing은 Reverse Engineering의 줄임말로서, 완성된 제품의 구조와 작동 원리를 분석하여
그 제품의 설계, 기능, 제작 방식을 역으로 파악하는 과정을 의미합니다.
컴파일된 결과물에서 역으로 바이너리 형태의 코드를 뽑아내는 디컴파일등이 리버싱에 해당합니다.
여러가지 툴을 사용하여 리버싱을 수행할 수 있는데, C++보다 C#의 리버싱 과정이 훨씬 간단합니다.
C++은 OS의 환경에 맞게 바이너리 코드를 추출하고 분석합니다.
반대로 C#은 바이트코드라고 불리는 특정 운영체제의 종속적인 빌드를 막아주는 중간단계 언어가 존재하여
바이트코드를 추출하여 분석할 수 있으므로 C++에 비해서 리버싱이 간단합니다.
2) 서버의 관점에서 해킹에 대응하는 방법
서버 - 클라이언트 구조에서 해킹을 완벽하게 방어하는 것은 불가능합니다.
클라이언트는 공개되어 있기 때문에 클라이언트 코드와 메모리는 공격자에 의해 언제든지 수정될 수 있습니다.
따라서 해킹에 대한 방어막을 구축하는 것보다 서버의 구조를 어떻게 설계할지가 중요합니다.
2 - 1) Server - Client 구조

서버 - 클라이언트 구조는 굉장히 안전한 모델로서 간단히 표현하면 위와 같습니다.
특징을 정리하면 다음과 같습니다.
- 장점 : 중앙의 서버가 심판 역할을 수행하므로 클라이언트로부터 의심되는 데이터를 걸러낼 수 있음
- 단점 : 연산과 판정 같은 모든 작업들을 서버에서 수행하므로 부하와 처리 비용이 큼
2 - 2) P2P 구조

P2P 구조는 매우 단순한 모델로서 간단히 표현하면 위와 같습니다.
특징을 정리하면 다음과 같습니다.
- 장점 : 클라이언트간의 연결로 통신을 진행, 부하와 처리 비용이 적음
- 단점 : 의심되는 데이터를 걸러내기 힘들고, 한명의 네트워크가 문제가 생겨도 연결된 모두에게 영향
- 결론
현대에 와서는 P2P 구조는 사용되지 않고 서버 - 클라이언트 구조를 많이 사용합니다.
또 해킹에 대한 완벽한 방어는 불가능하다는 점을 인지하고 있어야 합니다.
따라서 서버를 개발하고 유지하면서 클라이언트의 데이터를 완전히 신뢰하지 않도록 명심해야 합니다.
'컴퓨터 구조' 카테고리의 다른 글
| 컴퓨터 보안 이론 - 암호학 (0) | 2025.10.15 |
|---|---|
| 컴퓨터 보안 이론 - 취약점 (0) | 2025.10.14 |
| NAT와 홀펀칭 (0) | 2025.10.11 |
| 네트워크 5계층 - Application (0) | 2025.10.10 |
| 네트워크 4계층 - TCP & UDP (0) | 2025.10.09 |