목록분류 전체보기 (124)
minhui study
1. TCP(Transmission Control Protocol)란 OSI 7Layer 중 4계층인 전송계층에 속하는 중요 프로토콜로 네트워크 망에 연결된 컴퓨터의 프로그램 간 데이터를 순서대로 에러없이 교환할 수 있게 하는 역할이다. 1) 연결 지향 프로토콜(Connection Oriented Protocol) → 물리적으로 전용회선이 연결되어 있는 것처럼 가상의 연결통로를 설정하여 통신하는 방식으로 가상의 연결통로를 가상회선이라 한다. ※ 가상회선방식 : 물리적으로 전용회선이 연결되어 있는 것처럼 논리적으로 동작하는 방식 → 논리적인 연결통로를 통해 데이터를 주고받음으로써 데이터의 전송순서를 보장해준다. 순서제어 라고도 한다. → 스트림 기반의 전송방식을 사용한다. 데이터를 임의의 크기로 나누어 연..
ARP(Address Resolution Protocol) 일반적으로 통신은 사용자가 어떤 값을 생성하여 전달하거나 어떤 정보를 요청하기 위해 동작을 시킬 때 발생한다. 즉, 통신을 위해서 필요한 일련의 값들을 사용자가 결정하여 입력을 시켜준다는 뜻이다. 4계층(전송 계층)에서는 필요한 서비스 구분번호는 어플리케이션을 동작시키면서 입력이 되고, 3계층(네트워크 계층)에서 사용하는 IP주소까지는 사용자가 통신하기 위해서 디바이스에 입력하기 때문에 어렵지 않게 캡슐화가 가능하다. 하지만 2계층(데이터 링크 계층)에서 필요한 목적지 주소는 따로 입력이 되지 않아 줏를 디바이스 스스로 결정해주어야 한다. 이 때 사용하는 프로토콜이 ARP이다. 즉 ARP는 네트워크 프로토콜 중 하나로 논리적인 IP주소를 기반으로..
WOW64란? 64bit 플랫폼에서도 기존에 32bit용으로 개발된 어플리케이션이 실행될 수 있도록 하는 기능 WoW는 'Windows on Windows'를 의미하는 것으로 실제 64bit Windows 상에서 또 다른 32bit Window가 실행된다는 의미로 일종의 가상 머신(Virtual Machine) 환경을 제공한다고 이해하면 된다. WOW64 file system redirection 32bit 환경에서 만든 프로그램을 64bit 환경에서 실행시킬 때 32bit 프로그램이 system32폴더로 파일을 복사하게 되면 Windows는 자동으로 SysWOW64로 redirect하여 파일을 복사하게 된다. 그럼 system32폴더와 SysWOW64폴더는 무엇일까? 만약 64비트 윈도우즈에서 32비트..
#include "stdio.h" int L2(int &a, int &b, int &c){ if(c
먼저 main()문부터 살펴보자 → 값을 스택에 집어넣는 명령어로 main함수에서 RBP가 베이스 포인터 역할을 하게 될테니 RBP가 이전에 가지고 있던 값을 스택에 백업해두기 위한 용도로 사용된다. (나중에 main함수가 종료(return)되기 전에 이 값을 회복시켜 준다.) → 이 명령 이후부터 RBP는 현재 RSP와 같은 값을 가지게 된다. 그리고 main()함수가 끝날 때까지는 RBP값은 고정된다. 이 말은 즉 스택에 저장된 함수 파라미터와 로컬 변수들은 RBP를 통해 접근한다는 것이다. 위의 두 명령어를 통해 main()함수 스택 프레임이 생성되었다고 할 수 있다. → SUB는 빼기 명령어로 RSP에서 16을 빼라는 뜻이다. 16을 갑자기 빼는 이유가 뭘까? 16은 main()함수의 로컬 변수의..
보호되어 있는 글입니다.
문제 파일은 위에서 다운 받으면 됩니다~! 다음 파일을 실행시켜 보면 다음과 같은 알림창이 뜬다. 확인 눌러보면 다음과 같이 에러가 뜬다. 열어보았더니 다음과 같다. MessageBoxA(1,2,3,4) ① : hOwner ( 메시지 박스의 오너 윈도우. 메시지 상자를 소유한 윈도우를 말하며 메시지 박스가 떠있는동안 다른 행위를 할수없다 ) ② : text ( MessageBox에 출력할 텍스트 " Make me think your HD is a CD-Rom" ) ③ : title ( MessageBox 윗부분의 텍스트 "abex' 1st crackme" ) ④ : style ( MB_OK = OK버튼 1개, MB_OKCANCEL = OK와 CANCEL 총 2개 버튼 등 몇몇 종류의 값이 있다.) 401..
함수 호출 규약 "함수를 호출할 때 파라미터를 어떤 식으로 전달하는가?"에 대한 일종의 약속 → 함수 호출 후에 ESP(스택 포인터)를 어떻게 정리하는지에 대한 약속이 바로 함수 호출 규약이다. ● cdecl ● stdcall ● fastcall 1. cdecl 주로 C언어에서 사용되는 방식이며 호출자(함수를 호출한 곳)에서 스택을 정리한다. #include "stdio.h" int add(int a, int b) { return (a+b); } int main(int argc, char* argv[]) { return add(1,2); } =======main()문========= PUSH EBP MOV EBP, ESP PUSH 2 ;파라미터 2 PUSH 1 ;파라미터 1 CALL 00401000 ;A..