Reversing (3) 썸네일형 리스트형 반디집 API 후킹 Detours를 이용하여 반디집 API를 후킹 할 수 있다.Detours는 원본 함수의 시작 부분에 점프 명령을 삽입하여 사용자 정의 함수로 실행 흐름을 옮기고, Trampoline 함수를 통해 원본 함수의 나머지 부분을 호출할 수 있도록 하는 방식으로 작동한다.반디집에서 압축을 해제할 때 WinAPI인 WriteFile 함수를 사용할 것이라 추측해 볼 수 있다.확실하게 확인해 보기 위해 해당 함수가 호출될 때 printf를 통해서 메시지를 출력해 본다. // dllmain.cpp : DLL 애플리케이션의 진입점을 정의합니다.#include "pch.h"#include #include #include "C:\\~~~~~\\include\\detours.h"#pragma comment(lib, "C:\\~.. memcpy 분석 `memcpy`는 메모리 영역을 복사하는 C 언어의 표준 라이브러리 함수이다.#include #include #if !_ASM_MEMCPYtypedef long word;#define lsize sizeof(word)#define lmask (lsize - 1)void *memcpy(void *dest, const void *src, size_t count) { char *d = (char *)dest; const char *s = (const char *)src; int len; if (count == 0 || dest == src) return dest; if (((long)d | (long)s) & lmask) { // src and/or dest.. Byte Ordering 바이트 오더링(Byte Ordering) : 데이터를 저장하는 방식빅 엔디언(Big Endian)리틀 엔디언(Little Endian)BYTE b = 0x12;WORD w = 0x1234;DWORD dw = 0x12345678;char str[] = "abcde";TYPENameSIZE빅 엔디언 Style리틀 엔디언 StyleBYTEb1[12][12]WORDw2[12][34][34][12]DWORDdw4[12][34][56][78][78][56][34][12]char []str6[61][62][63][64][65][00][61][62][63][64][65][00] 바이트 타입의 b 변수를 저장할 때는 두 방식의 차이가 없지만, 2바이트 이상의 크기를 가진 자료형을 저장할 때부터 차이가 나타난다. 빅 엔디.. 이전 1 다음