실습 환경
- Windows7 64bit
- 안드로이드 스튜디오, AVD
- JAVA JDK 64bit
- 실습 파일 : http://dbdhack.tistory.com/entry/액티비티Activity-취약점에-대한-시큐어코딩-질문
질문 : 액티비티 취약점이 존재하는 안드로이드앱의 AndroidManifest.xml 파일에서 android:exported="true"값을 false로 변경 후 재컴파일 및 사인을 하고, 해당 .apk 파일을 AVD에 설치하였습니다. 그리고 am start 명령어를 입력하여도 이전과 마찬가지로 액티비티 취약점이 존재(다음 액티비티로 넘어갑니다)합니다. exported값을 false로 변경하거나 삭제하면 am start 명령어를 입력해도 다음 액티비티로 넘어가지 않는다고 하는데,,, 왜 넘어갈까요???
구글링해보면 exported값을 수정하거나 삭제하면 am start 명령어를 입력해도 다음 액티비티로 넘어가지 않는다고 하는데....
원본 testapp.apk 파일을 실행하면 비밀번호를 입력해야 다음 액티비티로 넘어가는데요.
그림과 같이 잘못된 비밀번호를 입력하면 다음 액티비티로 넘어가지고 않고 Wrong Password 문자열이 출력됩니다.

정확한 비밀번호(password)를 입력하면 다음 액티비티로 넘어갑니다.

원본 testapp.apk 파일을 디컴파일하면 디컴파일된 testapp 폴더가 생성됩니다.

AndroidManifest.xml 파일에서 하위 액티비티의 exported값을 false로 변경합니다.

java -jar apktool.jar b testapp.apk 명령어를 입력하여 재컴파일을 하면 dist폴더에 testapp.apk 파일이 생성됩니다.

dist 폴더에 존재하는 testapp.apk 파일을 signapk 명령어로 사인작업을 수행합니다.


adb 명령어를 이용해 수정된 aftertestapp.apk 파일을 설치합니다.

am start 명령어를 입력하였더니 다음 액티비티로 넘어갑니다. 비밀번호도 입력하지 않았는데 말이죠.
분명히 exported값을 false로 변경하고 재컴파일하고 사인작업까지 했는데 말이죠...
뭐가 문제일까요???
