안드로이드 로그캣(logcat)을 볼 수 있는 뷰어인 'lognote'를 소개한다. 주요 기능 온/오프라인 로그캣 뷰어 정규표현식 필터 지원 aging test(로그 라인 단위로 파일 분할 저장 가능) 다운로드 깃허브 페이지(https://github.com/cdcsgit/lognote)에서 내용을 확인할 수 있으며, 다운로드는 배포(release)페이지(https://github.com/cdcsgit/lognote/releases)에서 가능하다. 실행 자바 JDK가 설치되어 있어야함 Windows : start javaw -Dfile.encoding=utf8 -Xmx1024m -jar LogNote.jar 또는 압축파일 내 lognote.bat 실행 Linux : java -Dfile.encoding=..
들어가며 AWS Lambda와 같은 서버리스 컴퓨팅 환경에서 비동기(Asynchronous) 처리를 다룰 때에는 함수 실행이 종료 되기 전에 프로그램이 먼저 종료되는 문제가 발생할 수 있다. 람다가 실행을 완료하고 종료될 때, 백그라운드에서 실행 중인 프로세스나 작업을 모두 종료시켜버리기 때문이다. 이러한 특성 때문에 비동기로 실행시킨 작업이 완료되기 전에 람다 함수가 먼저 종료된다. 비동기식으로 작성하여 운영중이던 챗봇 서비스를 클라우드로 마이그레이션할 때 직접 겪었던 문제를 소개하고, 람다 함수를 사용할 때 동기식 호출과 비동기식 호출의 차이와 장단점을 알아본다. 문제 람다 함수에는 수명주기(Lifecycle)가 있는데, 람다 함수는 요청이 발생했을 때 필요에 의해서만 이벤트를 처리하고 실행이 완료되..
들어가기 AWS lambda는 외부 모듈의 실행을 바로 지원하지 않는다. 로컬에서는 pip install 을 통해 바로 설치 및 실행할 수 있지만 서버리스 환경에서는 실행시점마다 같은 실행 환경을 보장하지 않는다. 함수의 실행 시점에만 인스턴스를 띄워서 지정한 메모리 용량과 시간만큼만 실행한다. Amazon Linux v2 환경에서 동작하는 것으로 보이나 사용자가 시스템 환경까지 많은 부분 관여할 수 없다. 코드만 실행하면 되는 목적으로 사용하기에는 가장 적합한 환경이다. Lambda Layer 람다 레이어를 사용하여 외부 모듈을 로드하여 사용할 수 있다. 다음의 과정을 따른다. 1. 로드할 모듈 로컬에 설치 pip의 옵션을 이용하여 지정한 폴더에 설치한다. -t 옵션은 모듈을 설치할 타겟(폴더)를 지정..
1. 개요 다양한 대상의 취약점 진단을 수행할 때 분석가들은 자신만의 진단 루틴을 가진다. 웹을 대상으로 하는 경우 다양한 메뉴, 파라미터 입력 등의 값을 입력해 보면서 프록시에 어떤 데이터들이 전송되는지 살펴본 후 취약점이 발생할 것으로 예상되는 다양한 포인트에 공격 벡터를 변경해가면서 응답을 관찰한다. 모든 진단 대상에 해당하는 것은 아니지만 대상을 처음 탐색할 때, 구문 삽입 공격(injection)에는 자신만의 공격 벡터를 관리하고 어느정도 정형화된 패턴을 가지게 된다. nuclei는 보안 취약점 진단을 자동화하는 데 사용되는 강력한 오픈 소스 도구이다. 이 도구는 다양한 웹 및 서비스에 대해 취약점을 탐지하고 분석할 수 있다. nuclei는 사용자가 정의해둔 패턴 기반 검색 기능을 제공하여 일치..
AWS KMS AWS Key Management Service - KMS는 데이터 암호화를 활성화하기 위해 암호화 키를 생성하고 제어할 수 있는 관리형 암호화 서비스이다. KMS는 AWS 서비스 전반과 애플리케이션 내에서 데이터를 암호화할 수 있는 고가용성 키 스토리지, 관리 및 감사 솔루션을 제공한다. KMS는 하드웨어 보안 모듈(HSM)을 사용하여 FIPS 140-2 암호화 모듈 검증 프로그램을 통해 키를 보호하고 검증한다. KMS는 여러 AWS 서비스와 원활하게 통합되어 해당 서비스의 데이터를 쉽게 암호화할 수 있다. AWS CloudTrail과 통합되어 암호화 키 사용 로그를 제공하여 감사, 규정 및 규정 준수 요구사항을 충족할 수 있도록 지원한다. KMS는 regional 하며, 키는 키가 생성..
들어가며 주로 안드로이드 빌드 시스템과 OEM 상품을 만들기 위해 프레임워크의 개발이 필요한데, 이에 대한 정보가 많이 없어 리서치가 어려웠다. 여기저기 파편화된 정보들이 있었고 어느 정도 정리가 된 상태여서 포스트로 작성한다. 안드로이드 빌드를 위해 코드를 다운받으면, 단일 브랜치의 소스코드 용량만 해도 100GB가 넘는데다가 빌드 과정과 내부 리소스도 복잡하게 얽혀있다. 그만큼 역사도 길고 수많은 패치와 커밋의 결과물이기 때문이다. 빌드 순서 Android 7.0 이전 Android 7.0 이전에는 안드로이드를 빌드할 때 GNU make 도구를 사용했다. 모든 빌드 구성 규칙은 'Makefile'이라는 파일에 작성되었으며, make 도구는 이 파일의 지침에 따라 코드를 컴파일 한다. make는 자동화..
이전 포스트에서 이어지는 글입니다. 2023.09.16 - [Security/Mobile] - [AOSP] Ubuntu에서 안드로이드 13 빌드하기 빌드하기 소스코드를 다운받은 경로로 이동하여 build/envsetup.sh를 실행하는데 빌드하고자 하는 디바이스를 지정해야 한다. https://source.android.google.cn/docs/setup/build/running?hl=ko 에서 모델별로 빌드 구성 코드명을 선택할 수 있다. 구글이 벤더인 기기(픽셀, 넥서스 등)은 공장 출고 시 이미지를 공개하고 있다. 본문에서는 Pixel 4a 단말을 위한 빌드를 구성한다. 빌드 구성은 aosp_sunfish_userdebug가 된다. 코드에서 지원하는 빌드 구성은 다운받은 상태이며, /device/..
들어가며 이 포스트에서는 안드로이드 운영체제의 소스코드를 받아서 게스트 환경(Ubuntu 18.04)에 맞게 빌드하고, 안드로이드 에뮬레이터에 이미지를 플래싱해서 구동시키는 과정을 기록한다. 안드로이드는 다양한 폼 팩터를 가진 다양한 기기를 위해 만들어진 오픈 소스 소프트웨어 스택이다. 오픈 소스이기 때문에 코드가 누구에게나 공개되어 있다. 사용자들이 자유롭게 빌드할 수 있으며, 하드웨어 구성에 맞게 커스터마이징할 수도 있다. 빌드의 전체 과정은 안드로이드 공식 홈페이지 포스팅(https://source.android.com/docs/setup/start)을 따르지만, 필요에 따라 트러블슈팅, 최적화 과정을 추가하였다. 안드로이드 버전 안드로이드 버전의 네이밍은 디저트 이름을 알파벳 순서로 사용하던 전통..
DynamoDB 완전관리형 NoSQL 데이터베이스 서비스 모든 양의 데이터를 저장 및 검색하고 모든 수준의 요청 트래픽을 처리할 수 있는 간단하고 비용 효율적인 서비스 원활한 확장성과 함께 빠르고 예측 가능한 성능 제공 고객은 하드웨어 프로비저닝, 설정 및 구성, 복제, 소프트웨어 패치 또는 클러스터 확장에 대해 걱정할 필요 없이 분산 데이터베이스 운영 및 확장에 따른 관리 부담을 AWS로 분산할 수 있다. DynamoDB 테이블에는 고정된 스키마가 없으며, 테이블은 항목으로 구성되며 각 항목은 서로 다른 수의 속성을 가질 수 있다. DynamoDB는 AWS 리전에 있는 세 개의 시설에 데이터를 동기식으로 복제하여 고가용성과 데이터 내구성을 제공한다. DynamoDB는 빠른 인플레이스 업데이트를 지원한다..
들어가며 대화형(command line)으로 open ai를 사용할 수 있도록 wrapping한 api이다. https://poe.com/ Poe - Fast, Helpful AI Chat We use your phone for verification during each sign in. poe.com ChatGPT-4 결제 시 해당 모델을 사용할 수도 있고 로그인 후 토큰을 발급받아 사용할 수 있다. 설치 https://github.com/ading2210/poe-api/blob/main/README.md GitHub - ading2210/poe-api: A reverse engineered Python API wrapper for Quora's Poe, which provides free access..