반응형

공부해요 93

28. 어셈블리 언어를 이용한 Code 인젝션

어셈블리 프로그래밍올리디버거에서 지원하는 assenble 기능을 이용해서 프로그래밍.. OllyDbg의 Assemble 명령asmtest.txt를 올리디버거로 열어서 코드 섹션의 맨 윗부분(401000) 봄여기 주소에 커서 올리고 마우스 우클릭해서 'New origin here[Ctrl+Gray]항목 누르면 EIP가 해당 주소로 변함 여기서 스페이스 누르면 어셈블 입력창 떠서 간단한 어셈블리 프로그래밍 할 수 있음  ThreadProc() 작성C로만든 ThreadProc()함수와의 차이점은 Code 사이에 필요한 Data를 포함하는 것CALL 명령어 넣고.. ASCII 항목에는 ReverseCore 문자열 넣음 이때 문자열은 반드시 NULL로 끝나야하 하니 hex 에서 00을 추가함..이 명령 하면 코드..

27. Code 인젝션

Code 인젝션상대방 프로세스에 독립 실행 코드를 삽입한 후 실행하는 기법일반적으로CreateRemoteThread() API를 이용해 원격 스레드의 형태로 실행하므로 Thread 인젝션이라도고 함. DLL 인젝션 vs Code 인젝션DWORD WINAPI ThreadProc(LPVOID lParam){ MessageBoxAa(NULL, "www.reversecore,com", "ReverseCore", MB_OK); return 0;}windows 메시지 박스 출력하는 코드 DLL인젝션이면 위에 코드를 DLL 파일 형태로 만들고 다른 프로세스에 인젝션하면됨 디버거로 열면 이렇게 나온다. 10009290, 1000929C 주소의 문자열을 확인하면 DLL의 데이터 섹션에 위치한 문자열을 가르키..

메모리 관리 퀴즈

1. 주소 공간을 랜덤 배치하도록하는 것은 무엇인가?더보기ASLR 2. 프로세스는 쪼개서 메모리에 떨어뜨려서 두어도 운영체제에서 변환하므로 분할하여도 상관없다. (참/거짓)더보기거짓하드웨어인 MMU가 변환함 3. 단편화로 인한 공간을 업애는 과정은 메모리 압축이라한다. 메모리압축의 문제 점 한가지를 서술하시오더보기축하는 동안 시스템은 모든일을 중지해야됨. 이때 대화형 사용자는 응답시간이 일정하지 않아서 실시간 시스템은 문제 발생할 수 있음. 메모리에 있는 작업들을 이동해야되니까 프로그램적재할 때 제거되는 대치 관련 정보를 액세스 가능한 형태로 보관해야됨.압축 작업을 자주 요구하니까 시스템 자원 소모가 크다..

메모리 관리

지역성의 원칙(principle of Locality)프로그램은 어떤 특정 시간에는 주소 공간 내의 비교적 작은 부분만을 접근시간적 지역성(Temporal Locality)한번 참조된 항목은 곧바로 다시 참조되는 경향공간적 지역성(Spatial Locality)어떤 항목이 참조되면 그 근처에 있는 다른 항목들이 곧바로 참조될 가능성 높음 컴구 복습 내용은 패스..   메모리 관리 메모리의 역할메모리는 실행하고자 하는 프로그램 코드와 데이터에 적재CPU는 메모리에 적재된 코드와 데이터를 처리실행시키려면 반드시 하드디스크에 있는거를 메모리로 가져와야한다. 운영체제에 의해 메모리 관리가 필요한 이유메모리는 공유 자원이기때문에 여러 프로세스 사이에 메모리 공유하고 각 프로세스에게 물리 메모리 할당아니까메모리는 ..

26. PE Tools

프로세스 메모리 덤프, PE 헤더 Editing, PE Rebuilding 기능 가짐 홈페이지: http://petools.org.ru다운경로: http://petools.org.ru/updates/pt_update_08_rc7.zip이라는데.. 사이트가 없어진듯 https://petoolse.github.io/petools/ PE ToolsPortable executable (PE) manipulation toolkitpetoolse.github.io 이걸로 받음 PE Tools 주된 목적은 프로세스 메모리 덤프   프로세스 메모리 덤프덤프란 메모리의 내용을 그대로 파일로 저장시킨다는 뜻주로 실행 중인 프로세스의 메모리 내용을 확인할 때 자주사용한다..실행 압축 파일의 경우 메모리에서는 압축 해제된 상..

25. PE 패치를 이용한 DLL 로딩

대상 프로그램의 실행 파일을 직접 수정하여 DLL을 강제로 로딩하는 방법: 한 번 적용해두면 별도의 인젝션 과정 없이 프로세스가 시작할 때마다 원하는 DLL을 로딩하게 만들 수 있음, 일종의 크랙TextView.exe의 참조 DLL:KERNEL32.dll, USER32.dll, GDI32.dll, SHELL32.dll 등의 주요 Windows DLL을 참조하며, 이들은 프로그램이 Windows API 기능을 사용하는 데 필요.이러한 DLL을 통해 파일 관리, 메모리 할당, 창 처리, 그래픽 렌더링 등 다양한 기본적인 운영 체제 기능을 호출 가능  IMPORT Directory Table의 구조:IMAGE_IMPORT_DESCRIPTOR 구조체에 의해 구성되며, 각 DLL에 대한 정보를 포함.Origina..

24. DLL 이젝션

DLL Injection DLL Injection은 특정 DLL을 다른 프로세스의 주소 공간에 강제로 삽입하여 해당 프로세스의 동작을 조작하는 기술임. 주로 프로그램을 모니터링하거나 조작하는 목적에서 사용되며, 악성 코드가 다른 프로그램에 삽입되어 악의적인 동작을 수행하도록 하는 데 악용되기도 함. DLL Injection의 동작 원리대표적인 DLL Injection 방식으로 CreateRemoteThread() API를 이용한 방법이 있음. 이 방식은 대상 프로세스로 하여금 특정 DLL을 강제로 로드하도록 유도함. 주요 동작 단계는 다음과 같음.1. LoadLibrary() 호출 유도CreateRemoteThread() API를 사용하여 대상 프로세스에 새로운 스레드를 생성함.새롭게 생성된 스레드가 L..

23. DLL 인젝션

DLL 인젝션 DLL 인젝션은 실행 중인 다른 프로세스에 특정 DLL 파일을 강제로 삽입하는 기법. 이는 다른 프로세스로 하여금 LoadLibrary() API를 스스로 호출하도록 명령하여 사용자가 원하는 DLL을 로딩하도록 하는 방식 DLL 인젝션의 동작 원리DLL 인젝션의 동작 원리는 외부에서 다른 프로세스에게 LoadLibrary() API를 호출하게 만들어 강제 삽입된 DLL의 DllMain() 함수가 실행되도록 하는 것임. LoadLibrary() API를 이용해 특정 DLL이 로딩되면 해당 DLL의 DllMain() 함수가 실행 DLL 인젝션의 활용 사례기능 개선 및 버그 패치: 새로운 기능을 추가하거나 문제 있는 코드와 데이터를 수정할 수 있는 방식으로 사용됨메시지 후킹: 프로세스 간의 메시..

22. 악의적인 목적으로 사용되는 키로거

악성 키로거의 목표 키로거의 주요 목표는 돈임. 키로거는 사용자가 입력한 키보드 정보를 저장하고 이를 빼돌리는 기능을 통해 민감한 정보를 수집함. 정보화 사회에서 정보는 곧 가치이므로, 악성 키로거는 결국 금전적 이익을 목표로 함 활용 사례온라인 게임: 계정 탈취를 통한 게임 아이템 및 계정 판매인터넷 뱅킹: 로그인 정보와 금융 정보 탈취기업 정보: 기밀 정보 및 데이터 유출을 통한 경제적 손실 초래키로거의 종류와 향후 발전 방향 하드웨어 키로거 하드웨어 키로거는 작은 USB 메모리처럼 생긴 장치로, 키보드 케이블 끝에 연결해 PC에 설치됨 내부에 flash memory를 탑재해 키보드로부터 들어오는 전기 신호를 직접 저장함 물리적으로 접근이 필요하지만, 탐지가 어렵고 데이터 수집 후 간단히 제거 가능함..

21. Windows 메시지 후킹

훅(Hook) 훅은 원하는 정보를 낚아채기 위해 사용하는 도구로, 특정 정보를 엿보거나 가로채기 위해 사용됨. 확장된 의미로 시스템이나 프로그램의 동작 흐름에 개입하여 필요한 정보를 얻거나, 데이터를 조작하는 목적에서도 사용됨 예시어떤 집단에 검문 절차가 3단계로 구성되어 있었는데, 스파이가 검문 절차 하나를 추가해 4단계로 만듦집단 내부의 사람들은 별다른 의심 없이 이 절차를 따르게 되고, 스파이는 이를 통해 필요한 정보를 쉽게 얻을 수 있게 됨이 과정에서 스파이가 추가한 검문 초소 설치 작업을 ‘훅을 건다’ 또는 ‘훅을 설치한다’고 표현함후킹(Hooking) 후킹은 훅을 통해 실제로 정보를 엿보고 조작하는 행위 자체를 의미함. 훅이 설치된 후 후킹을 통해 중간에서 정보를 가로채거나 데이터를 변경할 수..

반응형