전체 글(44)
-
key store 생성 방식 / 안드로이드 debug와 release의 차이점
*key store란 앱에 서명을 하기 위한 (암호화된)파일입니다. 누군가가 내 앱을 함부로 변조해서 사용할 수 없도록 하기 위해 플레이스토어에서 거치는 서명절차에 쓰입니다. 1. 사용하는 dll파일의 차이 2. 실행파일의 크기(디버그 모드가 3-4배 가량 무거움) 3. 릴리즈 모드의 경우 나 이외의 사용자가 인증 및 서명을 할 수 없음 -> 개발단계 - 디버그 모드, 실제 배포 - 릴리즈 모드 사용하면 됨
2023.03.26 -
[Android] Bottom Navigation Bar 네비게이션 바 추가하기
이미 레이아웃이 어느정도 만들어져 있는 상태에서 하단 네비게이션을 추가해보도록 하겠다. 1. app > res > menu 위치에 네비게이션 요소로 넣을 아이템들을 미리 정의해준다. 2. 이미 만들어진 레이아웃(메인 화면)에 BottomNavigationView 위젯을 추가 3. 탭에서 각 요소들이 선택되었을 때 각각 띄울 화면을 설정 이 화면들은 activity가 아닌 fragment로 만들어야한다. 나는 기존 자바 클래스의 일부를 수정하여 Fragment 파일로 만들었다. public class [이름] extends AppCompatActivity -> public class [이름] extends Fragment
2023.03.04 -
Apache 가상 호스트
하나의 서버에 여러가지 도메인을 등록하여 사용하는 방법 1) Named based virtual host 가장 보편적인 방법으로 같은 IP 주소가 여러 개의 호스트 명을 가지는 방식 **호스트 네임과 도메인 네임의 차이** host name은 각 네트워크 디바이스(컴퓨터)에 할당되는 이름이고, domain name은 네트워크에 부여되는 이름이다. 외부에서 네트워크에 접속하기 위해서는 domain name이 필요하다. 예시) www.mail.naver.com 의 mail은 호스트 네임에 해당하고, naver.com은 도메인에 해당함 2) IP based virtual host 각 웹 사이트마다 다른 IP를 할당받거나 다른 port 번호를 부여받는 방식 관리가 쉽고 안정적임
2023.02.16 -
macOS 환경에서 MySQL, PHP 사용하기(Mac 내장 Apache, Homebrew Apache)
오늘은 MacOS가 12버전으로 업데이트 되면서 맥에서 사라진 php를 다운로드 받고, MySQL DB와의 연동을 해볼 것이다. 1) MacOS 순정 Apache 이용(+php설치) PHP 설치 우선 나는 구형맥북(인텔 맥북 프로)를 사용하고 있고 다음 명령어를 입력했을 때 brew install php Error: Cannot install on Intel processor in ARM default prefix (/opt/homebrew)! 80, 가상 호스트 설정을 위해 필요함 LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so 주석 해제 LoadModule php_module /usr/local/opt/php@8.2/lib/httpd/modul..
2023.02.16 -
[Dreamhack] Return to Library
이 프로그램은 카나리(Canary) 및 NX 비트(Non-Executable bit) 보호 기법이 적용되어 있었으나, PIE(Position-Independent Executable)가 적용되지 않아 Return-to-Library (RTL) 공격이 가능하다. 풀이요약1. 카나리 값을 누출하여 보호 기법을 무력화2. 고정된 함수 주소(system@plt)와 /bin/sh 문자열 주소를 활용하는 ROP 체인(Return-Oriented Programming Chain)을 구성3. 임의 코드 실행(RCE) 권한을 획득4. 최종적으로 쉘(Shell)을 획득 1. 문제 파일 취약점 정리취약점 : 스택 기반 버퍼 오버플로우CVE/CWE : CWE-120: Buffer Copy without Checking Siz..
2023.01.18 -
[Android Studio] is deprecated 경고 메세지
compileSdk Compile할 때, 사용하는 버전. 해당 버전에 맞춰 검색하며 컴파일이 이뤄진다. minSdk 앱이 돌아갈 수 있는 최소한의 버전. 보통, 프로젝트를 생성할 때 선택한다. targetSdk 테스트가 완료된, 최적화된 버전 compileSdk와 targetSdk가 32로 설정되어 있기 때문에, API 30까지 지원되는 AsyncTask 클래스는 Deprecated 경고 메시지가 떴던 것이다
2022.11.23