COMPUTER435 겨울방학 JAVA 4일차 1. 구조적 프로그래밍 vs 객체지향 프로그래밍 구조적 프로그래밍: 기능으로 세분화 시켜 작성, 빠르고 쉽게 구현이 가능, 유지보수와 재사용이 힘들다. 객체지향 프로그래밍: 유지보수와 재활용성에 초점이 맞춰져 있다. 설계와 구현이 어렵다 2. 객체지향 -Abstraction(추상화) 복잡한 기능, 상태를 단순화시키고 공통적인 내용을 뽀아서 이름을 붙여 표현하는 기법 -Method Overloading 동일한 이름으로 여러개의 method를 class내부에서 선언할 수 있다.(단, method의 signature가 다름) -Information Hiding(정보은닉) 객체가 가지고 있는 정보(field값)보호 -Inheritance(상속) 새로운 클래스를 기존 클래스를 확장해서 만드는 방법 class My.. 2017. 12. 29. daRk_TempLer-read함수의 null daRk_TempLer문제는 main함수와 check함수로 이루어져 있다.main함수에서는 Input size를 입력받고, 그 인풋사이즈만큼 read함수를 이용해서 input을 buf에 입력받는다. buf의 길이는 0x40을 넘으면 안된다. check함수에서 buf는 $&;|`\\> ") s.send("1000\n") time.sleep(1) s.recv(1024) s.send("id"+"\x00"+"A"*73+"\xc0\x84\x04\x08"+"\xef\xbe\xad\xde"+"\x3f\x89\x04\x08") 2017. 12. 29. catchme-노가다, 스택버퍼오버플로우 이 문제는 0x40080D부터 시작을 한다. 0x400D23->0x400CE50>0x400CA7->0x400C69->0x400C2B->0x400BED->0x400BAF->0x400B71->0x400B33->0x400AF5->0x400AB7->0x400A79->0x400A3B->0x4009FD->0x4009C4->0x400994를 거치면 Stage-1 clear!를 출력할 수 있다. 0x400994부분에 gets(&v1) 부분이 취약점이다. V1은 ebp-0x10에 위치하고 길이를 공격자 마음대로 줄 수 있으므로 리턴어드레스 부분을 덮을 수 있다. 처음에는 스택버퍼오버플로우를 이용하려 했지만, 스택영역에 실행권한이 주어지지 않았으므로 할 수 없었다. 0xx400984부분에 system(“/bin/sh”)를.. 2017. 12. 29. 20121209-메모리 릭, fake ebp 이 문제의 구조 1) 주소를 입력받아서, 그 주소에 담긴 값을 출력2) 0x48만큼 read함수로 입력을 받아서, strcpy진행 후 printf3) 주의사항: 0x48입력받을때 0x38부터 pop ebp위치 0x3c는 return address 1->이미 실행된 함수의 got주소를 준다(실제 함수주소가 담겨있다) => libc주소를 알 수 있다.=>system주소, /bin/sh주소 구할 수 있다 2->0x3c뒤에 main함수의 주소를 줘서 다시 메인으로 돌리며 0x48을 꽉채워서 메모리 입력을 줌=>메인으로 돌아가면서, 메모리 릭 가능여기서 릭 되는 메모리는 stack주소 물론! libc주소도 릭되지만, 1번에서 했으므로 스택주소만 이용!*1번을 이용해서 스택주소를 알아내는 방법은 생각하지 못했다. .. 2017. 12. 29. 겨울방학 JAVA 3일차 jdbc 연결하기package database; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException; public class BookSearch { public static void main(String[] args) {// TODO Auto-generated method stub//데이터베이스 사용은 상당히 간단.(JDBC)//-MYSQL JDBC Driver를 사용하기 위해서 Build Path에 등록Connection con=null;PreparedStatement pstmt=null;Resu.. 2017. 12. 28. 겨울방학 JAVA 1일차 [Java] 클래스 로딩과 메모리 영역 (stack, heap, method area)클래스 로딩1. 클래스를 사용하는 시점에 해당 클래스의 바이트코드가 들어 있는 파일을 찾는다.2. 찾은 파일은 메모리에 로딩된다. 클래스의 바이트 코드는 "Method Area" 영역에 로딩된다. JVM이 관리하는 주요 메모리 영역 1) Stack (스택)메서드가 호출될 때마다 그 메서드의 로컬 변수를 준비하는 메모리 영역메서드 호출이 끝나면 그 메서드를 위해 준비했던 모든 변수가 스택에서 제거된다. 2) Heap (힙)new 명령을 통해 생성된 인스턴스 변수가 놓이는 메모리 영역가비지 컬렉터에 의해 관리된다.가비지 컬렉터가 메모리를 해제하기 전까진 계속 유지된다. 3) Method Area (메서드 영역)클래스의 코드.. 2017. 12. 27. 겨울방학 JAVA 2일차 1일차 복습----------------------------------------------------------------------------------------------------------------------1. 객체지향 프로그래밍-해결해야 하는 문제를 그대로 프로그램으로 모델링-장점: 유지보수성이 좋고, 재활용성이 좋다.-단점: 설계와 구현이 어렵다. 2. 객체모델링해결해야 하는 문제를 구성하고 있는 개체를 판별추상화(Abstraction)객체모델링을 하기 위한 도구: class 3. class의 의미-객체모델링의 수단-ADT(Abstract Data Type)-instance를 생성할 수 있는 근거, 수단 4. JVM(Java Virtual Machine)=>자바프로그램을 실행시켜주는 .. 2017. 12. 27. e PHP는 웹 서버가 결과 파일을 생성할 수 있도록 하는 언어 기본적으로 PHP문서는 php확장자로 끝난다. 웹 서버는 요청된 파일에서 이 확장자를 발견하면 자동으로 PHP 프로세서에 전달한다.물론 웹 서버는 자유롭게 설정할 수 있는데, 웹 개발자가 임의로 확장자가 .htm이나 .html인 파일을 PHP프로세서로 전달해서 해석하게 선택할 수 있다.PHP 프로그램은 웹 브라우저에 나타내기에 적합하며 완전한 파일을 돌려주어야 한다.가장 간단하게 PHP문서는 오직 HTML만을 결과로 만드는 것이다.이것을 증명하기 위해서 index.html과 같은 평범한 HTML문서를 index.php로 저장한다. 원본과 똑같은 결과를 출력한다. PHP파서 호출 PHP 명령어를 시작하려면 새로운 태그를 배워야 한다. 그 첫번째는.. 2017. 7. 20. PHP, MySQL, Javascript 무엇인가? PHP.php 확장자를 추가하면 해당 웹 페이지는 스크립트 언어에 접근할 수 있다.를 만날 때까지의 코드를 해석하라는 의미다.이 코드를 제외한 다른 형태의 코드가 있다면 HTML형태로 전달된다. MySQLSQL: Structured Query Language 데이터베이스 시스템MySQL 구조의 최상단에는 데이터베이스가 있고, 그 내부에는 사용자 데이터를 저장하는 테이블이 여러 개 있다.예를 들면 users라는 테이블이 있을 때 테이블의 열에 surname, firstname, email을 생성한 후 사용자를 추가하고 싶다고 가정하자.이때 사용하는 명령어는 다음과 같다. INSERT INTO users VALUE ('Smith', 'John', 'jsmith@mysite.com'); 데이터를 찾는 과정도 .. 2017. 7. 11. 이전 1 ··· 29 30 31 32 33 34 35 ··· 49 다음