-
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
클라이언트 폴더 무결성검사 #29
Comments
예전에 한 번 비슷한 건의가 오긴 했는데 서버를 하나 두지 않는 이상 FullClient + 최신 패치를 클라이언트마다 다운로드 받아서 체크해야 할텐데 이러면 새로 다운받아서 덮어쓰는게 더 좋지 않을까 싶고, |
코멘트 감사합니다. 관련해서 고려 해보았는데, 만약 구현한다면 크게 두가지 옵션이 있을 것 같습니다.
한번 고려해주시면 감사하겠습니다. 매번 감사합니다. |
1번 옵션은 완전히 제외해도 될 것 같습니다. 2번 옵션에 대해서 조금 알아봤는데 깃허브에 저장하는 방식 보다는 만약, 매 버전마다 Full Client의 info 파일도 추출할 수 있다면 (제가 아직 알아보지 않았습니다) 의외로 희망이 보이네요.. |
ZIP CRC가 도움이 될지는 몰랐네요 :) 매 버전마다 Full Client의 인포파일은 따로 없는것같고 - 거상에서 Full Client를 자주 업데이트 해주지 않는 것 같습니다.. 다만 지금 제가 찾아보고 있는건, 7z 파일 자체에 header 혹은 footer에서 파일 리스트 및 CRC 데이터를 가져올 수 있는지 보고있습니다. 거기에 거상 서버 내에 있는 7z파일의 header 와 footer만 가져올 수 있다면 info파일이 없더라도 이 부분을 참고할 수 있을 것 같습니다. 찾게되면 말씀드릴게요 :) |
@chlrhkd4 아마 무결성 검사 기능 건이 마무리되는대로 1.5 버전 릴리즈가 이루어질 것 같은데 자동 업데이트 다운로드 기능이 없는 만큼 가능한 패치를 몰아서 하는 편이라 |
위의 방법으로 코드 작성 중 입니다. 혹시 따로 진행하시는 중이시면 말씀해주세요. |
@chlrhkd4 이게 어느정도 거상 다운로드 서버 쪽에도 부하가 가지 않는 방향으로 |
@byungmeo 제 Fork에서 IntegrityCheck브랜치에 IntegrityChecker모듈을 보시면,
메세지에 Range를 줌으로서 일정 바이트만 가져올 수 있습니다. 혹시 걱정되는 부분 있으시면 말씀해주세요 |
관련 테스트 스크립트 추가합니다. 7zip 파일의 헤더인 32bytes 와 footer 1mb를 다운받고 그 사이는 더미데이터로 추가하는 스크립트입니다. 그럼 Gersang_Install.7z 파일의 내용을 볼 수 있을거에요. |
@chlrhkd4
순으로 진행된다고 이해하면 될까요? 거상 Full Client 7zip 파일의 CRC 정보도 보기에 CRC32 같으니 수고는 덜겠네요. 아직 7zip 쪽 로직 작성 중 이시면 추가로 수고 많으십니다~ |
안녕하세요. 관련 구현은 현재 로컬에 있는 client 파일들을 읽어와서 CRC값 확인 및 Web에 있는 FullClient정보를 가져와서 CRC정보 확인까지는 문제가 없습니다. 다만, FullClient에서 정보를 가져온 후에, 현재 어떤 version의 클라이언트가 올라와 있는지 확인해야 다음 버전을 가져올 수 있는데요, 현재 제 생각은 local client(최신)가 32205 버전이면, 버전을 하나씩 낮춰가면서 vsn.dat 파일을 읽어오고, 이 파일의 CRC로 webClient의 vsn.dat파일 crc와 확인하여 검사하려고 하는데, 문제는 거상이 패치를 32200 이전 버전은 32012인데, 이것을 하나씩 숫자 낮춰가며 request를 던지면 너무 많은 request가 나와 걱정됩니다. 혹시 관련해서 정보 알고계신 것이 있는지요? -- 해결되었습니다 |
readme.txt 경로 찾았습니다. http://akgersang.xdn.kinxcdn.com/Gersang/Patch/Gersang_Server/Client_Readme/readme.txt 이걸로 파싱해서 패치 정보 받아오도록 할게요 |
종종 패치 중에 파일이 이상하거나, 변조되는것을 확인하기 위해 무결성 검사 기능이 있으면 좋겠다고 생각합니다.
기능은 Steam과 비슷하게, 유저가 원할때만 진행하며, 시간이 다소 오래걸릴수 있음을 인지(클라이언트 내 모든 파일을 검사해야함).
구현은 거상 FullClient 부터 최신 패치까지 확인 후 md5sum 으로 확인하는것이 괜찮을 것 같습니다.
어떻게 생각하세요?
The text was updated successfully, but these errors were encountered: