인프런 - 강의/루팅탐지, 탐지우회, 방어방법 7

7 - 무결성 검사

무결성 검사에 대해 알아보겠습니다. 무결성이라는 것의 정의부터 알아보면 데이터 무결성(영어: data integrity)은 컴퓨팅 분야에서 완전한 수명 주기를 거치며 데이터의 정확성과 일관성을 유지하고 보증하는 것을 가리키며[1] 데이터베이스나 RDBMS 시스템의 중요한 기능이다. [출처 - https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%AC%B4%EA%B2%B0%EC%84%B1] 라고 합니다. 일관성을 유지한다고 하는데, 이 것을 앱에 적용해보면 APK파일이 변조되지 않고, 개발자가 개발한 그대로인가를 알아보면 되는 것 입니다. 위/변조된 앱이 동작하는 것을 막기위해 무결성 검사 로직이 추가됩니다. 1. 구글에서 다운받아 온 키가 맞는지 ..

6 - 프로가드 해독, 덱스가드

이전 강의에서 프로가드를 적용해서 코드를 난독화해서 읽기 어렵게 만들어봤습니다. 그런데 이 프로가드의 경우에는, 너무 쉽게 해독할 수 있습니다. 한번 프로가드 해독을 해보겠습니다. 이전의 프로가드 적용했을 때, 아래와 같은 형태로 디컴파일이 되는 것을 보실 수 있습니다. 약간의 난독화가 적용되어 있는데, 이 난독화를 풀 수 있습니다. 아래의 사이트에 들어가서 apk파일을 올려보겠습니다. http://apk-deguard.com/ DeGuard: Statistical Deobfuscation for Android DeGuard reverses the process of obfuscation performed by Android obfuscation tools. This enables numerous sec..

5 - 디컴파일, 프로가드

후킹을 위해서는 디컴파일에서 소스 코드를 봐야합니다. 디컴파일이란 무엇일까요? 컴파일의 반댓말입니다. 컴파일된 코드를 디컴파일 하면, 원래의 소스 코드를 볼 수 있습니다. 일단 디컴파일 툴을 다운받습니다. 저 같은 경우는 맥을 기준으로 작업했습니다. apk파일을 디컴파일하기 위해서 아래 다운로드 dex2jar - https://sourceforge.net/projects/dex2jar/ dex2jar Download dex2jar for free. Tools to work with android .dex and java .class files. Mirrors: * https://bitbucket.org/pxb1988/dex2jar * https://github.com/pxb1988/dex2jar dex2..

4 - 루팅 탐지 피하기(후킹과 프리다)

루팅 탐지를 피하는 방법에 대해서 몇 가지 알아보겠습니다. 정말 간단하게 생각하면, 루팅을 탐지하는 곳에서 루팅이 안됬다고 출력이 되면 됩니다. 이전 강의에서 위와 같은 경로에 "su"파일이 있나 탐지하는 코드가 있었죠? 이 탐지 코드를 피하려면, "su"라는 파일 명만 바꿔주면 끝 입니다....! 그러나, 이렇게 간단하게 되면 걱정이 없겠죠...? 이전 시간에 루팅 탐지 방법이 간단하게 2가지만 설명드렸는데, 폴더 권한 확인이나, 구글 플레이스토어에 런칭된 앱이 맞는지 릴리즈 키를 확인하는 방법도 있고, 이것저것 다양한 방법이 있습니다. 루팅 탐지를 아래와 같이 한다고 생각하면, 루팅에 탐지되면 시스템이 종료됩니다. 시스템 종료 부분을 가로채서, 계속 진행으로 바꿀 수 있습니다. 그 과정에서 프리다(F..

3 - 루팅환경 만들기, 기본적인 루팅 탐지

기본적인 루팅 탐지 방법에 대해 알아보겠습니다. 일단 루팅환경을 만들어야 하는데, nox라는 것을 사용합니다. 윈도우와 맥 모두 다 설치가 가능합니다. https://kr.bignox.com/ 얘를 다운 받으면 아래와 같이 되는데, 아랭 사진처럼 Root 끄기 켜기를 통해서 가능합니다. 자, 이렇게 루팅환경을 설정할 수 있습니다. 그렇다면, 기본적인 루팅 탐지를 한번 보겠습니다. 탐지를 하는 방법을 알면 우회를 하는 방법도 알 수 있겠죠?? - "su"탐지 "sudo", "su" 같은 명령어를 리눅스를 다뤄 보셨다면 아실 텐데 sudo는 root가 아닌 사용자가 root권한으로 무엇인가를 실행시키는 것입니다. su는 현재 계정에서 root계정으로 전환하는 것입니다. 루팅을 하면 su라는 파일이 생기는데 ..

2 - 루팅 개요

루팅이란 무엇인가? 루팅 하는 방법은 어떻게 되는가 루팅을 뭐가 좋은가? 루팅을 뭐가 안 좋은가? 에 대해 알아보겠습니다. 1. 루팅이란 무엇인가? 관리자 권한을 얻는 것 입니다. 내가 핸드폰을 사용하는데 내가 관리자가 아니야? 라고 생각할 수 있는데, 저희는 핸드폰에 관리자 권한이 없습니다. 관리자 권한이 없다는 것은 마음대로 핸드폰을 건드리지 못 하게 하는 것인데, 왜 이렇게 해놓을 까요? 관리자 권한을 가지고 이것저것 건드리다가 핸드폰이 먹통이 될 수도 있기 때문에 관리자 권한을 가지고 조작할 수 없도록 해 놓습니다. 자, 그러면 루팅을 이제 어떻게 하는지 알아봅시다. 2.루팅 하는 방법이 어떻게 되는가? 1. Unlocking bootloader (부트로더 언락) 부드로더(boot loader -..

1 - 루팅 탐지와 우회

루팅 탐지를 하는 방법 -> 루팅 탐지를 피하는 방법 -> 루팅 탐지를 피하는 것을 방지하기 위한 방법 에 대해서 알아보는 강의입니다. - 루팅 개요 - 루팅환경 만들기, 기본적인 루팅 탐지 - 루팅 탐지 피하기(후킹과 프리다) - 디컴파일, 프로가드 - 프로가드 해독, 덱스가드 - 무결성 검사 등에 대해 알아볼 수 있습니다. - 이런 분은 YES 프로가드, 무결성 검사, 후킹 이런 단어를 처음 듣는다! - 이런 분은 NO 안드로이드 보안에 대해 조금 공부한 적이 있다.