전체 글218 [C 자료구조] 리스트 리스트(List) 개념 간단 - 사용 편한 - 소스 구현 쉬움 - 제일 먼저 다루는 부분 자료를 순서대로 저장 - 구현의 편의성 다른 자료구조 구현의 수단으로도 사용 - 복잡한 자료구조를 구현하기 위해 내부적으로 리스트 사용 배열 리스트 배열을 이용해 구현된 리스트 //자료를 저장할 때 가장 많이 사용하는 방법은 자료를 순서대로 저장하는 것 근데 이게 리스트라는 자료구조니까 많이 사용 주의할 점) 리스트는 '한 줄'로 저장 (선형구조) 한 줄로 줄을 세우기 때문에 앞 항목과 뒤 항목이 모두 1개 1번째 - 2번째 - 3번째 순으로 연결 배열과 배열 리스트 배열 : 같은 자료형의 데이터가 메모리 상에 연속적으로 저장되는 자료형 배열 리스트 : 자료가 일직선으로 서로 연결 배열이 메모리 상에 연속적으로 저장.. 2021. 3. 29. [웹프로그래밍] JSP JSP는 동적 페이지를 만들기 위한 제작 기술 중 하나이다. JSP에 대해 알아보기에 앞서 등장하게된 배경을 먼저 살펴보자. CGI(Commom Gateway Interface) 초기 웹 프로그래밍에서 동적 페이지를 위한 기술로 사용되었다. 프로세스 단위로 실행되기 때문에 사용자 증가 시 성능이 급격하게 저하된다는 단점이 있었다. (매우 느려짐) 이런 CGI의 단점을 보완하고자 확장 CGI가 나왔다. 확장 CGI 확장 CGI는 기존 CGI의 프로세스 생성 방식을 변화시켜 시스템의 부하를 줄였다. 여기에 ASP, PHP, Servlet/JSP 등이 포함된다. Servlet/JSP 는 Java 언어를 기반으로 한다. Java 언어를 알아야 하므로 진입장벽이 높다는 단점이 있지만, (Servlet이 Java로.. 2021. 3. 29. [웹프로그래밍] 인터넷과 웹 인터넷 인터넷은 네트워트의 일종으로 TCP/IP에서 운영체제와 상관없이 모든 기종의 컴퓨터들을 연결한 통신망이다. 인터넷 서비스 안에 웹(www)과 이메일, 그리고 FTP, Telnet, DNS 등이 있다. C/S환경 웹 서비스 환경을 C/S 환경이라고 하는데, Clients/Server 환경이다. 클라이언트는 서버에게 요청을 하고, 서버는 그에 맞게 응답해준다. 이것이 바로 웹 페이지 동작 원리인데, 클라이언트 측 그리고 서버 측에서 웹페이지 동작 원리를 구분해서 살펴보자 - 클라이언트 측 (간단) 클라이언트를 웹 브라우저로 생각하고, 서버를 웹 서버라고 생각하자. 그러면 사용자가 웹 브라우저, 즉 클라이언트 측에서 검색하고 싶은 것을 요청을 하면 웹 서버, 즉 서버가 그에 대한 정보를 가지고 응답해준.. 2021. 3. 29. [CodeEngn] Basic RCE L07 문제 파일을 받고 실행시켜보자 serial check 프로그램 같다 디버거에 넣어본 뒤에 [Search for] - [All referenced text strings] 를 이용해서 성공메시지 부분을 찾았다. 그곳으로 이동해보자 이동해보면 주변에 함수들이 되게 많아서 함수들을 살펴보았다. 좀만 더 위로 올리면 이 함수를 확인해볼 수 있었는데, 문제에 '컴퓨터 C드라이브의 이름이 CodeEngn일 경우 시리얼이 생성될 때'라고 했으므로 C드라이브의 이름을 받는 함수가 있을 것 같았다. 아마 GetVolumeInformationA 함수가 그 역할을 할 것 같다. 종단점 설정해주고 재시작을 해보자 f7로 들어가보면 잘 모르겠다. 나와서 f8로 한 줄씩 디버깅 해보자 serial 창에 임의의 숫자인 1111을 .. 2021. 2. 25. [CodeEngn] Basic RCE L15 Name이 CodeEngn일 때 Serial을 구하라고 한다. 그러면 Name이 달라질 때마다 Serial이 달라지는 것일까 ?? 실행해보면 이렇게 Name과 Serial 입력창이 뜬다. 이제 디버거에 넣어보자 실패나 성공 창 부분을 찾기 위해서 [Search for] - [All referenced text strings]를 해보자 그랬더니 바로 원하는 부분이 나왔다. Try Again!을 더블클릭해서 들어가보자 조금 위로 올리면 Serial을 비교하는 CMP 부분을 확인할 수 있다. 종단점 설정해주고 다시 시작해주었다. 창이 뜨면 위와 같이 입력해주었는데 CMP 명령어 줄을 보면 EAX와 4588F8 주소 부분을 비교하는 것을 볼 수 있었다. 그래서 레지스터 창에 EAX 부분을 계산기에 넣어봤더니, .. 2021. 2. 24. [CodeEngn] Basic RCE L09 StolenByte를 구하라고 한다. 그게 뭐지?? muhan56.tistory.com/80 StolenByte StolenByte는 패커가 위치를 이동시킨 코드로써 보호된 프로그램의 코드의 윗부분(보통은 엔트리 포인트의 몇 개의 명령어) 이다. 이 부분의 명령어는 이동된 곳 이나 할당 받은 메모리 공간에서 muhan56.tistory.com 블로그 글을 봤는데 잘 모르겠다. +) 패킹된 바이너리의 언팩을 방해하기 위해 일부 명령어를 조작하는 것 (안티 디버깅의 일종) 일단 디버거에 얹어보자 PUSHAD가 있고 한 줄씩 디버깅이 되지 않는 것으로 보아 패킹되어있는 것 같다. Exeinfo PE 프로그램을 사용해서 어떤 방식으로 패킹되어있는지 살펴보자 UPX로 패킹 되어 있는 것을 확인할 수 있었다. UP.. 2021. 2. 23. 이전 1 ··· 17 18 19 20 21 22 23 ··· 37 다음 728x90