일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BFS
- 정보처리산업기사
- 문제풀이
- 자바
- 코딩봉사
- SW봉사
- 코틀린
- 코딩교육봉사
- 백준
- CJ UNIT
- softeer
- 프로그래머스
- 시나공
- kotlin
- 공부일지
- 백준 알고리즘
- SQL
- programmers
- java
- python
- 1과목
- C++
- 백준알고리즘
- MYSQL
- 회고
- 파이썬
- 스프링
- 데이터베이스
- 소프티어
- 알고리즘
- Today
- Total
목록전체 글 (532)
JIE0025
############## 작성자가 진행한 실습 그대로의 과정을 담았습니다. ############## ######## 공부 목적으로 실습한 것이라서 혼자 삽질한 내용이 담겨 있습니다. ######## https://codeengn.com/challenges/ 실습 파일은 코드엔진 challenges 에서 다운 받을 수 있다. 오늘은 코드엔진의 challenge 중 basic 2번을 풀어보았다. 실행파일이 손상되어서 실행할 수 없는 파일의 패스워드를 찾는 것이 이번 문제이다. 실행할 수 없는 파일임을 확인하기 위해 평소 실습하던 환경인 OllyDbg에서 파일을 오픈해보았다. Unable to open or read file .....02.exe 역시 오픈하거나 읽을 수 없는 파일이라고 뜬다. 다른 도구인..
문자열 패치에는 두가지 방법이 있다. 1) 문자열 버퍼의 직접 수정 2) 빈 메모리 영역에 새로운 문자열 생성 후 파라미터로 전달 (내가 했던 실습은 C++를 사용하여 main함수 안에 메시지박스 함수를 호출한다. 파라미터로는 Hello world! 를 전달한다.) - 문자열 버퍼의 직접 수정 실습 첫번째 문자열 버퍼의 직접 수정 실습을 하다가 잘 되지 않았다. 무엇이 문제인지 파악하고자 하였지만 초보자로서 알기 어려웠다. 자세히 들여다보면 답이 있다. 00C91007 에서 push offest 00c92128을 하는 것이 보인다. 즉 00c92128의 문자열 자체를 바꾸어야 우리가 원하는 목적을 이룰 수 있다는 것이다. 내가 실수한 부분은 offset의 문자열을 바꾼것이 아닌, 00c91007을 수정하..
함수 호출과 메모리 반환 어셈블리 언어에서 어떻게 이루어지는지 알아보자. 다음은 설명을 위한 가정이다. - 함수 B에서 함수 A를 호출하는 상황이다. - 함수 A는 매개변수로 int b, int c, int d를 갖고 있으며, 반환형은 int형이다. 1. CALL 함수 A를 호출 하면 다음과 같은 세가지 단계를 거친다. 1) push : 매개변수 저장 push를 통해 a라는 함수의 인자로 들어갈 값을 저장한다. 함수 a의 매개변수는 총 3개 이므로 push를 세번 반복할 것이다. 함수 호출시 가장 먼저 하므로 스택의 밑부분에 위치한다. 2) call : 호출한 명령어의 주소 저장 EIP(instuction Pointer)로 다음 명령어 주소값에다가 현재 우리가 함수를 호출했던 주소를 저장해줌으로서 ret..
➡️ 기초 어셈블리 명령어➡️레지스터 종류와 역할➡️추가 설명 - Pointer Register 1) ESP (Stack Pointer) : 가장 최근에 스택에 입력된 데이터의 포인터 2) EBP (Base Pointer) : Stack Frame을 사용할 때 현재 실행중인 함수가 사용하는 Stack Frame의 바닥을 가리킴 3) EIP (Instruction Pointer) : 다음에 수행 될 명령어의 포인터 * Stack Frame ? : 현재 수행중인 함수의 스택영역, ESP와 EBP 사이의 공간 - PUSH : stack에 데이터를 저장함 (esp값 자동 조정 : 감소)- POP : stack에서 데이터를 지움 (esp 자동 조정 : 증가)아래 그림을 통해 stack push pop 에 대해 간..
mp_reply 테이블에 column각각에 데이터를 넣어주려고 테스트로 쿼리를 하나 작성하였다. 게시판 게시글 고유번호인 bno에 reply의 고유번호인 rno를 자동할당해주는 쿼리이다. rno의 max값이 null값일 경우엔 0으로 초기화 해주고, 1을 더해주어서 다음 reply고유 값을 설정해준다. 그러나 뜻대로 되지 않고 오류가 발생하였다. SQL Error [1093] [HY000]: (conn=20) Table 'mp_reply' is specified twice, both as a target for 'INSERT' and as a separate source for data 1093 error는 MySQL에서 자기 테이블의 데이터를 바로 사용하지 못하여서 생기는 오류이다. 이는 서브쿼리의 결..
생성: create database test;삭제: drop database test;열람 - 현재 존재하는 database확인 : show databases;선택 - table 생성할 db 선택 : use test;조회 - 지금 사용중인 db : select database(); 데이터가 실질적으로 저장되는 저장소생성: create table testTB( `id` int primary key not null, . . .);열람 - Table list 확인 : show tables;TB 스키마 열람 : desc testTB;제거 : drop table testTB; 테이블 안에 데이터 삽입하기1) insert into testTB val..
보호되어 있는 글입니다.
Maria DB 설치를 해보겠다. 1. 링크 접속https://mariadb.com/Open Source Database (RDBMS) for the Enterprise | MariaDBMariaDB is an open source database that supports continuity and open collaboration. MariaDB Platform drives transactional and analytical workloads at any scale.mariadb.com2. 우측의 다운로드를 클릭한다. 3. OS를 설정한 후 다운로드한다. 4. 설치파일을 실행한다. 1) Next 2) 동의 후 next 3) 설치 위치 지정하기. 저장용량에 남아있는 곳에 지정하면 된다. 기본으로 설정하였..
오늘은 JavaScript 객체지향 실습을 하기로 했다 실습 소스코드 게시글 : https://www.zerocho.com/category/JavaScript/post/573d876380f0b9102dc370b8 객체지향을 실습해볼 수 있으며, 추가 기능을 통해 JavaScript의 객체지향 프로그래밍을 연습 해 볼 수 있다. 먼저 게시 되어 있는 소스를 직접 작성해보면서 작성자분의 빌드 화면이 나오도록 만들었다. 이름을 입력하면 결과가 나온다. 그럼 이제부터 기능추가를 해보겠다. ------------------------------------------------------------------------------------------------------------..
1. JAVA JDK 1.8 설치 방법 1) 구글에 java 1.8을 검색하고 Java SE Development kit 8 -Downloads -Oracle 을 클릭한다. 2) Accept License Agreement 에 체크한 후 windows x64 를 다운받는다. 3) 파일을 실행하고 Next를 누른다. 계속 Next를 누를 경우엔 기본 경로로 설정이 된다. 4) 설치를 완료한다. 2. JAVA 환경변수 설정 1) window키 + R을 눌러서 sysdm.cpl을 실행시킨다. 2) 시스템 속성이 나오면 고급 > 환경변수를 클릭한다. 3) 새로만들기를 통해 JAVA_HOME 을 등록한다. 4) Java JDK가 설치된 경로를 변수 값에 작성한다.기본 경로로 설정한 경우: 내 PC > 로컬디스크(..