분류 전체보기 121

JNI 이용해 출력하기

2023.09.10 - [공부/안드로이드] - JNI 사용하기 JNI 사용하기 JNI(Java Native Interface)란? (내가 이해한 바에 따르면) 자바를 사용하면 운영체제 상관없는 개발이 가능하다. 하지만, 운영체제의 모든 기능을 JVM이 담지 못하기 때문에 몇몇 기능은 해결이 되지 않 peraspera.tistory.com 윗 글에서 조금 수정해 진행했다. 나는 calculator.cpp 에서 return값으로 'HELLO WORLD'를 주었음에도 왜 TEST가 출력되는 지 궁금했다. → MainActivity.java의 역할을 생각해보면 된다.

JNI 사용하기

JNI(Java Native Interface)란? (내가 이해한 바에 따르면) 자바를 사용하면 운영체제 상관없는 개발이 가능하다. 하지만, 운영체제의 모든 기능을 JVM이 담지 못하기 때문에 몇몇 기능은 해결이 되지 않는다. (ex. 하드웨어 제어가 필요한 경우, 프로세스 성능 향상 등) 이러한 경우에는 운영체제가 구현된 언어 (C, C++ 등)을 사용할 필요가 있고, 이 때 JNI가 사용된다. https://re-build.tistory.com/7 [Android] 안드로이드 스튜디오에서 JNI 사용하기 이번 포스팅은 제가 이번에 프로젝트를 진행하면서 JNI를 사용해야 할 상황이 생겨 구현하면서, 알게 된 것들을 기록하는 목적으로 작성합니다. JNI?JNI란 Java Native Interface의 ..

Attacks on WebView in the Android System

논문을 읽고, 요약 번역한 글입니다. 잘못 번역 및 이해한 부분이 있을 수 있습니다. (아직 미완인 글입니다) author = {Luo, Tongbo and Hao, Hao and Du, Wenliang and Wang, Yifei and Yin, Heng}, year = {2011}, isbn = {9781450306720} ABSTRACT 웹뷰는 Android와 iOS 플랫폼에서 스마트폰 등에 브라우저를 삽입할 수 있게 하는 필수적 구성요소이다. 1. INTRODUCTION iOS와 Android에는 많은 앱들이 존재하고, 대다수는 웹을 기반으로 한다. 앱은 표준 HTTP 프로토콜을 이용해 웹 서버에서 컨텐츠를 가져오고, 보여주며 사용자들이 웹 서버와 상호작용 하도록 한다. 브라우저가 동작하는 것처럼..

책과 논문 2023.09.09

안드로이드 기본

안드로이드 스튜디오를 설치했다. 나는 Kotlin은 쓸 줄 몰라서 자바를 선택했다. 기본으로 Hello World!가 뜨는 것 같다. 빨간색 : 앱의 많은 정보를 담고 있으며, Activity를 만들 때마다 여기에 등록을 해줘야 함. https://developer.android.com/guide/topics/manifest/manifest-intro?hl=ko 앱 매니페스트 개요 | Android 개발자 | Android Developers 앱 매니페스트 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 모든 앱 프로젝트는 프로젝트 소스 세트의 루트에 AndroidManifest.xml 파일(정확히 이 이름) developer.android.com 노란색 : 자바 파일..

BoB 12기 합격 후기

비오비 첫 교육 시작한지 약 2달이 지났다. 이제서야 블로그를 들어올 여유가 생기고, 생각에 잠겨있을 시간이 생겼다. 보안 컨설팅 트랙에 지원했고, 1트만에 운 좋게 합격했다. 2023.05.27 - [잡글/목표] - 4학년 후반기 목표 4학년 후반기 목표 보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요. peraspera.tistory.com 기존 4학년 후반기 목표가 케쉴주랑 화이트햇 스쿨이였는데, 막상 비오비에 붙으니까 내가 스스로를 너무 과소평가 하고 있었던 것인가.. 하는 생각도 든다. 여기서 작게 밝혀보지만, 나에게 지원서를 작성하라고 강하게 말해준 선배들, 자소서를 봐준 선배들, 옆에서 계속 응원해준 선배들에게 정말 고마워하고 있다. 1. BoB 서류 (~ 2023.05.31)..

잡글 2023.09.05

인턴 면접 후기

5월의 마지막 날에 서류 합격 문자를 받고, 2일 후인 오늘(6/2 금) 면접을 보러 오라고 했다. 그래서 지금 면접 보고 판교역 카페에 앉아서 후기 쓰고 있다. 서류 합격 문자부터 면접까지는 단 2일, 솔직히 굉장히 부족한 시간이었다. 그래서 면접 준비를 제대로 할 시간도 없었다. 서류 합격 문자를 받은 전날에 BOB 지원서 작성하느라 밤 샜고.. 자고 일어나니까 목요일이었다. 눈 떴는데 면접 하루 전날이라는 사실이 굉장히 스트레스였다. 진짜 어느 정도였냐면 눈물이 나오더라;; 내가 이런 것에 무덤덤할 줄 알았는데 울어서 놀랐다. 스스로도 울면서 신기했다. 정장이 없어서 판교 정장 대여 업체를 알아보았다. (내 5만원,,) 구두 처음 신어봤는데 굽 없는걸로 달라니까 사이즈가 좀 큰거밖에 없댄다 그래도 ..

잡글 2023.06.02

OSI 7계층

계층별로 프로토콜을 개발해 네트워크 구성 요소들을 모듈화할 수 있다. 1. 물리 계층 주로 전기 신호 전달. 전기 신호가 들어오면 재생성해서 전기 신호가 들어온 포트를 제외하고 모든 포트에 전송한다. *통신 단위: 비트 2. 데이터링크 계층 들어온 전기 신호를 데이터 형태로 처리하고, 데이터에 대한 에러 탐지가 가능하다. 스위치는 목적지의 MAC 주소를 파악하고 목적지가 연결된 포트로만 전기 신호를 보낸다. *통신 단위: 프레임 3. 네트워크 계층 라우터는 IP 주소를 사용해 최적의 경로를 찾고 해당 경로로 패킷을 전송한다. *통신 단위: 패킷 4. 전송 계층 패킷이 유실되거나 순서가 바뀌는 것을 바로 잡는 등 데이터가 정상적으로 잘 보내지도록 확인한다. 시퀀스 번호와 ACK 번호를 사용한다. 시퀀스 번..

공부 2023.06.01

PE 구조

계산기를 분석하며 PE 구조를 공부해보자. (계산기 파일은 Windows >System32 폴더에 있다) (분석 툴은 Peview를 사용했다) 1. PE 구조 *PE란: PE 파일은 크게 PE 헤더와 PE 바디로 나뉜다. 초록색 네모가 PE 헤더, 하늘색 네모가 PE 바디이다. 2. PE 헤더 PE 헤더에는 파일을 실행하기 위한 전반적인 정보가 구조체 형식으로 저장되어 있다. 1) IMAGE_DOS_HEADER PE 헤더 제일 앞부분에는 기존 DOS EXE Header를 확장시킨 IMAGE_DOS_HEADER 구조체가 존재한다. 가장 중요한 필드는 e_magic과 e_lfanew이다. e_magic 필드는 MZ(4D 5A)로 값이 고정되어 있으며 PE 파일이 맞는지 확인할 때 쓰인다. e_lfanew는 ..

공부/리버싱 2023.05.28

vi 편집기

vi 편집기는 명령모드, 입력모드, 콜론모드로 나뉜다. vi 명령어를 이용해 vi 에디터를 실행하고.. 필요한 내용을 입력한다. (현재 입력 모드) 만약 내용을 잘못해서 수정이 필요하다면 명령모드에서 삭제 또는 복사 등을 할 수 있다. 입력 모드에서 명령 모드로 가기 위해서는 ESC 키를 누르면 된다. x 를 입력해 현재 커서가 위치한 문자를 삭제, dd 를 입력해 현재 커서가 위치한 곳의 한 줄을 삭제할 수 있다. 반대로, 명령모드에서 i 를 입력해 입력모드로 전환할 수 있다. 수정을 했고 더 입력할 내용이 없다면.. 명령모드에서 : 를 입력해 콜론 모드로 전환한 후 필요한 명령어를 입력해 저장한다. 자주 쓰는 것은 :q! (vi 편집기 강제 종료), :wq! (강제 저장 후 종료) 정도인 것 같다. ..

공부 2023.05.28

도커3

지난 포스팅에서는 Dockerfile을 이용해 이미지를 만들어 보았다. 이번에는 commit 명령어를 이용해 이미지를 만들 계획이다. *build와 commit의 차이점: (내가 이해한 바로는) build는 이미지에서 컨테이너를 생성하는 방법이다. 반면, 컨테이너에서 수정한 내용은 저장되지 않기 때문에 현재 상태의 컨테이너를 저장하고 싶을 때 commit 명령어를 사용해 이미지를 생성한다. 1. 사전 작업 새로 만든 컨테이너가 깨끗하다. 여러 패키지를 다운받고 commit을 이용해 기본 패키지가 깔려있는 우분투 이미지를 만들어 보겠다. 예를 들어, vim 편집기, net-tools 를 깔아보자 exit 명령어를 이용해 컨테이너를 나왔다. 2. 이미지 생성 commit을 이용해 이미지 생성을 해보자. do..

공부/도커 2023.05.28