게임사에서 비매너 유저를 발견 했을 때
불법 프로그램을 계속 사용 하거나 게임사에서 정해놓은 규정을 여러번 어길 경우 그 유저를
게임에 접속하지 못하게 만드는 방식을 보통 Ban 이라고들 표현 합니다. 그렇다면 특정 유저를
판별하는 방식이 여러가지가 있을텐데.. 제일 일반적인건 그 계정에 대한 고유번호를 게임사에서
접속을 못하도록 제지를 하는 방법이겠죠. 하지만 이 방식은 그 비매너 유저가 다른 계정으로 다시
들어오게 될 경우 별 소용이 없다는 단점이 있습니다. 그렇다고 매번 제지를 다 때릴 수가 없고요..
그럴 경우 그 컴퓨터로 접속하는 방식을 막는 방법을 씁니다. 물론 이마저도 컴퓨터를 교체 하거나
다른 컴퓨터로 접속할 경우 제지를 할 수는 없지만 계정보다야 훨씬 나은 방법인게 비매너 유저도
고작 그 비매너 짓 하려고 컴퓨터를 바꾼다거나 매번 피시방을 간다거나 하는 자기 돈을 쓰면서까지
하지는 않으니까요. 그러면 그 유저의 컴퓨터라는걸 어떻게 확인을 할까요?
특정 유저를 판별하는 방법
제일 일반적인건 IP Ban과 하드웨어 Ban이 있습니다. 이 두개가 특정 유저를 판별하는 방법 중
가장 쉬우면서도 접근하기가 용이한 편이죠. IP Ban의 경우 IP를 바꾸면 풀린다는 단점이 있습니다.
물론 IP를 바꿀 줄 모르는 분들에 한해서는 좋은 방법이긴 하지만 IP는 바꾸는 방법 한 번만 알면
바로바로 바꿀 수 있다는 게 문제죠. 하드웨어의 경우 컴퓨터 본체 안에 위치한 부품이기도 하고
저장된 자료들이 있는 경우 쉽게 바꿀 수 없기 때문에 하드웨어 밴을 더 많이 쓰는 편입니다.
보통 게임을 실행할 때 안티치트 프로그램도 같이 실행이 될텐데, 이 안티치트 프로그램에서
유저 컴퓨터의 하드웨어 시리얼 번호나 정보를 수집해 갑니다. 이걸 두고 외국에선 왜 허락 없이
내 컴퓨터의 정보를 취득해가냐라고 반발하는 편입니다만 어쩌겠어요... 비매너 유저 막아야죠....
이 부분에 대해서는 각자 생각이 다르니까 어쩔 수는 없는거 같습니다.
어쨌든 이 안티치트 프로그램에서 시리얼 번호를 수집해간 뒤, 이 시리얼 번호를 가진 컴퓨터에서
많은 비매너 행위가 발견이 됐을 때 이 번호로 접속을 한 계정은 전부 블럭 처리를 해버리는 구조죠.
피하는 방법이 있을까
그렇다면 이 하드웨어 Ban이라는걸 피하려면 하드웨어를 바꾸는 방법 밖에 없을까요?
그렇지는 않습니다. 시리얼 번호를 수집하는 행위에서 그 시리얼 번호를 조작해서 보내면 되겠죠.
그러면 시리얼 번호를 수집하는 행위가 어떻게 이루어지는지를 알아야 조작을 하건 하겠죠.
특정 응용 프로그램에서 장치 드라이버와 직접적으로 통신할 때 쓰는 API 함수가 있습니다.
바로 DeviceIOControl 이라는 함수인데요. 이 함수를 통해서 시리얼 번호 조회를 할 수 있습니다.
한 번 확인 해볼까요?
DeviceIOControl 부분에 디버깅을 건 상태입니다. 단 BC7143이라고 되있는게 있는데
이건 실제 DeviceIOControl을 쓰는게 아니라 안티치트 프로그램에서 임시로 생성한 1회용
파일에다 DeviceIOControl 함수를 집어넣어놓고 이 부분 거쳐가게끔 쓰는식으로 동작
하는겁니다. 즉 API 함수 자체를 후킹할려는 방식을 막는 방식이라고 보면 편하겠네요.
어디에서 시리얼 번호를 참조하는지는 스택을 조금 살펴 보시면 발견할 수 있습니다.
Samsung SSD 980 1TB = 내 SSD
3B4QFXO7 0025_38D6_3140_xxxx // xxxx는 일부러 가렸습니다.. 시리얼 번호
이런식으로 수집을 해가는 곳을 포착할 수 있죠. 그럼 간단하게 이 부분을 바꿔주게 되면 수집할 때
내 실제 시리얼 번호가 아닌 다른 이상한 번호를 수집해가기 때문에 하드밴을 당할 일이 없죠.
설령 하드밴을 당한 하드웨어라 할지라도 따로 밴을 안 먹게 되죠. 이 경우 일반적으로 구글링으로
나오는 시리얼 번호 바꿔주는 프로그램을 써도 똑같이 밴을 먹는 경우에 쓰면 좋은 방법입니다.
단지 보통 구글링 해서 나오는 경우 하드디스크 시리얼 번호를 변조하는게 많은데 요즘은 이게
안 먹힌다 봐야하고 디스크 외에 다른 부품들의 시리얼 번호도 수집하여 여러 번호를 대조하는게
대다수인걸 감안하면 이 함수 사용법을 익혀두는게 가장 좋은 편이라 생각합니다.
'Reversing & Cheat Engine' 카테고리의 다른 글
36. 기본적인 보안에 대한 개요 (0) | 2024.03.21 |
---|---|
35. Cheat Engine Tutorial 8 (0) | 2024.03.20 |
34. Cheat Engine Tutorial 7 (0) | 2024.03.19 |
33. Cheat Engine Tutorial 6 (0) | 2024.03.18 |
31. Cheat Engine Tutorial 4 (0) | 2024.03.16 |