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 |