1. 사용된 변수를 Overwrite 하거나 null로 만들어 초기화 하는 방법을 기본으로 사용함

 

2. 단, String 개게를 이용할 경우 초기화를 진행하더라도 JVM 에서 GC이 일어나기 전까지
메모리 내 평문으로 내역이 존재함

 

3. 해당 String 객체를 null로 초기화 할 경우 객체 Reference 만 null로 만들어 주므로
실제 사용된 데이터는 메모리에 남아있고 GC 시기는 알 수 없으므로 GC 전 Memory dump를 진행할 경우
null로 string 객체를 초기화하여도 해당 데이터는 momory 내 존재하게 됨

 

4. 근본적으로 String 객체는 Overwrite 할 수 없으며 String 객체에 다른 임의의 문자열을
삽입하더라도 새로운 Memory 영역에 해당 데이터를 저장하므로 Reference 만 변경되고 기존 값은
그대로 Memory 내 존재함

 

5. 그러므로 Memory 내 평문 정보가 노출되지 않아야 할 경우 String 객체가 아닌 char[]로
데이터를 저장하고 Overwrite 하거나 null로 만들어야함

 

 

'모바일' 카테고리의 다른 글

안드로이드 NDK 란?  (0) 2020.09.21
 Cydia Impactor alternative  (0) 2020.09.10
모바일 usb 케이블 사용 여부 탐지  (0) 2020.09.06
갤럭시 S7 루팅  (0) 2020.08.24
frida iOS hook  (0) 2020.08.10
블로그 이미지

wtdsoul

,