안드로이드에 관하여

    JEB2 or JEB3가 안될때

    JEB2 or JEB3가 안될때

    안드로이드를 공부해 보기 위해 검색을 하던중 "JADX"와 JEB라는게 있다는 것을 들었다. 그런데 Jadx는 잘 되는데 JEB는 잘 안된다. 이런 두개의 창이 뜨면서 안된다. 만약 JDK를 설치 했는데도 이것만 뜨면 경로를 살펴 보자. 경로에 단 하나라도 한글이 있으면 이건 안된다!

    Android Hacker's Handbook 2장 -2-

    Android Hacker's Handbook 2장 -2-

    * 주의 : 나는 영어를 잘 하지 못한다. 이걸 번역한것은 뇌에서 고등학교 수준의 영어로 번역해낸 것이다. 더욱 자세한 내용을 볼려면 원문을 읽어라. Android Permissions android 권한 모델은 API 사용권한, 파일 시스템 사용 권한 및 IPC 사용 권한 같은 기능을 제공한다. 이것들은 각각이 얽혀 있기도 하다. 앞에서 말한것 처럼 일부 high-level 수준의 사용권한은 low-level 수준의 OS 기능으로 다시 매핑 된다. 여기에는 소켓 열기,Bluetooth 장치 및 특정 파일 시스템 경로와 같은 작업이 포함 될 수 있다. 앱 사용자의 권한과 추가적인 그룹을 결정 하기 위해 ANdroid는 앱 패키지의 Android Manifest.xml 파일에 지정된 high-level 권..

    Android Hacker's Handbook 2장 -1-

    Android Hacker's Handbook 2장 -1-

    * 주의 : 나는 영어를 잘 하지 못한다. 이걸 번역한것은 뇌에서 고등학교 수준의 영어로 번역해낸 것이다. 더욱 자세한 내용을 볼려면 원문을 읽어라. 안드로이드는 보안 검사 및 수행에 역할을 하는 서로 상호작용하는 매커니즘으로 이루져 있다. 이러한 매커니즘들은 수행할 대상(app/user), 객체(other apps, files,devices) , 수행할 작업(read, write, delete 등) 과 정보를 교환 합니다. 대부분 실행 할 때는 멀쩡하지만 가끔씩 벌어진 틈새로 정보가 흘러나가 공격할 기회를 주기도 한다. Understanding Android System Architecture(안드로이드 아키택처 이해하기) 일반적으로 안드로이드 아키텍처는 때때로 Linux의 자바로 묘사 되었지만 그건 ..

    Where is my arm ?

    Where is my arm ?

    오늘 해볼 내용은 안드로이드 기기 내부의 cpu인 ARM에 대한 내용이다. 제목이랑 사진은 arm 하니까 생각난게 팔이라서 그냥 넣어 봤다. 귀여운 눈사람과 함께 arm에 대해서 알아보자 ARM이란 무엇일까? 일단 ARM은 adavanced RISC Machine의 약자로 CPU의 한 종류다. 안드로이드 뿐만 아니라 다양한 기기에도 이용 되고 있는 ARM 프로세서의 특징으로는 1. 전력 소모가 적다. 2. 성능에 따라 다양한 CPU를 제공한다. 더 다양하게 특징들이 있지만 안드로이드 공부인 관계로 안드로이드와 관 련된 것 같은 것 만 적어 보았다. 또한 ARM이 advanced RISC Machine의 약자라고 했었는데 중간에 있는 RISC도 약자가 Reduced instuction Set compute..

    Android Hackers Handbook 1장

    * 주의 : 나는 영어를 잘 하지 못한다. 이걸 번역한것은 뇌에서 고등학교 수준의 영어로 번역해낸 것이다. 더욱 자세한 내용을 볼려면 원문을 읽어라 Looking at the Ecosystem Understanding Android’s Roots ~ Version History Android는 다양한 뜻을 포함 한다. 모바일 운영 체제인 Android를 만든 회사와 Android의 버전의 이름에 대한 역사이야기가 초반에 나온다. 읽어 보면 재미는 있다. Examining the Device Pool 스마트 시계, 텔레비전 액세서리, 게임 콘솔, 오븐, 인공위성, 그리고 새로운 구글 글라스와 같은 장치들은 안드로이드에 의해 작동된다. 자동차 업계는 안드로이드를 차량의 인포테인먼트 플랫폼으로 사용하기 시작했..

    APK 보호기법

    안드로이드 앱은 자바로 이루어 져서 쉽게 디컴파일이 되는데 그걸 막기 위해 보안 솔루션을 사용합니다. 디컴파일을 하여 나온 코드를 보기 힘들게 만들기(난독화,암호화) 1. 이름 난독화 필드 , 메소드 , 클래스의 이름을 의미 없는 이름으로 변경합니다. ex) setText -> ab() 2. API 은닉 Java Reflection를 이용합니다. *Java Reflection : 리플렉션이란 객체를 통해 클래스의 정보를 분석해 내는 프로그램 기법을 말합니다. Class a = Class.forName("AAClass") 3. 흐름제어 클래스 속의 메소드 등의 영역을 바꾸거나, 의미 없는 더미 코드를 삽입하여 코드 흐름 파악을 어렵게 한다 //흐름제어 전 a = 0; while(a

    PicoCTF [droids 3]

    PicoCTF [droids 3]

    문제 해결 이번문제를 봤을때 든 풀이 방법은 "코드 패치 , 후킹" 두가지 였습니다. 코드 패치를 해봤는데 코드 패치후 서명까지 했는데도 제가 뭐가 실수가 있었는지 설치가 안되었습니다. 다음에 공부하고 다시 블로그에 쓰던가 해야 할것 같습니다. 그래서 이번에는 후킹으로 진행 하겠습니다. import frida,sys def on_messaege(message,data): print("{} -> {}".format(message,data)) #제일 중요한 후킹 코드 hook_code = """ Java.perform(function() { console.log("[*] HOOK START"); var Target = Java.use("com.hellocmu.picoctf.FlagstaffHill"); Ta..

    PicoCTF [droids 2]

    PicoCTF [droids 2]

    문제 해결 이번에는 저번과 다른 뭔가 특별히 필요한것이 없는 pico vaultdoor 같은 문제이다. a = ["weatherwax", "ogg", "garlick", "nitt", "aching", "dismass"] second = 0 third = 1 four = 2 five = 5 print(a[five],".",a[third],".",a[second],".",a[(five+second)-third],".",a[3],".",a[four]) 이러면 "dismass.ogg.weatherwax.aching.nitt.garlick" 가 나옵니다. 이걸 입력하면