검열 패치전 데이터로 복원을 시도하는 시키칸분들에게 지금까지 얻은 정보를 올려두고 자러갑니다...
먼저 복원을 시도했던 시키칸분들은 일러스트 데이터가 .ab파일에 있다는것을 눈치채셨을겁니다.
하지만 단순 복사로는 게임 실행 시 유효성 검사로인해 새롭게 파일이 다운로드되어 대체되는것을 볼 수 있습니다.
그렇다면 도대체 무엇으로 유효성검사를 하는가? 를 생각해보면 여러가지가 경우가 있지만
단순하게 생각했을 때 ".ab파일의 크기" 또는 ".ab파일 내 특수 데이터 값" 을 이용하여 유효성을 검사한다고 생각해볼 수 있습니다.
그런데 .ab파일이라는것은 Android Backup File이라는 "압축파일" 형태인데, 이를 특정 프로그램을 사용하여 unpack을 시도하면 .tar로 변환이 가능합니다.
그렇다는 것은 .ab파일을 .tar로 변환해서 내부 파일들을 조사해보면 어떤 힌트가 있지않을까하는 생각에 이 글을 정리해봅니다.
지금부터 설명드리는 내용들은 다소 복잡할 수 있습니다.
먼저 .ab파일은 .Android Backup Extractor(https://sourceforge.net/projects/adbextractor/)라는 프로그램으로 압축해제가 가능합니다.
이 프로그램을 사용하기위해서는 Java SE 7 이상의 버전과 Cygwin이 필요합니다.(참조 : https://forum.xda-developers.com/showthread.php?t=2011811)
사용법은 명령 프롬프트에서 Android Backup Extractor를 압축해제한 경로 (Android Backup Utilities > Android Backup Extractor > android-backup-extractor-20171005-bin 폴더) 로 진입 후,
다음과 같은 명령어로 압축해제가 가능합니다. 압축해제할 .ab 파일은 해당 경로에 복사해 두어야합니다.
java -jar abe.jar unpack [입력파일명.ab] [출력파일명.tar] [password]
일단 첫번째 문제는 위 명령에서 보시는것처럼 패스워드입니다.
얘네들이 멍청하게 패스워드를 적용안시켰을리는 없고, 그 패스워드 정보가 앱 파일들 중에 xml파일 등에 저장되어있을 가능성은있습니다.
암호화는 AES256알고리즘으로 암호화되어있는것으로 생각됩니다.
일단 파세 관련정보가 들어있는 .ab 파일로 암호 없이 unpack을 시도해봤습니다.
에러를 뿜어냅니다. 이것이 두번째 문제입니다.
깨지는 에러메세지 때문에 정확하게 어떤 부분에서 어떤 오류가 발생하는지 알수없으나
Tar로 파일 추출중에 어떤 문제가 발생하는것이고, "Invalid Magic UnityRaw"라는 에러메세지를 힌트로 해결 방법을 찾아봐야할 것 같습니다.
프로그램이 비정상적으로 설치되었거나 제대로 작동안하는것 아닌가? 하고 생각되어 테스트 .ab 데이터로 시도해봤습니다.
2개의 텍스트파일이 들어있는 .tar파일을 비밀번호를 설정하여 .ab파일로 pack 후,
다시 unpack하니까 잘 동작합니다. unpack시 암호를 입력하지 않으면, 해당 입력파일이 암호화된 파일인지 아닌지 여부를 판단하여 암호 입력 프롬프트를 보여줍니다.
진행된것은 여기까지이고, 혹시나 저를 이어서 바통터치를 해주실 분이 있으면 참고바랍니다.
(IP보기클릭)107.2.***.***
전제가 틀렸을 수도 있습니다. "단순하게 생각했을 때 ".ab파일의 크기" 또는 ".ab파일 내 특수 데이터 값" 을 이용하여 유효성을 검사한다고 생각해볼 수 있습니다." -> 그냥 ab파일을 해쉬해서 쓸 수도 있습니다. 그럼 내용 변조는 물건너 간다고 봐야죠.
(IP보기클릭)203.229.***.***
해쉬비교일 가능성이 젤 높고 그럼 걍 포기하면 편하고 파일 버전을 비교해서 더 상위버전이면 안건드리는 식으로도 가능한데 이쪽도 어짜피 유저가 파일을 묶을수 없으니까 무리입니다
(IP보기클릭)107.2.***.***
전제가 틀렸을 수도 있습니다. "단순하게 생각했을 때 ".ab파일의 크기" 또는 ".ab파일 내 특수 데이터 값" 을 이용하여 유효성을 검사한다고 생각해볼 수 있습니다." -> 그냥 ab파일을 해쉬해서 쓸 수도 있습니다. 그럼 내용 변조는 물건너 간다고 봐야죠.
(IP보기클릭)125.132.***.***
아 그렇네요 해쉬가 더 간단하겠네요.. | 17.10.17 05:36 | |
(IP보기클릭)14.33.***.***
(IP보기클릭)223.62.***.***
(IP보기클릭)203.229.***.***
해쉬비교일 가능성이 젤 높고 그럼 걍 포기하면 편하고 파일 버전을 비교해서 더 상위버전이면 안건드리는 식으로도 가능한데 이쪽도 어짜피 유저가 파일을 묶을수 없으니까 무리입니다
(IP보기클릭)121.156.***.***
(IP보기클릭)211.238.***.***
(IP보기클릭)211.238.***.***
"Invalid Magic UnityRaw"라는 거 보니 매직넘버가 Unity 파일이라 되어 있나봐요 그러면 Unity 관련 파일일 확률이 매우 높죠 (아아니 소전이 Unity로 만든거였나?) | 17.10.17 20:37 | |
(IP보기클릭)125.132.***.***
네 확인해보니 Unity기반인것같더라구요 정보감사합니다 | 17.10.18 03:26 | |