린엔진으로 global-meatadata.dat 복구하는법

홈 > 안드로이드 > 안드로이드
안드로이드

린엔진으로 global-meatadata.dat 복구하는법

2 LamarLee 78 16306 8

IL2CPP로 빌드된 유니티 게임을 분석할 때는 보통 IL2CPPDUMPER를 이용해서 심볼을 복구한 후에 분석을 진행합니다.


IL2CPPDUMPER는 libil2cpp.so와 global-metadata.dat를 입력으로 받아서 심볼 정보를 복구해주는 툴입니다.


근데 요즘 global-metadata.dat에 몇가지 조치를 취해서 il2cppdumper에서 읽을 수 없도록 만드는 경우가 있습니다.


이런 경우에는 게임이 실행되고 global-metadata.dat를 메모리에 로드할 때 파일을 원상태로 복구하고 로드하게 됩니다.


그래서 게임이 정상적으로 실행된 상태인 경우에는 메모리에 조치가 취해지기 전의 "유효한" global-metadata.dat가 존재하게 됩니다.


따라서 메모리의 해당 부분을 덤프하여 이러한 조치를 우회할 수 있습니다.


ff3b47b2bc650a5f57afb49f536a404c_1578025700_0644.png


먼저 IL2CPP로 빌드된 궁수의 전설이라는 게임을 린엔진을 통해 Attach한 상태입니다.


여기서 Get Maps List를 누르면,


ff3b47b2bc650a5f57afb49f536a404c_1578025796_5945.png


해당 프로세스의 메모리 Map이 출력됩니다.


이 상태에서 ctrl + F를 통해 string 검색을 할 수 있습니다.ff3b47b2bc650a5f57afb49f536a404c_1578025871_5483.png 


여기서 global-metadata.dat를 검색해줍니다.


이는 global-meatadata.dat를 로드할 때 이름을 그대로 사용하기 때문에 가능한 건데, 이름을 지우거나 다른 string으로 바꾸는 경우는 아직까지 본 적이 없습니다.


ff3b47b2bc650a5f57afb49f536a404c_1578025985_6597.png
 

이렇게 global-metadata.dat의 주소가 나오게 됩니다.


0x9a9ec000 - 0x9b400000에 로드되어 있는 것을 확인할 수 있습니다.


이제 Get Maps List옆에 있는 Memory Dump버튼을 통해 메모리의 해당부분을 덤프할 수 있는데,


시작주소와 크기가 필요합니다. 


시작주소는 보시다시피 0x9a9ec000이고 크기는


ff3b47b2bc650a5f57afb49f536a404c_1578026183_8069.png


0xa14000 = 10567680 입니다.

ff3b47b2bc650a5f57afb49f536a404c_1578026243_2357.png

시작 주소를 입력하고,


ff3b47b2bc650a5f57afb49f536a404c_1578026281_58.png

크기를 입력합니다.


완료되면, 린엔진 폴더의 dumpDir이라는 폴더안에


ff3b47b2bc650a5f57afb49f536a404c_1578026356_2075.png
 

이렇게 파일이 생성된 걸 볼 수 있습니다.


해당 파일을 헥스 에디터로 열어봤을 때,


ff3b47b2bc650a5f57afb49f536a404c_1578026414_8854.png
 

이렇게 맨 앞부분 4바이트가 AF 1B B1 FA이면 정상적인 global-metadata.dat가 복구된 것입니다.


정말 많은 분들이 이부분에 대해서 질문해주셔서 일단 린엔진으로 복구하는 법을 알려드렸고,


해당 기능의 자동화 툴도 조만간 만들어서 올리겠습니당.



 

78 Comments
5 파파엄마 2020.01.03 15:32  
오 멋진 강좌입니닷 !!

Congratulation! You win the 19 축하드립니다! 당첨되셨어요~!

5 laeikan 2020.01.03 15:53  
오호 감사합니다.
2 해키 2020.01.03 16:59  
오오 조아요
S 코드몽키 2020.01.03 17:43  
아하 린엔진 덤프기능은 알고있었는데 global-metadata.dat 파일명 전부를 써야하는지는 오늘알았네요^^; 감사합니다
S 코드몽키 2020.01.04 04:29  
저는 global-metadata.dat 라고 하니 안되서metadata.dat 라고만 검색하니 되네요
2 LamarLee 2020.01.04 23:13  
엇 혹시 쪽지로 어떤 게임인지 알려주실수 있을까요?ㅜㅜ

Congratulation! You win the 15 축하드립니다! 당첨되셨어요~!

S 코드몽키 2020.01.05 04:04  
쪽지드렸습니다
S Dhhd 2020.01.04 12:49  
대단하네요
3 OwNeD 2020.01.04 14:46  
감사합니다!
4 jmj877 2020.01.06 19:21  
혹시 제가 다른앱을 찾아보고 있는데
global-metadata.dat가 검색이 안되네용
코몽님처럼 metadata.dat도 검색이 안되서
로드된 리스트업을 모두 수작업으로 살펴봤는데 해당파일이 없습니다.
이런경우는 수작업으로 조금 복잡하더라도 찾아내서 덤프뜰수 있는 방법이 있을까요?
4 jmj877 2020.01.06 19:43  
아 메모리 시작값을 찾아서 대충 덤프는 떴는데
이게 끝나는자리를 몰라 마지막을 대충 구겨넣으니 덤프뜬걸로는 에러가 나네요..
혹 메타데이터 파일도 마지막 주소가 정해진건 없나요?
2 LamarLee 2020.01.06 23:18  
아마 0으로 어느정도 채워져 있었던것 같은데 자세히 기억이 안나네요... 조사후에 다시 답변드리겠습니다.
4 jmj877 2020.01.07 09:55  
감사합니다 :)
12 모야모야 2020.01.12 15:39  
877님 저도 린엔진으로 global-metadata.dat 파일이 안보여서 그러는데...어떻게 찾으셨는지 알수있을까요?흠..ㅠ
28 사딸라 2020.01.07 08:23  
멋지십니다
5 wjddn 2020.01.07 13:01  
크기가 0xa14000 = 10567680 라는 것을 어떻게 아셨나요?
15 g00dluck 2020.01.09 09:45  
global-metadata.dat 가 로드된 주소를 통해 사이즈 계산을 할 수 있어요.
여기서는  시작주소        끝주소
              0x9a9ec000 - 0x9b400000
그 사이즈는 끝주소 - 시작주소,
0x9b400000 - 0x9a9ec000 = 0xa14000(10567680)
3 나나야 2020.01.08 00:30  
진짜 핵꿀팁
4 신사 2020.01.08 01:53  
와 신기하네요 ㅋㅋㅋ
2 혀기꼬 2020.01.08 15:19  
멋지십니다.
8 곤마쿠니 2020.01.09 08:23  
metadata 일반 덤프로 안되면 시도해봐야겟네요
감사합니다!
13 Rohas 2020.01.09 16:08  
오 재밌는 지료네요ㅎㅎ
2 djucd 2020.01.11 06:37  
Detected this may be a dump file. If not, it must be protected.
Input dump address:
il2cppDumper에서 이거 뜨면
뭐 입력 해야 되나요?
1 powaro 2020.02.15 23:13  
저도 이거뜨던데 ㅠ 혹시 해결방법 알아내셨나요?
1 Filis 2021.01.24 16:17  
시작주소를 넣어보세요
4 알려주세요오 2020.01.14 07:13  
아니 그런데 이런건 어찌아나요..;;
3 eiruty 2020.01.17 13:10  
감사합니다
1 cjstmdals 2020.01.19 07:00  
감사합니다
2 clanz 2020.01.24 00:57  
아 좋은 꿀팁 감사합니다
1 곰탱구 2020.01.26 14:39  
좋은정보 감사합니다
5 Bugday 2020.02.02 13:51  
메모리에서 global-metadata.dat 데이터 복구하는 방법 감사합니다
4 알려주세요오 2020.02.16 17:12  
다시 와딩합니다 감사합니당.

Congratulation! You win the 2 축하드립니다! 당첨되셨어요~!

3 ch4njun 2020.02.20 16:14  
좋은 정보 감사합니다 ㅠㅠㅠ
1 스티머 2020.03.08 00:04  
멋지다아아아
2 호랑이쿨광 2020.03.09 06:02  
좋은정보 감사합니다~!
2 pohcy 2020.03.10 07:04  
도움이 많이 되었습니다
1 주접애송이 2020.03.11 01:27  
감사합니다
4 빛둘기 2020.03.12 16:55  
감사합니다
2 말짱 2020.03.14 18:48  
감사합니다

Congratulation! You win the 13 축하드립니다! 당첨되셨어요~!

1 izi1 2020.03.28 04:25  
좋은정보 감사합니다~!
2 빵야빵야 2020.03.30 22:45  
좋은 강의 감사합니다.
7 래바리 2020.04.03 18:31  
감사합니다.
3 lofin 2020.04.14 04:58  
패킹되어있으면 Il2Cppdumper에서
뭐라고 뜨나요?
2 rjsejrrjsejr 2020.04.16 05:30  
배워갑니다~
2 deezee 2020.04.26 13:30  
앞에 주소는 뭔지 알겠는데.. 크기는 왜 그렇게 나오나요.. ?  원래 정해져 있나요?
1 derelikt 2020.04.29 21:10  
와 진짜 필요한 정보였는데 감사합니다

Congratulation! You win the 11 축하드립니다! 당첨되셨어요~!

21 kj009 2020.05.23 19:13  
감사합니다
1 Haul 2020.05.24 18:18  
좋은 정보 감사합니다
2 Arzeina 2020.05.25 23:43  
좋은 정보 감사합니다~@!
1 StolenByte 2020.07.21 10:54  
감사합니다
4 아방이 2020.07.22 09:21  
좋은정보 배워갑니다!!

Congratulation! You win the 12 축하드립니다! 당첨되셨어요~!

1 KK102 2020.07.23 10:30  
좋은 정보
4 쿨록 2020.08.07 18:55  
와 진짜 필요한 정보였는데 감사합니다

Congratulation! You win the 12 축하드립니다! 당첨되셨어요~!

1 univ17 2020.09.22 20:06  
정보 감사합니다 global-metadata.dat이 프로텍트 걸려있는 경우에도 가능한건지 한번 해봐야겠습니다
1 alal 2020.10.27 19:53  
옹 이거 저도 오류나서 포기해야 하나 했는데!넘 감사합니당
1 alal 2020.10.27 20:58  
global-metadata.dat 가 검색이 안되서 metadata를 검색했는데 결과가 3개나 나왔어요...ㅠ이 중에 뭐가 진짠지 모르겠네여
1 colr 2022.05.21 00:12  
camerametadata.dat 가 아닌가요?
1 남군 2021.01.26 15:11  
좋은정보감사합니다
5 킹왕짱 2021.02.04 06:14  
와 정말이지 대단하신 것 같습니다.
어떻게 이런 정보를 알수 있는건지......
5 킹왕짱 2021.02.05 06:20  
한번 시도해 보려합니다
잘 설명해 주셔서 따라할 수 있을 것 같은데 위에분들 댓글보니 막히는 분들도 계시네요 걱정입니다
별탈없이 잘 되길 바라면서 아자자 화이팅입니다
감사합니다
LamarLee님의 자동화툴은 아직일까요?
기대하고 있습니다
2 키랏 2021.03.06 20:06  
감사합니다
2 킹엔진 2021.03.28 02:24  
감사합니다
1 cokass 2021.07.23 12:51  
감사합니다.
2 공적1 2021.09.06 03:05  
감사합니다~
1 토템 2022.01.01 02:13  
대단하네요.. 감사합니다
1 gkdl 2022.02.06 15:29  
감사합니다
1 IDAPro 2022.02.28 01:25  
감사합니다.
1 기드기 2022.05.07 23:24  
유용합니다
1 colr 2022.05.21 00:13  
후킹이 감지되엿다고 나오네요 그래도 리스트가 나와서 덤프를 떳는데 첫 시작이 다르네요. 이건 어떻게 해야 할가요?
1 duruuu 2022.06.28 17:59  
이문제 너무어렵네요 ㅠㅠ
1 richardson 2023.05.24 00:47  
tranks
1 GR3K 2023.05.24 00:57  
thanks
3 항해 2023.07.04 18:15  
좋군요 감사합니다.

Congratulation! You win the 15 축하드립니다! 당첨되셨어요~!

1 음야 2023.07.28 10:39  
감사합니다
1 kim33333 2023.10.03 19:48  
감사합니다
1 kkkk10001 2023.10.29 02:43  
감사합니다
2 피피에이 03.31 03:13  
뭐가 먼지 모르겠네요 ㅜ
1 엄준식20072 04.05 23:36  
이야 감사합니다