API Hooking
·
Reversing
후킹의 종류는 여러가지가 있는데 일부만 맛을 봐보자1. API 후킹(API Hooking)운영 체제나 애플리케이션이 제공하는 API를 가로채는 방식인데, 이 API 후킹은 아래처럼 분리된다API Hooking├── IAT Hooking (Import Address Table Hooking)├── EAT Hooking (Export Address Table Hooking)├── Inline Hooking (JMP 패칭 방식)├── Detours Hooking (라이브러리 기반 방식) IAT HookingPE 파일의 IAT를 수정하여 다른 함수로 연결예를 들어 kernel32.dll의 WriteFile() 메서드를 후킹 EAT HookingDLL의 EAT를 수정하여 특정 API를 변경예를 들어 ntdll.d..
Abex' crackme #2 Analysis
·
Reversing
분석을 위해 디버거로 열어서 실행해보자대충 Name의 Serial을 비교 후 리턴하여 true, false 를 반환하는 것 같다아무 값이나 넣고 Check를 눌러보자잘못된 시리얼번호라는 메시지박스가 호출되었다분석을 하기위해 디버거에서 문자열을 검색해주자캡션명에 Wrong serial!, 메시지박스에 Nope, this serial is wrong! 이라는 문자열이 있었으니 해당 주소로 가보자Check버튼을 누른 후 과정을 그래프로 보자면정말 간단하게 크랙할 수 있는 방법은serial number가 일치, 불일치 했을때 나오는 문자열의 분기구문을403332 je -> jne403424 je -> jne이 두가지 주소의 어셈블리어만 어셈블 해주면 일치하는 serial number를 제외한 어떤 시리얼넘버를 ..
Stack Frame
·
Reversing
스택 프레임이란  esp가 아닌 ebp 레지스터를 사용하여 스택 내의 로컬 변수, 파라미터, 복귀주소에 접근하는 기법이다먼저 StackFrame.exe를 디버거로 열어보기 전에 소스코드를 확인해보자main함수가 있고 add라는 함수가 파라미터 인자 a, b를 받아서 인자 a와 b를 더한 값을 리턴해주는 함수이다디버거로 열어서 확인해보자EP부터 함수를 호출하는데 여기서부터 한단계씩 실행하여 main 함수를 찾아보자401020 주소부터 main함수가 시작되는걸 짐작할수있는데, 먼저 main함수가 시작되기 전에 초기 레지스터값을 살펴보자ebp 19FF74 / esp 19FF30main()1. 함수 시작인 401020 주소를 한단계 실행해보면 push ebp를 통해 스택에는 ebp값이 저장되고 esp값은 19F..