개발 335

rooting을 하면 할 수 있는 것

루팅은 핸드폰의 관리자권한을 획득하는 것인데, 이 것을 당연히 핸드폰 통신사와 앱 제작사에서 권장하지 않습니다. 보안상 제약을 걸어 놓은 것을 마음대로 변경할 수 있기 때문입니다. 그렇다면 하지 말라는 짓을 왜 할까요? 루팅을 해서 얻는 이점이 무엇일까요? 여러가지 안드로이드 폰의 제약을 풀 수 있습니다. CPU오버클럭(성능튜닝), MAC-Address 조작(고유 주소 조작), 디지털 권한 관리(저작권 보호 기술이 적용된 것을 파괴) 같은 것들을 할 수 있는데 보안에 민감한 금융 앱 등에서 루팅이 되면 앱을 사용할 수 없도록 만듭니다. (만약 사용하게 놔뒀다가는, 루트 권한을 얻어서 사용자의 정보를 조작하거나 탈취하는 일이 일어날 수 있기 때문입니다.)

startActivity에서 기존 activity제거

intent를 어떤 activitiy로 넘겨줄 때 기존 activity들을 모두 지우고 싶을 때가 있습니다. 저 같은 경우는 회원가입을 완료하고 MainActivity로 넘겨줄 때, 기존에 있던 activity들을 지우고 싶을 때가 있었습니다. 저 같은 경우는 JoinActivity에서 MainActivity로 넘어갈 때 val intent = Intent(this, MainActivity::class.java) intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK startActivity(intent) 이렇게 처리를 해주면 JoinActivity에서 MainActivity로 넘어갈 때 나머지 A,B,JoinActi..

Kotlin 전역변수

코틀린으로 전역변수 선언하는 법을 보겠습니다. Firebase로그인을 사용할려면 아래의 2줄을 Activity마다 선언해줘야 하는게 매우 귀찮습니다. private lateinit var auth: FirebaseAuth auth = FirebaseAuth.getInstance() 그래서 전역변수 class 하나 만들고 class Auth{ companion object { private val TAG = Auth::class.java.simpleName private lateinit var auth: FirebaseAuth fun getUid() : String{ auth = FirebaseAuth.getInstance() return auth.currentUser?.uid.toString() } } ..

AndroidX 란

이번에 AndroidX 때문에 삽질 한시간 한 기념으로 AndroidX가 뭔지 한번 알아봤습니다. 안드로이드 서포트 라이브러리인데, 앞으로는 계속 andoirdx로 통합된다 어쩌고 하는 내용이고 사용법은 저기 밑에 Migrate to AndroidX 하고 build.properties 에서 android.useAndroidX=true android.enableJetifier=true 추가 끝. -- 자세한 내용은 아래 링크에 https://medium.com/daangn/support-library-androidx-%EA%B7%B8%EB%A6%AC%EA%B3%A0-jetifier-%ED%95%AD%ED%95%B4%EA%B8%B0-2fb558f56be Support Library, AndroidX 그리고 ..

루팅(rooting)이란?

Rooting이란 - 루팅이란, 안드로이드 기기의 관리자 권한을 획득하여, 마음대로 시스템을 조작할 수 있는 것을 말합니다. HW 성능 조작, 통신사 기본 앱 삭제, 시스템 권한을 이용하여 다양한 조작 등이 가능해지므로, 금융과 핀테크 관련 앱들은 rooting된 디바이스를 위협으로 간주합니다. 악의적인 목적을 가진 공격자들은 rooting 여부를 숨기기 위해서 다양한 시도를 하며, 아래와 같은 방식으로 루팅 탐지와, 루팅 탐지 우회를 합니다. 이번 프로젝트에서, 루팅 탐지와 루팅 탐지를 우회하는 방법 및 대책에 관하여 기술하겠습니다. Rooting 탐지란 - 루팅 탐지에는 다양한 방법들이 사용되며, 대표적으로 아래와 같은 방법들을 사용할 수 있습니다. - su 명령어 탐지 - 프로세스 리스트 탐지 - ..

SQL Injection 하는 법

SQL Injection이란, 간단한 웹 해킹 방법중에 하나입니다. 대부분의 어플리케이션에서 로그인을 할 때, 아이디와 비밀번호를 입력하면, Database로 데이터를 넘겨줍니다. 이 때. 알맞는 아이디와 비밀번호를 입력하지 않고, 공격문을 삽입해서 DB로 넘겨주는 방식으로 공격을 하는 방법입니다. 예를 들면 id와 password에 ' or 1 ='1 같은 것을 입력합니다. 그러면 데이터베이스에서 얘의 값을 true라고 판단하여 옳은 접근으로 간주합니다. 조금 더 다양한 테크닉은 아래 링크에 https://tkdrms568.tistory.com/145 [bee-box]SQL-Injection - Login Form/Hero Login Form / Hero 페이지(sqli_3.php)에 들어가면 다음과..

Cloud Firestore

Cloud Firestore사용법 메모입니다. https://firebase.google.com/docs/firestore/quickstart?hl=ko Cloud Firestore 시작하기 | Firebase 빠른 시작에서는 Cloud Firestore를 설정하고 데이터를 추가한 후 Firebase Console에서 방금 추가한 데이터를 확인하는 방법을 볼 수 있습니다. Cloud Firestore 데이터베이스 만들기 Firebase 프로젝트를 아직 만들지 않았다면 Firebase Console에서 프로젝트 추가를 클릭한 후 화면의 안내에 따라 Firebase 프로젝트를 만들거나 기존 GCP 프로젝트에 Firebase 서비스를 추가합니다. Console의 탐색 firebase.google.com htt..

Android Design Pattern (MVC, MVP, MVVM)

이번에는 안드로이드 디자인 패턴에 대해 알아보겠습니다. 안드로이드 앱을 만들어보셨다고 가정하고 글을 쓰겠습니다. (이런 검색어를 검색하시는 분들은 처음 개발하시는분들은 드물 것 같아서..ㅎㅎ) 무슨 안드로이드 개발자 채용공고 같은데 보면 자격요견에 안드로이드 디자인 패턴에 대한 이해 (MV**) 같은 것들이 적혀있는 곳이 많습니다. 자 이게 뭔지 한번 보겠습니다. 1. MVC - M(Model) + V(View) + C(Controller) 예전부터 사용되던 디자인 패턴입니다. View 같은 경우에는 xml을 파일이고, Controller는 activity파일, Model 같은 경우에는 data를 정의해놓은 모델입니다. 안드로이드 앱을 개발해보셨으면 다 아실 텐데, activity에서 view와 Mode..