목록전체 글 (421)
외로운 Nova의 작업실
안녕하세요. 이번 시리즈는 안드로이드 앱을 리버싱해보고 작동 원리를 알아내려고합니다. 안드로이드 앱 리버싱 관련해서는 예제가 많이 없어서 제가 직접 예제를 만들고 리버싱을 해서 작동 부분을 알아내보려고합니다. 그전에 사전 지식 이있습니다. - 사전 지식 구글은 태블릿, pc, 자동차에 들어가는 안드로이드 운영체제를 만들고싶었습니다. 따라서 열악한 환경에서도 잘 돌아가는 운영체제를 만들고싶었습니다. 이에따라 jvm을 사용하고싶었지만 저작권때문에 사용하지못하고 Dalvik 가상머신을 새롭게 만들었습니다. 하지만 Dalvik 가상머신또한 jvm에 영향을 받고 있습니다. jvm은 자바 가상 머신으로 프로그램을 해석하는 기능을 합니다. 이때 기계어가 일반적인 cpu와는 다르다는 특징이 있습니다. 따라서 jvm에서..
- 문제인식 파일 업로드 기능을 활용하는 문제인것같습니다. 문제파일중에 index.php와 upload.php를 보겠습니다. index.php먼저 보겠습니다. Online File Box Choose a file... No file uploaded 간단하게 파일을 업로드할 수 있는 form이 구현된 index.php입니다. submit 버튼을 누르게되면 upload.php를 실행하게되므로 upload.php를 봐보겠습니다.
- 액티비티 상태 액티비티를 다룰때는 생명주기를 이해하고 각 상황에 맞게 대처해야합니다. 여기서 생명주기란 액티비티가 생성되어 소멸하기까지의 과정을 말하며 액티비티 클래스는 액티비티가 상태변화를 알아차릴 수 있는 여러가지 콜백 함수를 제공합니다. 이 콜백 함수에 액티비티 상태가 바뀔때마다 앱이 어떻게 동작해야하는지를 구현합니다. 액티비티의 상태는 다음처럼 크게 3가지로 구분할 수 있습니다. 활성 : 액티비티 화면이 출력되고있고 사용자가 이벤트를 발생시킬 수 있는 상태 일시 정지 : 액티비티의 화면이 출력되고 있지만 사용자가 이벤트를 발생시킬 수 없는 상태 비활성 : 액티비티의 화면이 출력되고 있지 않은 상태 - 활성 상태 활성 상태는 액티비티가 실행되어 화면에 나오고 사용자 이벤트를 처리할 수 있는 상태..