목록분류 전체보기 (420)
외로운 Nova의 작업실
- 뷰 클래스 액티비티는 화면을 표시하는데, 뷰 클래스의 하위 클래스들을 실행시켜서 화면을 구성합니다. 뷰 클래스의 하위 클래스들의 종류는 아래와 같습니다. TextView : 화면에 글자를 출력합니다. ImageView : 화면에 사진을 출력합니다. EditText : 화면에 글을 쓸 수 있는 상자를 출력합니다. Button : 화면에 버튼을 출력합니다. ListBiew : 화면에 리스트를 출력합니다. View : 구분선을 출력합니다. - View Group 뷰 클래스의 하위 클래스로 실제 화면을 출력하는 클래스들을 묶어서 제어할 클래스들의 모임입니다. 일조의 그릇 역할, html의 와 비슷합니다. 아래는 종류입니다. LinearLayout : 레이아웃 안에 있는 뷰 클래스들을 하나의 줄에 배치합니다...
- 람다 함수 //람다함수 선언 val sum = {no1: Int, no2: Int -> no1 + no2} //람다함수 호출문 sum(10, 20) //람다함수 선언과 호출 val sum = {no1: Int, no2: Int -> no1 + no2}(10, 20) //매개변수 없는 람다함수 {println("function call")} //매개변수가 1개인 람다함수에 unit, i 키워드 사용 val some: (Int) -> Unit = {println(it)} //람다 함수의 반환 val som = {no1: Int, no2: Int) -> println("function") no1 * no2 //얘가 반환됨 } //함수 타입 선언 및 람다함수 선언 fun some: (Int, Int) -> ..
- 변수와 상수 val data1 = 10 //상수 var date2 = 10 //변수 fun main(){ date1 = 20 //오류 date2 = 20 //성공 } var date1 : Int = 10 최상위 변수나 클래스의 맴버 변수는 선언과 동시에 초깃값을 할당해야합니다. 하지만 함수 내부에 선언한 변수는 선언과 동시에 초깃값을 할당하지 않아도 됩니다. 변수를 선언할때 값을 이후에 할당하려면 컴파일러에게 알려줘야합니다. 이에 lateinit 이나 lazy 키워드를 사용합니다. lateinit var date : String lateinit 키워드를 사용할"때는 다음 2가지 규칙을 따라야합니다. lateinit은 var 키워드로 선언한 변수에만 사용할 수 있습니다. Int, Long, Short,..
- 보안 제품 평가방법 및 기준 보증 평가는 시스템에서 보안과 관계되는 부분을 검사합니다. 예를 들어 TCB, 접근 통제 메커니즘, 참조 모니터, 커널, 보호 메커니즘 등의 항목을 검사합니다. 또한 이러한 구성요소들 사이의 상화작용 역시 평가됩니다. TCSEC는 orange book이라 불리는 rainbow series 라는 미국방부 문서중 하나입니다. TCSEC는 1960년대부터 시작된 컴퓨터 보안 연구를 통하여 1972년에 그 지침이 발표되었고 1983년에 세계 최초로 미국 정보보안 조례로 공표되었고 1995년에 공식화 되었습니다. TCB, 참조모니터, 보안 커널등의 개념을 도입하였고 효과적인 정보보호시스템 평가기준과 이러한 기준에 맞게 개발된 제품들을 평가하는데 초점을 두고 있습니다. A : 검증된..
- BCP(business continuty planning, 비즈니스 연속성 계획) BCP(business continuty planning)는 재난 발생시 비즈니스 연속성을 유지하려는 방법을 정의하는 문서로써 재해, 재난에도 정상적인 운영이 가능하도록 데이터 백업 및 단순 복구 뿐만아니라 고객 서비스 지속성 보장, 핵심 업무 기능을 지속하는 환경 조성을 목적으로 합니다. BCP(business continuty planning) 개발을 위해서는 기업이 운영하고 있는 시스템의 파악과 함께 비즈니스 영향 평가(BIA)가 선행되어야합니다. BCP는 사업활동이나 프로세스가 중단되는 것에대응하기위해 만들어졌습니다. - DRP(disaster recovery planning, 재난 복구 계획) DRP(disas..
- shell code 작성 취약점 : 컴퓨터는 op code로 작동하기때문에 여러 명령들을 op code로 변환하여 컴퓨터에게 명령을 내리면 컴퓨터는 그 명령대로 수행합니다. 목표 : 공격 목표에 맞는 shell_code를 작성합니다. 방법 : 1. 공격 목표를 수행하는 asm파일을 만들고 obj 파일로 만듭니다. 2. obj 파일을 이진파일로 만들어 읽어 shell_code를 작성합니다. - stack buffer overflow 취약점 : strcpy(), scanf() 함수와 같이 버퍼의 크기를 고려하지않고 사용자의 입력값을 모두 사용합니다. 목표 : 버퍼의 크기를 넘어 stack 의 ret 주소에 원하는 주소를 넣어 실행 흐름을 변경합니다. 방법 : 1. 실제 버퍼의 크기를 gdb를 통해 알아냅..
- x86 함수 호출 규약 - x86-64 함수 호출 규약 - SYSV system ABI와 같다.
- 위험 관리 위험 관리란 조직의 자산에대한 위험을 감수할 수 있는 수준으로 유지하기위하여 자산의 대한 위험을 분석하고 이러한 위험으로부터 자산을 보호하기위한 비용 대비 효과적인 보호대책을 마련하는 일련의 과정을 말합니다. 위험 관리 과정은 첫째 전략과 계획을 수립하고, 둘째 위험을 구성하는 요소들을 분석하고, 셋째 이러한 분석에 기초하여 위험을 평가하여, 넷째 필요한 정보보호 대책을 선정하고, 다섯째 이들을 구현할 계획을 수립하는 5가지 세부 과정으로 이루어집니다. 위험관리는 보안관리 활동에 있어 가장 핵심적인 부분입니다. 위험이란 원하지 않는 사건이 발생하여 손실 또는 부정적인 영향을 미칠 가능성을 의미합니다. 발생 가능성 * 손실의 정도로 표현할 수 있습니다. 또한 자산 * 위험 * 취약점으로도 표..
- 안드로이드 컴포넌트 안드로이드의 내장 클래스 즉, 컴포넌트는 4가지로 다음과 같습니다. 액티비티(Activity) : 화면을 구성하는 컴포넌트로 앱의 화면을 안드로이드폰에 출력하려면 액티비티를 만들어야하며, 앱이 실행되면 액티비티에서 출력한 내용이 안드로이드폰에 나옵니다. 서비스(service) : 백그라운드 작업을 하는 컴포넌트로 화면 출력 기능이 없으므로 서비스가 실행되더라도 화면에는 출력되지않습니다. 서비스 컴포넌트는 화면과 상관없이 백그라운드에서 장시간 실행해야할 업무를 담당합니다. 콘텐츠 프로바이더(ContentProvider) : 앱의 데이터를 공유하는 컴포넌트로 앱간에 데이터를 공유할 수 있습니다. 하나의 앱이 자신의 데이터를 다른 앱에 공유하려면 콘텐츠 프로바이더를 만들어야하며 다른앱에..
이번시간에는 shell_basic 문제를 풀어보도록 하겠습니다. - asm 짜고 OP code 만들기 먼저 파일 경로(/home/shell_basic/flag_name_is_loooooong)를 아스키코드로 변경해줍니다. 아래 링크로 들어가서 변경하면됩니다. https://www.rapidtables.org/ko/convert/number/ascii-to-hex.html ASCII에서 16 진수로 | 텍스트를 16 진 코드로 변환 ASCII 텍스트를 16 진수 코드로 변환 ASCII / 유니 코드 텍스트 문자열을 입력 하고 변환 버튼을 누릅니다. 텍스트를 16 진수로 변환하는 방법 텍스트를 16 진 ASCII 코드로 변환 : 캐릭터 얻기 ASCII 테이 www.rapidtables.org 2f 68 6f..