목록전체 글 (18)
Study
13. PE File 13.3 IAT ▶ IAT란? 프로그램이 어떤 라이브러리에서 어떤 함수를 사용하고 있는지를 기술한 테이블 13.3.1 DLL ▶ DLL이란? 16비트 DOS 시절은 어떠한 라이브러리 함수를 사용하고자 할 때 라이브러리에서 해당 함수의 binary 코드를 그대로 가져와 프로그램에 포함시켰다. 그러나 32비트 Windows 환경에서는 멀티태스킹을 지원하기 때문에 여러 곳에서 자주 사용되는 라이브러리 함수를 매번 프로그램에 포함시키는 방법이 비효율적이 되어버렸다. 또한 Windows 환경을 제대로 지원하기 위해서는 매우 많은 라이브러리 함수가 필요하다. (process, memory, window, message 등) 따라서 심각한 자원낭비를 방지하기 위해 고안해낸 방법이 DLL 방법이다..
13. PE File 13.1 PE File이란? - Windows 운영체제에서 사용되는 실행 파일 형식. - 기본적으로 32비트 형태의 실행 파일을 의미하며 PE32라는 용어를 사용하기도 한다. - 64비트 형태의 실행 파일은 PE+ 또는 PE32+라고 부르며 PE 파일의 확장 형태이다. 실행 계열 .scr - Screen Saver의 약자. 윈도우 화면 보호기 파일. 이 파일은 혼자서도 실행된다. - 윈도우 디렉터리나 System 디렉터리에 설치되며, 디스플레이 등록정보에서 설정하여 사용한다. .exe - Executable의 약자로 가장 기본적인 실행파일. - 그 외 실행 파일로는 .bat, .com등이 있다. 드라이버 계열 .sys - System의 약자로 시스템 운영에 꼭 필요한 파일이며, co..
07. Stack Frame 7.1 Stack Frame이란? ESP(스택 포인터)가 아닌 EBP(베이스 포인터)를 사용하여 스택 내의 로컬 변수, 파라미터, 복귀 주소에 접근하는 기법 - ESP는 프로그램 실행 과정 중 스택 내에서 수시로 변경되기 때문에 이를 기준으로 프로그램을 작성하면 프로그래머도 힘들고, CPU도 정확한 위치를 참고할 때 어려움이 있다. - 따라서 EBP를 이용하여 함수가 실행되는 동안 일정한 위치를 유지해주면 그것을 기준으로 안전하게 해당 함수의 변수, 파라미터, 복귀 주소에 접근할 수 있다. 7.2 StackFrame.exe 분석 예제 코드를 준비하고 OllyDbg에서 열어 main()을 호출하는 CALL 명령어부터 보기로 한다. ▲ CALL StackFra.00401020 m..