네
네 서비스로 넘어가기 전에 방송 수신기들에 관한 보너스 영상을
찍죠
마지막 영상에서 ADB셸을 기반으로 broadcast receiver를 폭파하는 방법을 봤습니다 하지만 이건
고객이 받아들이지 않을 수도 있죠
고객은 공격자가 ADB 셸에 액세스가 필요하다고 생각할 수 있어요
그래서... 네 이건 확실히 아닙니다 이 장치에 물리적 액세스가 발생했어요
그래서 여기 이 비디오에서 우린 이 브로드캐스트 수신기를 작동시킬 수 있는 악성
응용 프로그램을 작성하고 싶어요 알람 시스템을 무장 해제하고 물리적 액세스가 필요 없다는
개념을 온전히 증명하기 위해서요
네트워크 상호 작용을 할 수 있어요
그래서 악성 응용 프로그램은 우리 서버에 네트워크 요청을 보내야 해요 그래서
공격자의 서버는 공격자는 네트워크 연결에 기반해 무장 및 무장 해제 프로세스를 제어합니다
하지만 너무 깊이 들어가기도 했죠
그러니 지금 간단한 응용 프로그램으로 처리하죠
좋아요, 가죠
패킷 Ubuntu VM을 주세요
그리고 지금 우리가 할 부분은 강의와는 별 상관이 없습니다 왜냐하면 지금 우리는
앱 개발을 할 것이고 그런 응용 프로그램을 해킹할 것이지 개발할 것이 아니니까요
네
만약 입력이 너무 크다면 걱정하지 마세요. 알아챌 필요가 없습니다.
네 그럼에도 불구하고 특정 작업을 수행하기 위한 간단한 앱을 만드는 방법을 보여드리겠습니다
네 그래서 예를 들어 이 broadcast 수신기를 위한 간단한 데모 앱을 만드는 거죠 어떻게 이미 그걸
이용하는지요
네 좋아요 그냥 편하게 뒤로 기대세요 네 그럼 이 응용 프로그램 작성법을 보여드릴게요
네
같이 가고 싶으면 그렇게 해요
그리고 앱 개발에 대한 질문이 있으시면 하단의 댓글 창에 적어주시기 바랍니다
좋아요
좋아요, 가죠
네 가장 먼저 해야 할 일은 응용 프로그램을 작성할 ID를 시작하는 거죠
이건 Android 스튜디오입니다
두 달 안에 안드로이드 스튜디오인 벤이 이 스튜디오 점을 대본으로 만들었어요
지금 바로 시작할게요
거의 다 됐어요
ID가 로딩되고 있는데 시간이 좀 걸릴 거예요
잠시 후에 뵙죠
좋아요
ID 로딩이 끝났습니다 이건 우리의 옛날 프로젝트죠
간단히 Android 스튜디오에 포함시켰죠
네
이제 새 걸 만들어 파일로 갑니다
뉴
새 프로젝트예요
그리고 공허한 활동을 선택합니다
네 콘텐츠 없이 작업을 생성하는 거죠 헬로월드 같은 데서요
우리 응용 프로그램엔 과부하된 코드가 없어요
네
그런 다음 이름 브로드캐스트 해킹을 부여합니다 여기서 Java를 선택해야 해요
네 Kotlin을 써도 되지만 전 Java를 선호해요 그러고 나서 결정해야
하죠 최소 SDK를요 제 경우엔 지금 nougat로 돌아가지만 더 뒤로 갈 수도 있어요 예를 들어 Android요
마시멜로 같은 거요
하지만 SDK s를 다운로드해야 합니다
전 누가와 함께 남을게요
네
또한 모든 장치의 90%에서 실행되고 있는 걸 알 수 있죠
호환이 잘 됩니다
좋아요
그리고 간단히 finish를 이용합니다.
이것만 설치하면 돼요
네
닫을 수는 있지만 배경에 둘 겁니다 그런 정보가 필요하니까요
프로젝트가 생성되고 있어요
그라들 빌딩에서 관찰하죠
네 이제 모든 파일을 만들고 있어요 Android 라이브러리를 포함해서요 이 메인 작업 생성과
이들에 대한 레이아웃과 이런 것들을 포함해서요
이 절차가 끝나면 다시 뵙죠
잘 돌아왔어요
프로세스는 끝났습니다 이제 응용 프로그램 코드가 생겼죠
이 응용 프로그램을 이미 실행할 수 있어요 지금 작동 중이니까요
이렇게 해보죠
그래서 에뮬레이터를 사용하고 여기 이걸 사용합니다
이제 시작합니다
다시 한번 경고합니다
이제 에뮬레이터가 있습니다
네 이 응용 프로그램을 만들어 실행하려면 여기 에뮬레이터를 선택해야 합니다 그런 다음
이 재생 버튼을 누르죠
이걸 전경에 두죠
이제 응용 프로그램이 구축될 거예요
그럼 연결되는 거죠
아니면 효과가 있을 수도 있죠
Android Studio가 우리 장치에 연결되어 자동으로 이 응용 프로그램을 설치합니다
그러니 지금은 아무것도 할 필요가 없어요
멋진 기도였어요
마무리하세요
애플리케이션이 있습니다
이게 우리가 만든 응용 프로그램입니다
짐 때문인가 봐요
네, 여기 있어요
방송 해킹
안녕하세요,
좋아요
이제 우리가 물은 질문은 hello world 텍스트가 정의되었는가 입니다 왜냐하면 activity를 가지고 있다면
볼 수 없기 때문입니다
이 활동에 관한 시험 레이아웃도 진행 중입니다
이 XML 레이아웃은 여기서 보이는 걸 설명하고 있어요
리소스 안에서 찾을 수 있어요
레이아웃과 TV는 주로 IT 활동을 해요
네
이번 주에 이걸 받았어요, 에드 XML 구조를 써도 돼요
전 둘 다 섞어서 하는 걸 좋아해요 그래서 여기서 텍스트를 바꾸는 게 훨씬 쉽죠
예를 들어서요 그래픽 출력에서 이걸 하는 거죠 좀 느리거든요 방송 리시버 타격
이제 디자인으로 돌아가보면 여기 이 텍스트가 바뀌었어요
조금 더 확대해 볼게요
네
이제 여기에 버튼 하나를 추가할 거예요
이 버튼을 누를 때마다 앱은 의도를 전달합니다
예를 들어 이것들이 무엇인지요 텍스트 입력 필드 같은 것으로 더 복잡하게 만들 수도 있습니다
하지만 시작은 단순하게 하죠
왼쪽에 있는 것이 오브젝트입니다
이 버튼을 클릭하면 돼요
좋아요
여기 버튼이 있어요
버튼이 이 화살표를 가지고 있어요. 왜냐하면 이 버튼은 레이아웃에 제한되지 않았기 때문이죠. 즉, 응용 프로그램이
지금 어디에 이 패턴을 놓을지 모른다는 거죠.
이 해상도를 쓰면 이렇게 보일 수도 있어요
그런데 화면 크기가 다르면 어디에 버튼을 넣어야 할지 잘 모르겠어요
따라서 이걸 2D 레이아웃에 말해야 합니다
특정 위치에 고정해야 해요
아주 쉽게 할 수 있어요
거품 속으로 들어가는 거죠
왼쪽 마우스 버튼을 누르고 이 밑에 있는 화살표를 클릭해요
약간 떠 있는데 여기에 신경 쓰지 마세요
버튼이 이 텍스트 뷰 아래에 있다는 것을 의미합니다
알았죠?
지금까진 좋아요
하지만 앱은 여전히 모릅니다
가운데에 있나요?
왼쪽인가요, 오른쪽인가요?
이렇게 하려면 왼쪽 모서리를 여기에 놓기만 하면 됩니다 둥근 버튼을요 왼쪽으로 드래그 앤 드롭을
합니다
왼쪽의 이 텍스트 아래에 있을 거예요
오른쪽도 똑같이 하면 가운데가 완벽하게 정렬될 거예요
이제 해킹한 방송 수신기에 너무 가까워졌어요
그래서 여기에 여백을 좀 추가하죠 예를 들어 40이요
좋아요
이게 우리 버튼이에요
코드 부분으로 돌아가죠
안드로이드에서 할 수 있도록 텍스트 크기를 좀 더 늘리고 싶어요 그리고 예를
들어 28dpi를 늘리죠
그래서 dpi는 전에는 딥이라고 불렀는데 d 밀도라는 뜻이에요 d 밀도 독립 픽셀이죠 아마도요
그러니 이 얘기는 인용하지 마세요
픽셀에 관한 또 다른 포맷일 뿐이죠
네 픽셀이 있다면 그 픽셀들은 스크린 해상도에 따라 변합니다 , 화면 해상도가
변하죠
더 작거나 클 수는 있지만 밀도가 다른 픽셀은 그대로예요
만약 텍스트 크기가 28이라면 모든 화면에서 같은 글꼴을 볼 수 있습니다.
그래서 레이아웃은 변하지 않아요
이제 왜 앱 개발이 아니라 앱 해킹을 하는지 아시겠죠
이런 설명은 이해하시겠죠?
텍스트를 조금 더 크게 만들었습니다 디자인으로 돌아가 보겠습니다
네
좀 크긴 하네요
어쩌면요
24번으로 돌아가죠
좋아요
여긴 괜찮아 보이네요
이 버튼에 대한 텍스트가 있습니다 해킹을 해보겠습니다
아니면 이렇게도 할 수 있죠 의미 있는 이름을 붙여요 this요
좋아요
디자인
네
괜찮아 보이네요
좀 더 매처럼 보이게 하기 위해 검은 배경을 사용해도 돼요
안드로이드 배경은 검정
이 텍스트 뷰에 새로운 색도 적용할 수 있어요
말 안 했는데요
죄송해요
여기 이건 텍스트 뷰 기술입니다
여기 텍스트 뷰에 이런 모든 특성을 정의할 수 있어요
글자도 배경도 다 검은색이에요
여기 이건 버튼을 위한 기술이에요
말씀 안 드려서 죄송해요
네 좋아요 안드로이드 텍스트 색이에요 이제 미리 정의된 색이 있어요 예를 들어 보라색요
이걸 클릭하면 이게 나오죠 ?
네
보라색과 잘 어울리네요
네
하지만 녹색 같은 게 있어야 하잖아요?
어디 보죠, 녹색
초록은 정의할 수 없어요
색상과 값이 정의되고 있어요
값으로 가면 이 색들이 있죠 어디 보죠, 뭐가 있을까요?
청록색에서 100까지예요
매의 소행 같아요
네 이걸 보죠 여기 이름이 있고 이건 16진수 표시죠
OC라는 이름을 삽입해야 해요
이건 어때요?
최루탄은 괜찮아요
네 이제 텍스트도 생겼고 이 버튼도 생겼어요 이제 이걸 해보죠 이 버튼을 코드에
연결합니다
이 버튼을 누르면 뭘 눌러야 할지 모르니까요
네 처음엔 좀 복잡하지만 나중엔 그렇게 될 거예요 네
이 개념을 이해하면 아주 쉬워요
지금은 좀 부담스러워도 걱정하지 마세요
네 그래서 Android 앱의 핵심 개념 2개와 관련해 앱 개발을 좀 하고 있습니다
몇 분 후에요
걱정하지 마세요 당신은 알 필요 없어요
네 앱 해킹에 관해서는 앱 해킹으로 넘어가겠습니다 여기서 일어난 적
없는 일이죠
좋아요
응용 프로그램 코드로 돌아가죠
이제 약간의 레이아웃을 정의했어요
이제 여기서 새 함수를 생성하고 있어요
이 기능은 간단히 경보 시스템이라고 명명됩니다
네 이 버튼을 누르면 이 함수를 실행해야 해요 다음을 해야 하죠
함수는 보이는 매개 변수를 가져야 합니다
이 뷰를 포함시켜야 합니다 모두 입력하도록요
이 뷰는 여기로 불러오죠
그리고 나서 버튼을 이 함수에 연결하면 이 함수는 어디서 트리거가 되는지 알아요
이걸 매개 변수로 적용해야 해요 이 뷰요
이 뷰가 버튼이 될 거예요
이 버튼을 클릭하면 이 버튼이 이 함수를 실행합니다
버튼에 이 함수를 실행하라고 명령하는 수밖에 없어요
네 버튼을 누르면 다음과 같이 할 수 있어요 액티비티 메인 레이아웃으로
돌아갑니다 그런 다음 코드 경로로 가 Android Colon을 on click에 적용합니다 ,
이제 메서드가 있습니다
이 뷰를 제공했습니다
그러므로 이 버튼으로 트리거될 수 있습니다
네 이제 이 버튼을 누르면 버튼이 텍스트를 실행해서 잠금 출력을 하거나
코드를 삽입할 수 있어요
먼저 잠금 출력을 하겠습니다
시스템에 대해 알아보겠습니다 나가요 println, 버튼 프레시드
네 좋은 점은 빌드를 다시 설치할 필요가 없다는 거죠 그냥 이걸 누르면 돼요 이 재생 버튼을요
?
일단 이걸 막아야 해요
다시 해 보죠
다시 돌려도 될 것 같아요
중단할 필요는 없겠지만 그래도요
내가 승낙하면 같이 놀 수 있겠네요
네, 죄송해요
그냥 이 버튼을 다시 실행하면 돼요 이걸 실행하면 되죠
네, 새로 고침되죠
좋아요
네 방송 해킹을 하고 있는데요 정말 해커처럼 보이네요 ADB 로그캣을
여는지 보죠
우리 글이 인쇄되는 걸 봐야 해요
어디 보죠
3 대 1이에요
버튼 눌렀어요
여기 있어요
이걸 좀 더 크게 만들게요
그럼 더 잘 보이겠죠
네
완벽해요
작동하는 걸 볼 수 있죠
좋아요
이제 이 방송 이벤트를 살펴보죠
미치 방송 이벤트를 삭제할 수 있어요
어디 보죠
다른 응용 프로그램으로 가야 합니다
이거요
주요 활동과 함께요
이건 우리 방송 행사예요 우린 촉발하고 싶어요 우리가 할 일은 새로운 의도를 만들어
행동을 취하고 그 의도를 퍼뜨리는 거죠
모든 것을 함수에서 할 수 있습니다
이쪽에는 이런 의도를 담을 거예요
의도를 새롭게 했죠
네
그런 다음 우리 의도를 포함하고 행동 의도를 말하죠
이제 우리가 보내고 싶은 행동을 제공하고 있어요
물론 지금까지 제가 놓친 것도 있죠
추가 문자열, 추가 키 값도 적용해야 합니다
어떻게 하면 될까요?
의도적이었겠죠
그리고∙∙∙ 어디 보죠
카이트스트링 엑스트라인데 아주 잘 설정하고 싶어요
네, 안 굳었어요
그래요?
네
더 넣어요
완벽해요
여기 입력했어요
맞는 걸 골라야 해요
추가 문자열 이름과 문자 배열을 넣었어요 문자는 같은 문자열이죠
그러니 이 정도는 괜찮을 거예요
네
상태를 설정하고 이걸 켜는 거죠
좋아요
그런 다음 이 방송을 보내면 돼요
그래서 방송했죠
네
명령 방송도 있는 걸 볼 수 있죠
하지만 이 경우에는 의도를 전하고 싶을 뿐입니다
좋아요
이게 다예요
네
이제 이 브로드캐스트를 트리거하는 응용 프로그램이 있습니다
해제 상태를 설정해요
그리고 앱이 실행되고 수신되면 악성 앱에 근거해 해제됩니다
이건 작동하는지 보죠
저장하고 어디 보죠
다른 애플리케이션부터 시작할게요
네 여기 있는 거요 아니, 안 되죠 sdk 25번 버전이든 26번 버전이든 상관없어요
둘 다 작동하니까요
좋아요
이제 해제됐어요
그러니까 이걸로 해 보죠
네
이제 이 응용 프로그램을 시작합니다
스마트폰을 관찰해보죠
이제 액티비티는 전경에 놓이게 됩니다 여기 보이는 것처럼요
네, 지금 이걸 보내고 있다면요
어디 보죠, 통나무고양이
큰 덩어리가 있어요
좋아요
3에서 1로 시스템을 해제하죠
경보장치든 뭐든 준비됐어요
경보장치 작동
네
네 그럼 고객 소개는 좀 더 준비가 필요하겠네요 지금 저처럼요
네
다시 전환할 때를 대비해 경보 장치를 준비했어요
이런
지그재그 길이 아니었어요
됐어요
여기 있어요
경보 시스템도 꺼졌고요
좋아요
지금 해도 돼요
입력값에 근거해서요
입력 장을 이용해 무장 해제 명령을 내릴 수 있죠
네, 지금은 입력값이 많네요
그래서 레이아웃에서 실행해본 버튼을 만들었죠
해커들을 더 많이 만들었어요
우린 의도를 창조하고 방송에 내보냈어요
여기에 추가적인 문자열을 추가해 클릭 이벤트에 기반해 전송합니다
많은 정보를 입력했죠
네 하지만 제 말은 이 응용 프로그램 만드는 법을 보여드리는 게 아니라 여러분 스스로
할 수 있도록요
네 제 말은 Android 앱 개발 경험이 없다면 한 번만 본다고 확실히 불가능합니다
네 저는 이 뒤에 숨겨진 개념을 이해하는 데 몇 주가 걸렸어요 하지만 이미 말씀드렸듯이 이건 요점이
아닙니다
네 요점은 ADB 액세스 없이 이벤트를 어떻게 트리거하느냐는 겁니다 스마트폰에서 실행되는
악성 애플리케이션을 위해서요
이 부분 말고 이 부분요
우리는 브로드캐스트 해킹 앱으로 특정 사건을 촉발할 수 있습니다
네 예를 들어 작업 시작 서비스 시작 브로드캐스트 수신기 시작과 상호 작용 이런
것들이요
네 이걸 좀 더 할 수도 있어요 더 열심히요 네트워크 요청을 하는 거죠 응용 프로그램은
웹 서버에서 10초마다 특정 상태로 페치하는 거예요 그럼 이런 의도가 트리거되죠
예를 들어 이런 경보 시스템이요 사용자 상호 작용이 필요 없어요 하지만 이걸 포함해
현재로선 앱 개발이 정말 과중하죠
네 만약 이 접근법이 궁금하고 이와 관련해 동영상을 찍고 싶다면
이 보너스 영상을 확장할 겁니다
그런데 제 생각엔 이미 이 앱 개발 부분에 너무 깊이 들어간 것 같네요
네 이 비디오엔 앱 개발에 관한 작은 보너스 섹션이 있습니다 그건 우리 강의의
주제는 아니지만 보기 좋은 것 같네요 ,
하지만 당장 이해할 필요는 없어요
우리가 다 봤잖아요
이해할 필요 없어요
이제 핵심 콘셉트로 넘어가죠
좋아요
네
다음 섹션에서 만나길 기대할게요