반응형

전체 글 298

50. 안티 디버깅

안티 디버깅을 공부해야 하는 이유1. 각종 안티 디버깅 기법들의 동작 원리를 파악한 후 회피하기 위해서2. 안티 디버깅 기법을 공부하는 과정에서 저절로 고급 리버싱을 배울 수 있음 안티 디버깅 기법이란?고급리버싱 과정디버거와 OS에 강한 의존성이 有 (특정 운영체제에만 동작 or  디버거 종류에 따라 안티 디버깅 기법 상이) 안티 안티 디버깅 기법안티 디버깅을 상대하는 방법 안티 디버깅 분류Static이랑 Dynamic으로 분류Static은 디버깅 시작 시 한 번만 해체해주면 해결되지만 dynamic 기법은 디버깅 진행하면서 안티 디버깅을 만날 때마다 해결해야하므로 난이도가 高 StaticDynamic난이도Low, MediumHigh구현 원리다양한 시스템 정보 활용디버거의 동작 원리 역이용목적디버거 탐지..

49. IA-32 Instruction

IA-32 InstructionInstruction이란 CPU가 알아들을 수 있는 기계어 이다. 명령어 라는거..IA-32 Instruction는 IA-32 계열의 CPU에서 사용되는 명령어를 말하는 것임여기에서 두번째 칸에 보이는 E8 CC27000이나 55이런거가 모두 IA-32 Instruction이다 프로그래밍 언어로 작성된 코드는 컴퓨터가 알아들을 수 있게 compile/Link과정을 거쳐서 위에 형식으로 변환해야된다.  용어정리용어설명Macine Language기계어, CPU가 해석할 수 있는 Binary코드Instruction하나의 기계 명령어 단위OpCodeOperation Code, Instruction 내의 실제 명령어Assembly어셈블리 프로그래밍 언어Assemble어셈블리 코드를 ..

48. SEH

SEH란?Windows 운영체제에서 제공하는 예외 처리 시스템소스코드에서 __try, __except, __finally 키워드로 구현 가능 SEH 예제 실습 #1https://github.com/reversecore/book/blob/master/%EC%8B%A4%EC%8A%B5%EC%98%88%EC%A0%9C/06_%EA%B3%A0%EA%B8%89_%EB%A6%AC%EB%B2%84%EC%8B%B1/48_SEH/bin/seh.exe book/실습예제/06_고급_리버싱/48_SEH/bin/seh.exe at master · reversecore/book리버싱 핵심원리 - 소스 코드 및 실습 예제. Contribute to reversecore/book development by creating an ac..

47. PEB

PEB란?프로세스의 정보를 담고 있는 구조체방대한 크기문서화 된 내용 PEB 접근 방법앞에 TEB설명가지고 생각해보면 FS:[30] = TEB.ProcessEnvironmentBlock = address of PEB 이런 공식을 구할 수 있다. 이 공식을 어셈블리 코드로 만들어보면방법1. 바로 PEB 주소 구하는 방법MOV EAX, DWORD PTR FS:[30]            ; FS[30] = address of PEB 방법2. TEB 주소 구하고 ProcessEnvironmentBlock멤버를 이용하는 방법MOV EAX, DWORD PTR FS:[18]             ; FS[18] = address of TEB MOV EAX, DWORD PTR DS:[EAX+30]           ..

46. TEB

TEB란?프로세스에서 실행되는 스레드에 대한 정보를 담고 있는 구조체스레드 별로 TEB 구조체가 하나씩 할당됨.TEB 구조체는 OS 종류별로 모양이 달라짐 TEB 구조체 정의typedef struct _TEB { BYTE Reserved1[1952]; PVOID Reserved2[412]; PVOID TlsSlots[64]; BYTE Reserved3[8]; PVOID Reserved4[26]; PVOID ReservedForOle; PVOID Reserved5[4]; PVOID TlsExpansionSlots;} TEB, *PTEB;MSDN의 TEB 구조체 설명이다.구조체 내용을 자세히 보기 위해 WinDbg사용(커널 디버거 사용) WinDbg로 비교해보면 W..

45. TLS 콜백 함수

TLS 콜백 함수란?EP 코드보다 먼저 실행됨 EP코드보다 먼저 실행된다는 특징때문에 안티 디버깅에 사용할 수 있다. 실습..https://github.com/reversecore/book/tree/master/%EC%8B%A4%EC%8A%B5%EC%98%88%EC%A0%9C/06_%EA%B3%A0%EA%B8%89_%EB%A6%AC%EB%B2%84%EC%8B%B1/45_TLS_Callback_Function/bin book/실습예제/06_고급_리버싱/45_TLS_Callback_Function/bin at master · reversecore/book리버싱 핵심원리 - 소스 코드 및 실습 예제. Contribute to reversecore/book development by creating an acc..

44. InjDll.exe-DLL 인젝션 전용 도구

InjDll.exe실습예제에서 자주소개되는 프로그램임Windows 2000이상의 운영체제만 지원 https://github.com/reversecore/book/tree/master/%EC%8B%A4%EC%8A%B5%EC%98%88%EC%A0%9C/05_64%EB%B9%84%ED%8A%B8_%26_Windows_Kernel_6/44_InjDll.exe_-_DLL_Injection_%EC%A0%84%EC%9A%A9_%EB%8F%84%EA%B5%AC/bin book/실습예제/05_64비트_&_Windows_Kernel_6/44_InjDll.exe_-_DLL_Injection_전용_도구/bin at master · reversecore/book리버싱 핵심원리 - 소스 코드 및 실습 예제. Contribute ..

43. DLL Injection in Kernel 6

CreateRemoteThread() API사용하는 방법은 xp에서는 잘 되는데 7에서는 다르게 동작함 그래서 DLL 인젝션이 안된다..왜냐면 세션관리 정책이 변경되었기때문https://github.com/reversecore/book/tree/master/%EC%8B%A4%EC%8A%B5%EC%98%88%EC%A0%9C/05_64%EB%B9%84%ED%8A%B8_%26_Windows_Kernel_6/43_DLL_Injection_in_Kernel_6/bin book/실습예제/05_64비트_&_Windows_Kernel_6/43_DLL_Injection_in_Kernel_6/bin at master · reversecore/book리버싱 핵심원리 - 소스 코드 및 실습 예제. Contribute to r..

42. Session in Kernel 6

Windows OS kernel 6에서 변경된 세션 관리 정책세션 관리 정책 변화Windows Kernel 6부터 세션 관리 정책이 변경그래서 서비스 프로그램에서 사용자 인터페이스(예: 다이얼로그 출력)나 사용자와의 메시지 통신이 XP처럼 정상적으로 동작하지 않게되었다개발 영향특히 사용자와 인터랙티브한 동작을 시도하는 서비스 프로그램이 영향XP에서 정상적으로 동작하던 서비스가 Vista나 7에서 문제를 일으킬 수 있게됨리버싱 관점의 중요성기존에 널리 사용되던 CreateRemoteThread() API를 통한 DLL 인젝션이 서비스 프로세스에서는 더 이상 작동하지 않는다..일반 프로세스에서는 여전히 동작하지만, 서비스 프로세스에는 제한이 생김 세션이란?간단하게 하면 로그온 사용자 환경을 의미한다.대부분 ..

41. ASLR

ASLR이란?PE파일이 메모리에 로딩될 때 로딩 시작 주소 값을 랜덤하게 바꾸는 것이다. 학교 운영체제때 배운내용으로는.. 지역주소로 계속 똑같이 보이게되면 공격자에게 당하기 쉬워져 ASLR이 보안측면에 사용된다고 했었음책에도 비슷하게 exploit code작성을 어렵게 하기 위해 사용되었다고 함 모든 실행파일에서 적용되는 기술은 아니고 운영체제의 Kernel Version이 6이상이어야하고, 개발 도구에서 /DYNAMICBASE 옵션을 지원해야된다고 한다.비주얼스튜디오에서 확인한건데디버그 > 속성에서 위와같은 화면이 나오면 링커 > 고급에서 임의 기준 주소를 설정하면 된다.윈보운 과제할때는 편하게 하려고 꺼두고 했던..  아래에서 파일을 받아서 실습을 진행해보았다.https://github.com/re..

반응형