일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 드림핵 플래그
- 자바스크립트 강의
- 드림핵 리버싱
- 리버싱 플래그
- 리버싱
- 오블완
- 안드로이드 리버싱
- 티스토리챌린지
- dreamhack reversing
- 드림핵 리버싱 풀이
- rev-basic 풀이
- adb 옵션
- 안드로이드 모바일 앱 모의해킹
- 자바스크립트
- 자바스크립트강의 후기
- 제주ICT
- 인프런 강의 추천
- 리버싱 초보
- 자바스크립트 강의 추천
- 안드로이드 adb start-server
- 위니브
- 리버싱 핵심 원리
- 더오름
- 리버싱 입문
- 강의 체험단 1기
- 리버싱핵심원리
- adb
- 리버싱 스터디
- 안드로이드 adb
- 제주코딩베이스캠프
- Today
- Total
목록전체 글 (101)
해보자고
1. Activity사용자에게 보여지는 디바이스의 인터페이스 즉, 화면으로 반드시 하나 이상의 액티비티를 포함한다. 다른 액티비티로의 전환이 일어나더라도 이전의 액티비티는 다른 공간에 저장되어 멈춤 상태에 있다. (그렇기에 이전으로 되돌아가도 이전 액티비티가 보이는 것.)onResume() : activity가 다시 호출될 때의 호출 onStop() : 화면 전부가 보이지 않을 때 호출 (onPause()는 화면 일부가 보이지 않을 때 호출+) 이외의 Activity 클래스는 6개의 *콜백을 제공 *콜백: 다른 코드의 인수로서 넘겨주는 실행 가능한 코드. 즉 어떠한 이벤트로 인해 호출되는 함수. 2. Service백그라운드에서 실행되는 컴포넌트. 보통 사용자 인터페이스 제공X foreground:..
# 01. 안드로이드 안드로이드는 리눅스 기반의 운영체제로 Google(구글) 사에서 인수하여 다양한 device에서 사용된다. 2023년 12월 기준 글로벌 스마트폰 OS 중 구글의 안드로이드 점유율은 약 70%가량이며, 한국에서의 점유율은 69%에 달한다. 많이 사용되는 만큼 보안의 관점에서 안드로이드를 공부하고자 한다. +) IOS와 안드로이드의 보안보통 안드로이드가 IOS에 비해 보안에 취약할 것으로 생각된다. 이유1) 안드로이드의 오픈소스, IOS의 독점적 소유이유2) 안드로이드를 사용하는 사용자가 많음.-> 공격자의 입장에서 사용자도 많고, 오픈소스를 통해 면밀히 구조를 알 수 있다는 점에서 보안상 안드로이드가 더 취약할 수 있음. # 02. 안드로이드 플랫폼 아키텍처 아래의 그림은..
1. 함수 같은 동작을 하는 중복된 코드가 다양하게 존재할 때 이들을 묶어 하나의 명령으로 실행할 수 있게 해주는 기능. 수정이 용이하고, 코드 재사용성이 좋다. 함수 선언: function 함수이름(인자) { (동작) } 함수 호출: 함수이름(인자) function sub(num1, num2) { // 함수 선언 console.log(num1 - num2); } sub(3,1); // 함수 호출 // 결과값: 2 1.1 return문 함수 실행의 결과 값을 이용해 다른 작업을 하고 싶을 때 사용. return문 형식: return (반환할 값) function add(num1, num2) { return num1 + num2; } console.log('두수의 결과값: ' + add(10, 15) + ..
# 문제문제 링크 | https://dreamhack.io/wargame/challenges/15 rev-basic-1Reversing Basic Challenge #1 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출dreamhack.io이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다.해당 바이너리를 분석하여 correct를 출력하는 입력값을 알아내세요. 1. main 함수 찾기 rev-basic-0 문제와 마찬가지로 f8로 쭉 코드를 진행하면서 i..
# 문제문제 링크 | https://dreamhack.io/wargame/challenges/14 rev-basic-0Reversing Basic Challenge #0 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출dreamhack.io이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요! 1. main 함수 찾기 f8 단축키로 쭉 main 함수를 찾기 위해 코드를 진행하였다. 그 중 해당 call 명령어를 지나면 i..
0. 간단한 조건문 개념 1. if - else if 조건문 여러 조건에 따라 서로 다른 코드를 실행할 때 사용되는 조건. let num1 = 5; if (num1 == 10) { console.log("num1 is 10"); } else if (num1 == 20) { console.log("num1 is 20"); } else { console.log(num1); } // 결과값: 5 2. switch ~ case 문 특정 값이 무엇인지에 따라 각각 다른 작업을 수행할 수 있는 조건문 switch 괄호 안의 변수값과 case문의 변수값이 같으면 해당 case문의 코드가 실행된다. let answer = 3; switch (answer) { case 1: console.log( answer + " i..
연산자 산술 연산자 + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 % 나머지 연산 ++ (전위) 특정 변수에 1 더한 결과 값 (후위) ++ 특정 변수에 1 더하기 바로 직전의 값 -- (전위) 특정 변수에 1 뺀 결과 값 (후위) -- 특정 변수에 1 빼기 바로 직전의 값 +) 증감 연산자 예시 let num = 10; console.log(num++); // 10 console.log(num); // 11 console.log(++num); // 12 console.log('==========='); let num2 = 10; console.log(num2--); // 10 console.log(num2); // 9 console.log(--num2); // 8 대입 연산자 변수에 특정 값을 대입 해주는 연산..
자료형 (변수의 종류)원시타입 : 프로그램 실행 도중 단 하나의 값만을 갖는 자료형- 종류: 숫자, null, BigInt, undefined, 문자, symbol, boolean// 원시 타입 예시let number = 123;number = "123";<p data-ke-size="size1..
변수 선언 let [생성할 변수 이름] = 값; let color = "skyblue"; console.log(color); // 결과값: skyblue 변수 값은 프로그램 실행 도중 변경이 가능하다. let color = "skyblue"; color = "yellow"; console.log(color); // 결과값: yellow 변수명에 관한 규칙 1. '$'와 '_'를 제외한 기호 사용 불가 2. 변수명 맨 앞의 숫자 사용 불가 3. *예약어 사용 불가 *예약어: 컴퓨터 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어. // C언어 int for = 4; -> for문으로 사용되는 예약어이므로 변수명으로 사용X 카멜 표기법 단어를 차례대로 나열하면서 ..
#0. 계기 "자바스크립트가 보안이랑 무슨 상관이 있냐? 뭐길래 이 티스토리에서 다뤄?" 라고 누군가는 질문을 할 수 있을 것 같습니다. 이에 대한 답변을 하자면, "보안? 그거 코드 못 보면 무슨 소용이고,," 졸업 프로젝트를 진행하며 자바스크립트를 접하게 되었는데, Node.js며 프론트 엔드며 해보다 보니 든 생각은 자바스크립트 엄청 많이 써!! 였습니다. 이왕 찍먹해본 김에 제대로 이해라도 해보자, 싶던 와중 좋은 기회에 초보자를 위한 강의 "웹 프론트엔드를 위한 자바스크립트 첫 걸음" 를 알게 되었습니다. #1. 초보자를 위한 강의? 이 강의를 볼까 말까 고민하면 1강 정도는 보고 고민하...시 잖아요? 이 강의는 1강만 봐도 간결한 글의 PPT, 풍부한 시각 자료, 온라인 에디터 사용, 양방향..
1. 왜 아나콘다를 사용할까? 아나콘다 : 일단 아나콘다를 왜 사용할까에 앞서 아나콘다란 무엇일까? 아나콘다(Anaconda)란 데이터 분석 혹은 머신러닝 등 과학 계산을 위한 파이썬 혹은 R프로그래밍 언어의 배포판이다. 파이썬의 특징인 모듈을 쉽게 활용하기 위해 배포판을 사용하는데 특히 아나콘다는 과학 계산에 특화되어 사용될 수 있다는 것이다. 하지만 데이터 분석 기초를 위해서 필요한 환경은 'Jupyter notebook'이다. Jupyter notebook 파이썬, R 등의 프로그래밍 언어 개발 환경으로 웹 기반의 오픈소스 IDE 이기에 많은 사람들이 애용하고 있다. 특히 데이터 시각화에 용이하여 데이터 분석을 위한 기초 개발 환경으로 설정하였다. 2. 아나콘다 설치 1. 아나콘다 검색 후 OS에 ..
1. 전통적인 컴퓨터 응용 분야의 종류들 1) 개인용 컴퓨터(personal computer, PC) - 제3자(third-party) 소프트웨어를 실행하기 위해 주로 사용됨. +) third-party 소프트웨어: 하드웨어 메이커와 관계없는 제3의 프로그래머가 만든 프로그램. 2) 서버(server) - 네트워크를 통한 접근만 가능 - 대형 작업 수행에 이용 - PC와 같은 기술로 제작되지만, 연산 및 입출력 용량의 확장성이 훨씬 큼. 3) 수퍼컴퓨터(supercomputer) - 처리 능력 중 가장 좋은 성능의 컴퓨터 - 컴퓨터 시장 전체 판매 중 비중이 낮음. 4) 임베디드 컴퓨터 - 컴퓨터 시장 전체 판매 중 비중이 가장 높음 - 사물인터넷을 포함하는 경우가 많음 - 특정 응용 분야 목적의 컴퓨터..