목록Mobile App Penetesting/Android Reversing (3)
외로운 Nova의 작업실
- Smali 안드로이드는 달빅 가상머신위에서 돌아갑니다. 달빅 가상머신의 Smali는 어셈블리어와 비슷합니다. 따라서 리버싱을할때 어셈블리어를 알아야되듯이 안드로이드 리버싱을 할때는 Smali를 알아야합니다. - Smali 문법 실제 문법의 경우에는 안드로이드 개발자 사이트에 자세히 나와있습니다. https://source.android.com/docs/core/runtime/dalvik-bytecode?hl=ko Dalvik 바이트 코드 | Android 오픈소스 프로젝트 | Android Open Source Project Dalvik 바이트 코드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 일반 디자인 머신 모델과 호출 규칙은 일반적인 실제 아키텍처와 C 스타일 ..
- 동적 분석 저번 1장에서 안드로이드 앱을 apk > dex > .class 파일로 변경해서 자바 디컴파일로 파일을 봐보았습니다. 하지만 이는 정적 분석으로 코드만 볼 수 있습니다. ollydbg같이 프로그램을 실행시키면서 동적으로 분석하는 방법이 있는지 찾아보았습니다. IDA Pro로 가능하다는 것을 알게 되었습니다. 그 방법을 소개해드리겠습니다. - 사전 준비 먼저 동적 분석을 하려면 IDA pro, 통합USB드라이버, 안드로이드 단말기, adb 프로그램이 필요합니다. IDA pro가 있으신 분들만 가능합니다. 이제 통합 USB 드리이버를 다운로드 해보겠습니다. 스마트폰 제조사에 맞춰 통합 usb드라이버를 다운로드해줍니다. 저의 경우에는 삼성이므로 아래의 링크에서 다운로드가 가능합니다. https:..
안녕하세요. 이번 시리즈는 안드로이드 앱을 리버싱해보고 작동 원리를 알아내려고합니다. 안드로이드 앱 리버싱 관련해서는 예제가 많이 없어서 제가 직접 예제를 만들고 리버싱을 해서 작동 부분을 알아내보려고합니다. 그전에 사전 지식 이있습니다. - 사전 지식 구글은 태블릿, pc, 자동차에 들어가는 안드로이드 운영체제를 만들고싶었습니다. 따라서 열악한 환경에서도 잘 돌아가는 운영체제를 만들고싶었습니다. 이에따라 jvm을 사용하고싶었지만 저작권때문에 사용하지못하고 Dalvik 가상머신을 새롭게 만들었습니다. 하지만 Dalvik 가상머신또한 jvm에 영향을 받고 있습니다. jvm은 자바 가상 머신으로 프로그램을 해석하는 기능을 합니다. 이때 기계어가 일반적인 cpu와는 다르다는 특징이 있습니다. 따라서 jvm에서..