본문 바로가기
반응형

분류 전체보기167

RTL이란? (Return to Library) RTL이란? Return To Library의 약자로서 Return 주소에 시스템 함수의 주소를 덮어 씌우고 인자로 /bin/sh의 주소를 넣는 방법입니다. 공유 라이브러리(libc)는 스택상에 있는 것이 아니기 때문에 가능합니다. 주로 NX bit(프로세서 명령어나 코드 또는 데이터 저장을 위한 메모리 영역을 따로 분리하는 CPU의 기술) 우회할 때 사용합니다. 즉 쉘코드 없이 exploit 가능합니다!! 시스템함수의 인자는 +8 위치에 넣어줘야 합니다. system() 또는 execl 함수는 ebp+8 위치의 값을 인자로 인식하기 때문입니다. 즉 공격을 할때 공유라이브러리의 시스템함수를 호출하고 (4) 더미값 (4) 그리고 인자값을 넣어주는 것입니다. RTL공격 코드는 버퍼값 + 시스템함수 주소(4).. 2021. 8. 10.
Swift2 Optional Value Optional Value는 값들과 nil 값을 포함하는 것 입니다. 스위프트에서는 값을 초기화하지 않으면 컴파일 에러가 납니다. 그래서 nil값을 넣는데 실제로 nil값도 못넣게 되어있습니다. 그래서 optional value를 넣습니다. var optionalString: String? = "Hello" 이런식으로 선언하면 hello 대신 nil 값을 넣을 수 있다. 초기화를 하지않으면 무슨 값이 들어갈지 모르기 때문에 이 부분은 코드를 안정하게 사용하기 위해 추가된 기능이다. class Optional { var optionalString:String? = "Hello" func hello(){ print(optionalString) } } var option = Optional() option.h.. 2021. 8. 10.
Swift2 Struct (구조체) Swift의 구조체를 봅시다. 구조체는 struct라고 합니다. var name = ["Park", "Choi", "Kim", "Lee"] var age = [3,4,5,6] var height = [40,50,60,70] print(name[0], age[0], height[0]) 위와 같은 코드를 볼때, 만약에 많은 수의 사람들에 대한 작업을 한다고 생각해보면 값을 불러올때 일일히 name, age, 그리고 height을 지정해줘야하는 번거러움이 있습니다. 여기서 구조체를 사용하면 편리합니다. 우선 구조체를 선언하는 방법은 struct 이름 { } 입니다. struct Student { var name: String var age: Int var Height: Int } 이렇게 간단하게 구조체를 만들.. 2021. 8. 10.
Swift2 Class Swift의 Class를 확인해봅시다. class 클래스명 { } 클래스는 위와 같은 형태로 만듭니다. 클래스를 만들면 프로퍼티(멤버 변수들)와 메소드(함수)를 만들게 되어있습니다. 여기서 제공하는 프로퍼티는 2가지가 있습니다. 우리가 일반적으로 쓰는 멤버변수들을 stored property 라고합니다. 말그대로 저장하기 위한 변수라고 보시면 됩니다. 함수처럼 {}를 넣어서 실제 프로퍼티의 값을 간접적으로 가져와서 어떠한 연산이나 stored property의 값을 넘겨줄때 쓰는 기능이 있는데 이것을 computed property라고 합니다. 그리고 함수를 클래스에서 만들면 메소드라고 합니다. 그렇다면 클래스 오브젝트를 만들어 보겠습니다. //class object class Vehicle { var .. 2021. 8. 10.
Swift2 함수 func Swift에서의 함수를 보자 func sayHello(){ print("Hello") } sayHello() 기존의 함수와 비슷한 형태로 쓰인다 func 함수명() { 내용 } 으로 선언되며 함수명() 으로 호출하여 사용한다. 간단한 String형 인자를 받는 함수를 만들어보자. func sayHello2(name : String){ print("Hello \(name)") } sayHello2("Cho") name : String 내용이 추가되었다. String 형태의 인자를 받아온다는 것이다. 실제로 sayHello2("Cho")로 Cho라는 String 인자를 넣어 함수를 호출하면 "Hello Cho"가 출력된다. 함수 인자의 default 값도 추가 할 수 있다. func sayHello3(nam.. 2021. 8. 10.
Swift2 IF, SWITCH 문 SWIFT의 에서 IF문과 SWITCH 문을 보자. 이 둘은 기존의 다른 언어에서 사용하는 문법이 거의 비슷하다고 보면된다. 먼저 IF 문을 살펴보자 IF문 let age = 7; if age < 3 { print("Baby") } else { print("adult"); } 기존의 IF문과 비슷하다. 하지만 여기서는 조건문에 "()"를 입력하지 않는다. 사실 입력해도 상관없지만 스위프트 특성을 위해서 추천하지는 않는다. 이제 case 문을 살펴보자. CASE문 switch age{ case 1.. 2021. 8. 10.
반응형