|
2023-03-17 15:43
조회: 17,353
추천: 137
[장문] 클라변조 기술적인 부분 정리해왔다현업 개발자는 아니지만 취미로 코딩좀 치는 사람이다. 간단한 온라인게임 정도는 직접 만들어봤다. 클라이언트, 서버, DB 전부 나 혼자 만들음. 메이플은 15년전에 접었다. 다만 이번사태에 관심이 있어서 메벤 30추 위주로 쭉 지켜보고 있었음. 인벤 아이디 없어서 친구꺼 빌려서 쓴다. 암호화나 해킹에 관련해서 전문적인 지식은 없지만 그래도 보안에 대한 기본베이스는 있다고 생각함. 틀린거 있으면 미안합니다. 현업뛰는 형님들께서 지적이나 첨언해주시길 바랍니다. 아까 오전 긴급패치에 뭐바뀐건지 모름 이미 막힌거 있을수도있음 ===================================== 글 올라오는것들 보니까 뭐가뭔지 잘 구분 못하는 유저들이 많더라. 당연하긴함 전공자 아니면 헷갈릴수있음 제대로 알고 까야하니까 현재 알려진 핵/클라변조/매크로에 대해서 하나씩 짚어보고 기술적인 부분들을 설명해볼게 물론 어느정도 전문적인 내용이 들어가는거라 내용이 좀 어려워도 양해를 부탁한다 귀찮으면 굵은글씨만 읽어라 일단 기본개념부터 짚고 넘어가보자. 서버 = 넥슨 본사 클라이언트 = 내 컴퓨터 내 컴퓨터에 위젯 파일이 깔려있고, 게임을 실행하면 컴퓨터는 계속 실시간으로 그걸 읽고 머릿속에 기억해둔다. 메모리 = 컴퓨터 머릿속 여기서 컴퓨터에 깔려있는 위젯 파일을 건드는게 언패커 = 클라이언트 변조 컴퓨터가 위젯 파일을 읽은다음에 그 기억을 건드는게 치트오매틱 = 메모리 변조 지금 치트오매틱에 뚫렸다 이러는사람들이 있는데 이번에 화제가 된건 언패커에 뚫린거지 치트오매틱에 뚫린게 아님 뭐 결론적으로 게임에 주는 영향은 똑같긴한데 기술적으로 막는 방법이 다르니까. 클라이언트는 내 컴퓨터니까 당연히 내 마음대로 조작이 가능하다. 즉 언패커는 이론적으로 못막음 메모리도 내 컴퓨터의 기억이니까 당연히 내 마음대로 조작이 가능하다. 즉 치트오매틱도 이론적으로 못막음 프로그램을 복잡하게 짜거나 암호화를 걸어서 뚫는 난이도를 올릴수는 있어도 이론적으로는 못막는게 맞다. 이거야 어떤겜이든 동일함. 그래도 이걸 못막으면 당연히 겜이 병신이 될거아님? 그러니까 무결성검사, 메모리검사 이런걸 써서 막지는 못해도 어렵게는 만드는거다. 무결성검사 = 겜 실행시 파일이 서버에 있는거랑 같은지 체크 컴퓨터에 있는 위젯 파일이 서버에 있는 파일과 조금이라도 다르면 겜이 안켜지게 만드는거임. 메이플은 무결성검사를 하느냐? ㄴㄴ 안함 왜 안하냐? 이거 하면 겜켜는데 5분씩 걸릴거임. 딴겜들은 무결성검사 하냐? ㅇㅇ ㅋㅋㅋ 메이플도 하려면 할수있는데 겜켜지는게 존나 오래걸리니까 안하는거 같다. 안그래도 병신겜이라 자주 튕긴다매 메모리검사 = 실시간으로 계속 메모리(기억)에 있는 내용이 제대로 된 내용인지 체크 메모리검사를 메이플에서 하느냐? ㅇㅇ 한다. 메이플 메모리 변조하면 겜 튕긴다더라 그럼 못뚫냐? 아뇨 당연히 뚫리죠 지금도 실시간으로 핵쟁이들이 메모리변조하고 놀고있을걸? 아무튼 이런 방식들도 어쨌든 내 컴퓨터에 깔려있는거기때문에 내맘대로 변조가 가능함 극단적으로 걍 메모리검사하는 코드를 삭제해버리면 문제가 없겠지? 서버를 짤때는 클라이언트에서 보내는 신호는 반드시 변조되어있다고 가정하고 짠다. 그렇게 짜는게 쉽다는건 아님. 턴제게임이거나 동접자수가 존나적으면 이게 쉬운데 메이플은 안그렇지 이런 보안 솔루션들이 변조를 완전히 막아주는건 아니지만 그래도 난이도는 올려주니까 꼭 필요한 조치임. 메이플 이새끼들은 그걸 안한다 대충 들어보니까 7년전 V패치인가 뭔가 그때부터 십창난거 같던데 지금와서 고칠수는 있냐? 못고침 ㅋㅋㅋ 고칠 능력 있는 사람들은 다 메이플팀 나갔음 ㅋㅋㅋ 게임엔진도 20년전 엔진이라 코드 개꼬여있을걸? 손못댐 이거. 클라 처음부터 다시 만드는게 빠르다는게 그 얘기다 이제 그럼 이론적으로 방어가 가능한건 뭐냐? 서버임. 유저가 아무리 날고긴다 해도 넥슨 본사에 쳐들어가서 서버를 강도질하지 않는 이상 서버 코드를 바꿀순 없을거 아님? 즉, 유저가 방금 한 행동이 말이 되는 행동인지를 서버에서 실시간으로 검사를 하면 된다. 혹은 아예 서버에서 계산이 이루어지면 된다. 메이플은 이걸 하냐? ㅇㅇ 하긴함. 일부지만. 그래서 겉값이라는 개념이 탄생한다. 내가 아무리 내 컴퓨터에 있는 숫자들을 변조해봤자 그건 실제 계산에 안쓰이거든. 메소, 대미지, 버프량, 쿨타임, 아이템, 캐시 이런 중요한것들은 서버에서 계산하기 때문에 암만 변조해봤자 의미가 없음 나한테만 그렇게보일뿐 다시말해 메소, 대미지, 아이템, 캐시 이런 중요한것들은 리패커나 현재 돌아다니는 핵 같은걸로는 뚫을 수 없다. 왜? 그 코드는 서버에 있으니까. 특정 보스를 핵을 써서 쉽게 잡아서 드랍템을 양산해내는건 가능해도, 그 템 자체를 복사하거나 주문서를 100% 성공시키거나 그런거는 리패커로는 불가능하다는 뜻이다. 23강 장비를 찍어낸다거나 크리율을 올린다거나 그런 말이 보이면 개구라니까 무시해라. 다만 메이플이 하도 병신겜이라 서버측 코드를 병신으로 짜놔서 주문서 확률조작이 가능했던적도 있었다고 얼핏 들은거같긴함. 이건 원리가 다름 ㅇㅇ 암튼 문제가 뭐냐면 이 병신들이 서버에서 계산해야하는 중요한 것들 중 몇가지를 놓쳤음 ㅋㅋㅋ 방금 쿨타임은 서버에서 계산한다그랬지? 근데 패파 노쿨은 뭐냐고? 깜빡했네요 엣큥 이거외에도 서버로 온 데이터를 보고 유저가 제대로된 행동을 하는지 검사해야하는데 안한부분이 몇가지가 더있다. 현재 제일 문제가 되는게 이 부분이다. 클라변조를 못막을거면 얘가 하는 행동이 정상적인 행동인지 그 기록을 받아서 서버에서라도 검사를 해야함. 물론 모든걸 검사하면 서버가 과부하로 녹아내릴거니까 중요한것만 근데 시발 ㅋㅋㅋ 시드 한층을 7초만에 뚫는건 정상적인 기록이냐? ㅋㅋㅋㅋㅋㅋㅋ 너네 일안하지? 자 여기까지 3줄요약해준다. 1. 클라이언트 보안 솔루션은 이것저것 있는데 이새끼들은 제대로 하는게 없다 2. 게임엔진(클라이언트)는 낡아서 제대로 못고친다 3. 서버 녹는거 감안하고 서버에서 더 많은걸 처리하게 하면 모든 문제점은 해결가능하다 아 그리고 한마디 더하자면 클라이언트 변조랑 핵은 기술적으로 같은말이다. 내가 클라 변조하는 코드를 짠다음에 나만 쓰면 클라이언트 변조고, 돈받고 팔면 핵임. >> 돈받고 팔면 << ← 이 부분 때문에 법적으로 달라지는거임. 돈안받고 뿌려도 마찬가지. 그러니까 강원기입장에서는 내가 클라를 직접 변조하는건지 시중에 풀린 핵을 사서 쓰는건지 구분할 도리가 없다. 그러니까 공지사항에 계속 핵/매크로 이렇게만 쓰는거다. 이새끼들은 핵이랑 클라변조랑 구분할수가 없으니까. 당연히 그게 제대로된 행동이라는건 아니다. 법적으로 차이가 있으니 당연히 공지에는 구분해서 써야함. ==================================================== 1. 시드핵 시드핵은 언패커로 클라이언트를 변조해서 이동기를 못써야하는 맵에서 제한을 해제하는 거다. 원론적으로 이거 막으려면 이동기를 쓸때마다 서버에서 "이새끼가 이 맵에서 이동기를 쓸수있는게 맞나?" 를 검사하면 된다. 아마 서버에 부하가 꽤나 걸리겠지만 어떻게든 할 수야 있겠지 근데 이동기는 막아도 청룡열차를 시드에서 켜면 되는거아니냐? 엌ㅋㅋㅋㅋㅋ 좆된듯 2. 청룡열차 청룡열차는 캐릭터를 강제로 이동시키거나 이동속도를 존나 올리는것으로 보인다. 즉, 대미지는 겉값이라도 이동속도는 겉값이 아니다 이거지. 리패커 갖고 노는 사람들 대미지 말고 이동속도 바꿔봐라 잘 통할걸? 메이플은 캐릭터의 위치/속도가 정상적인지는 검사하지를 않는 것으로 보인다. 이것도 캐릭터의 이동속도가 말이 되는지를 계속 서버에서 검사하면 되는데 매 프레임마다 검사하면 서버가 녹을거고... 솔직히 못막을듯 이런거 발로뛰어서 잡아내라고 ㅅㅂ 월급루팡 편하냐? 3. 오토룬 / 오토거탐 오토룬은 화면에 뜨는 이미지를 검출해서 입력하는 식으로 이루어진다. 못막는다. 해결법은 이미지를 병신같이 깨뜨리는거임. 그래서 지금 거탐 오토안되잖아. 이미지가 개 씹창나서 안읽힘. 근데 걍 거탐처럼 저주룬 뜰때마다 작업장이 일일이 풀어주면 되지싶다. 4. 오토비올레타 이게 제일 어이없음 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이새끼들은 비올레타 정답을 왜 클라이언트한테 알려주는거냐? 영상보니까 cmd에 다 뜨던데 시발ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 웹사이트에 캡챠가 뜨길래 개발자도구로 소스를 열어보니 정답이 적혀있는 꼬라진데 ㅋㅋㅋㅋㅋㅋㅋㅋ 이게 말이되냐? 다만 비올레타의 의도는 좋음. 작업장에서 거탐 푸는 방식을 쉽게 말하자면, 5명이 달라붙어서 계정 50개를 눈팅하면서 거탐 뜨는거 보이면 가서 풀어주는거다. 그럼 계정 50개를 동시에 거탐걸면 다섯명갖고는 동시에 못보겠군! 하고 만든게 비올레타임. 다만 비올레타 정답을 클라이언트한테 알려주는게 문제인거임. 이건 걍 코드만 다시짜면 된다. 유저가 제출한 답을 클라이언트가 아니라 서버에서 정답이랑 비교하면 됨. 비올레타 시스템 자체는 좋다고 생각함. 근데 난이도는 어케좀 해봐라 ㅋㅋㅋㅋ 비올레타 틀려서 진실의 방 갔다온 억울한 유저들 원혼만 쌓아놔도 강원기 압사시킬수있을듯 5. 메소핵 그런거 없다. 메소거래랑 메소드랍은 다 서버에서 관리하는 것으로 보임. 낚이지 말자. 메소 시세 병신되는건 메소핵이 아니라 작업장이 매크로 존나 돌려서 그럼. 작업장은 핵안쓰냐고? 당연히 쓰긴쓰는데 그게 메소핵은 아니라는 뜻임 (수정: 물론 내가 모르는 다른 방식으로 존재할수는 있음. 클라 건드리는걸로는 안된다는뜻) 6. 코디변경 이거 겉값만 된다는건 다 알지? 남들한텐 그렇게 안보이잖아 이것도 클라변조인 만큼 원천봉쇄 불가능함. 어케 막히더라도 어떻게든 핵쟁이들이 뚫어내긴 할거다. 나같아도 클라변조로 옷입히고 놀겠다 돈왜씀? ㅎㅎ 7. 월드맵이동으로 막힌맵 들어가기 이건 걍 서버측에서 이상한 맵으로는 못가게 막으면됨 쉬움 8. 심볼 고순돌 길뚫버그 이것도 걍 막으면됨 별문제X 9. 농장매크로 원천적으로 매크로는 막을 수 없지만, 최소한 너무 간단한 매크로는 걸러낼 수 있음. 이건 어느게임이든 마찬가진데, 매크로 탐지 원리가 계속 정확히 같은픽셀을 클릭한다거나 마우스가 순간이동한다거나 행동이 과하게 반복적이면 잡는거임. 다시말해서 매 클릭마다 약간의 변화를 랜덤으로 주면 매크로 탐지는 불가능함. 근데 농장매크로는 팝업창 뜨는 위치 계속 랜덤으로 바뀌게 하면 대충 막히지 않을까? 당장 떠오르는 방법만 몇가지는 되는구만 ㅋㅋㅋ 걍 일안해서 안막는거임 10. 사냥매크로 사냥매크로는 좀 잡기 어렵다. 왜냐면 이 병신겜은 멀쩡한 사람을 매크로로 퇴화시키는 겜이기때문에 사람이나 매크로나 행동패턴이 똑같거든. 그래서 거탐 저주룬 비올레타 이런게 나오는거 아니겠냐. 아마 영원히 못잡을거다. 11. 캐릭 피격판정 제거 / 스킬 범위 맵전체로 확대 핵 이것도 원천적으로 캐릭이랑 몹 위치를 서버에서 계속 체크해야 잡을수있는데, 그러면 서버 녹아내릴듯 클라이언트 변조 / 메모리 변조 방지를 더 열심히 해보는수밖에 없다 코드도 개꼬여있고... 못막는다 보면됨 12. 패파 노쿨 이건 진짜 실수로 놓친거임. 걍 다른직업들이랑 똑같이 막으면됨 13. 다른직업 스킬 사용 0차스킬 다풀린거 웃음벨이던데 ㅋㅋㅋ 진짜냐 그거? 주작아니지? 이건 걍 스킬쓸때마다 이 직업이 이 스킬을 쓸수있는게 맞는지 서버에서 체크해주면 된다. 간단하진 않겠지만 어떻게든 막을수있지싶음 14. 보스 패턴불능핵 원리를 모르겠음. 근데 보스패턴은 당연히 서버에서 관리할건데 클라이언트 변조좀 한다고 보스가 패턴불능이 될리가 없음. 영상이 진짜라면, 아마 보스 패턴에 버그가 있는게 아닐까함. 최소한 위에서 열심히 설명한 클라변조/메모리변조 원리는 아니다. 취약점이 뭔지 발견되면 고칠수 있을거다. 취약점이 뭔진 모르겠지만. 세줄요약 1. 현재 문제점의 대부분은 클라이언트 변조가 뚫려서 생긴거다. 2. 클라이언트를 고쳐서 해결하기에는 게임엔진이 낡고 개발진 역량이 딸리는것 같다. 3. 유저행동이 이상한지 서버에서 확인하는 로직을 추가해서 막아야한다. 내가봤을때 이겜은 수명을 다했다. 배그 옵치처럼 앞으로 핵쟁이들이랑 같이 살아갈 각오를 해야함. 아쉽겠지만 이젠 놔줄때가 되지 않았나 싶다.
EXP
4,299
(74%)
/ 4,401
|
메이플스토리 인벤 자유 게시판 게시판
인벤 전광판
[젓가락왕자] 나는 쌀다팜~ 난 이미 쌀다팜ㅋㅋ
메이플스토리 인벤에 오신 것을 환영합니다~★
Hatena