분류 전체보기 55

UIKit

Cocoa Touch Framework : iOS 개발환경 구축을 위한 최상위 프레임워크 가장 많이 사용되는 애플리케이션 : UIKit, Foundation UIKit Framework : 사용자의 인터페이스 관리, 이벤트 처리(제스처, 그림그리기, 텍스트 등) UIView, UIViewController 등 UI가 붙는 것들은 UIKit 주로 MVC 디자인 패턴 (Model, View, Controller) model: 앱의 데이터, 비즈니스 로직 (무엇을) view: 사용자에게 데이터를 보여주는 ui (보여줄것인가) controlelr: 모델과 뷰의 중간다리 역할 (어떻게) - 현실에서는 View와 Contoller가 너무 가까움. 프로젝트가 커질수록 Controlller가 비대해짐 이를 해결하기 위..

iOS/Swift이론 2022.05.23

[정보보안]웹해킹

포트(port) : '항구', 비행기를 타기 위해 찾는 게이트 처럼 인터넷의 바다에 있는 포트 - 시스템 침투를 위한 일반적인 해킹 과정 * 준비 - cmd창에서 java -verson을 입력해 JDK8 버전이 맞는지 확인 - webgoat 실행을 위해 실습을 진행할 폴더에서 cmd 창 열고 java -jar webgoat-container-7.1-exec.jar 입력 - 밑처럼 나오면 webgoat가 제대로 실행된 것임 - webgoat 사이트에 접속해 로그인 - 밑처럼 되면 로그인 성공. 로그인 실패 시 자바 버전 안맞는거 - cmd창 종료해서 webgoat 실행 종료하고 다시 cmd창 열어 포트 변경 [ java -jar webgoat-container-7.1-exec.jar -httpPort 원하..

정보보안 2022.05.04

Swift) 열거형 enum

열거형 : enum [Enumberations] - 관련있는 데이터들이 멤버로 구성되어 있는 자료형(type) 객체 언제 사용할까? - 원치 않는 값이 잘못 입력되는 것을 방지 - 입력 받을 값이 한정되어 있을 때 - 특정 값 중 하나만 선택하게 할 때 예시) 색깔선택(빨,노,파,초 ...), 성별선택(남,여) 등 선언 방법 ① 한줄로 나열 enum Compass { case North, South, East, West } ② 각각의 case문에 멤버들 나열 enum Compass { case North case South case East case West } enum Compass { case North case South case East case West } var north : Compass =..

iOS/Swift이론 2022.04.19

[Git] 깃 기본 명령어

git remote -v : 원격 저장소에 연결됐나 확인 git push -u : 원격 저장소에 맨 처음 올릴 때 git push : 원격 저장소에 최신 커밋 상태 업로드 git pull : 원격 저장소의 커밋을 지역 저장소로 가져옴(원격 저장소로 로컬저장소 동기화하고 merge) git status : 상태 확인 - no commits yet : 커핏한 파일 X - nothing to commit : 현재 커밋할 파일 X - on branch master : 현재 master 브랜치 - changes to be committed : 커밋 가능 - changes not staged for commit : 변경된 파일 아직 안 올라감 git add : 파일 업로드 추가(새로 생성되거나 변경된 것) (=스..

Git 2022.04.17

[Swift/iOS] 간단한 To Do List 앱

테이블 뷰로 만드는 To Do List (Check List) - 네비게이션 컨트롤러 - 알러트 창으로 할 일을 추가 - 셀 스와이프로 제거 - 수정 화면에서 셀 제거 및 순서 변경 - 앱을 종료 후 재실행 시 데이터 유지 완성 화면 ▼ ▼ 참고할 만한 이전 글들 네비게이션 컨트롤러 [Swift/iOS프로그래밍] navigation controller 4가지 방법, 세그 vs 코드,push vs present 스위프트로 화면전환을 구현하는 방식 중에 네비게이션 컨트롤러가 있다. 세그로 구현하는 것과 코드로 구현하는 것이 있는데 이 중에서도 푸쉬와 프레젠트라는 방식이 있다. 오늘은 이런 4가 yejprogramming.tistory.com 뷰 간 데이터 전달 [Swift/iOS프로그래밍] 뷰와 뷰 사이 데..

iOS/app 2022.04.17

리버싱 - Crack(코드우회)과 키값찾기

어셈블리어명령어 https://yejprogramming.tistory.com/44 레지스터, 스택과 어셈블리어 명령어 레지스터 레지스터 : cpu 내부 존재하는 다목적 저장 공간, CPU가 고속으로 데이터를 처리하는 것을 가능하게 한다. 메모리스택 : 중앙 처리 장치와 붙어 있는 RAM의 일부분 CPU(마이크로 프로세서) yejprogramming.tistory.com 오늘 실습한 리버싱은 우회리버싱과 키 값 찾는 리버싱이었다. 우회리버싱은 코드 수정을 해야하지만 키값 찾기는 코드수정이 필요없다. ollygdb에서 crackme 파일 오픈 [F9]으로 실행을 하여 이렇게 Error 창이 나오는 것을 확인. [Ctrl + F2] 재시작 F2로 40100C에 BP(Break Point)를 걸어줌. (시작메..

정보보안 2022.04.13

Swift) 프로토콜과 델리게이트 Protocol, Delegate

Delegate : 대리자, 조력자라는 사전적 의미를 가지고 있다. 과연 무슨 소리일까? 객체 지향 프로그래밍에서 하나의 객체가 모든 일을 처리하지는 않는다. delegate은 바로 처리해야 할 일들 중 일부를 다른 객체에 넘겨주는 역할을 한다. delegate 사용법 class가 delegate을 채택한다. 위임자를 설정한다. 그 delegate 안에 메서드를 구현한다. Delegate는 해당 클래스에서 위임자로 등록한 객체에서 메서드에 따른 이벤트가 발생하면 호출된다. TableView로 예시를 들어보자. ViewController 클래스가 UITableDelegate을 채택 프로퍼티로 선언된 tableView를 delegate 선언 delegate 안에 메서드 구현(e.g. TableView의 Ce..

iOS/Swift이론 2022.04.12

레지스터, 스택과 어셈블리어 명령어

레지스터 레지스터 : cpu 내부 존재하는 다목적 저장 공간, CPU가 고속으로 데이터를 처리하는 것을 가능하게 한다. 메모리스택 : 중앙 처리 장치와 붙어 있는 RAM의 일부분 CPU(마이크로 프로세서)의 구성 : 레지스터, 연산장치, 제어장치 - 레지스터의 종류 - General Purposer Registers 레지스터 용도 EAX 산술연산에 사용, 함수 리턴값 저장 하는 변수의 용도로 사용 ECX 반복 카운트 EDX 자료보관용 EBX 자료임시보관시 사용 ESP 스택 포인터(주소를 가리킴) EBP 스택 프레임의 기준점 ESI 자료임시보관시 사용 EDI 자료임시보관시 사용 스택 LIFO(Last In First Out) 자료구조에서 기억 장치에 데이터를 일시적으로 겹쳐 쌓아 두었다가 필요할 때 꺼내 ..

정보보안 2022.04.06

Swift) 클래스와 메서드

class Man{ var age : Int var weight : Double } 초기화 방법 ① class Man{ var age : Int = 1 var weight : Double = 3.5 } ② class Man{ var age : Int? var weight : Double? } ③ class Man{ var age : Int var weight : Double init(){ age = 1 weight = 3.5 } } 메서드 정의하기 class Man{ var age : Int = 20 var height : Double = 170.9 func Me(){ print("나이=\(age), 키=\(height)") } } 메서드 사용하기 class Man{ var age : Int = 20 v..

iOS/Swift이론 2022.03.30