일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 강의 체험단 1기
- 잔디 심기
- 오블완
- 인프런 파이썬 강의
- 인프런 강의 추천
- 웃긴 파이썬
- 간단한 깃허브 블로그
- 자바스크립트 강의
- 자바스크립트
- 리버싱
- 인프런 깃허브 강의
- 기드라
- 깃허브 포트폴리오
- adb 옵션
- 깃허브 블로그
- 위니브
- 안드로이드 adb
- 리버싱 플래그
- 드림핵 플래그
- 제주코딩베이스캠프
- 파이썬
- adb
- dreamhack reversing
- 안드로이드 리버싱
- 더오름
- 드림핵 리버싱
- 제주ICT
- 안드로이드 모바일 앱 모의해킹
- 티스토리챌린지
- 깃허브 블로그 만들기
- Today
- Total
목록전체 글 (117)
해보자고

# 문제문제 링크 | https://dreamhack.io/wargame/challenges/17 rev-basic-3Reversing Basic Challenge #3 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출dreamhack.io이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다.해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요!1. main 함수 찾기 (main 함수를 찾는 방법 생략. 이전 글들 참고) 2. 실행 흐름 파악하기 rev-basic 시리즈..

# 문제문제 링크 | https://dreamhack.io/wargame/challenges/16 rev-basic-2Reversing Basic Challenge #2 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출dreamhack.io이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다.해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요! 1. main 함수 찾기 가장 먼저 main 함수를 찾아주는데, BP만 잘 걸 수 있다면 이제 main 함수는 금방 찾을 수 있..
보호되어 있는 글입니다.

# Crackme #1 일단 Crackme는 사이트를 찾을 수 없어서 시중에서 다운을 받았는데, 멀웨어니, 악성코드가 있다느니 해서 너무 무서웠지만 그래도 다운을 받아보았다. 실행창이 뜨길래 실행창의 문자열을 검색해보았는데 따로 디버거에 나오지 않아서, 어떻게 해야 하나 막막했다. 그러나 단축키 F9를 사용하여, 프로그램 시작점으로 디버거를 확인할 수 있었다. 그 옆의 주석 부분을 확인하니, 실행창에서 떴던 문자열을 확인할 수 있었다. 대충 어떤 문자열이 나와야하는지를 확인한 후 다시 한 번 삽질을 시작해보면... YEAH! OK~ 라고 해결된 창이 뜨는 걸로 보이는 것으로 연결되는 (x32dbg의 경우 조건분기 명령이 실행되면 저렇게 점선으로 표시된다고 한다.) 명령어인 je를..
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 대입 연산자 변수에 특정 값을 대입 해주는 연산..