본문 바로가기

분류 전체보기168

PE parsing - IMAGE_DOS_HEADER PE 헤더의 IMAGE_DOS_HEADER 구조체를 파싱합니다 int main(void) { HMODULE module_base = GetModuleHandle(NULL); LPVOID base_addr = (LPVOID)module_base; PIMAGE_DOS_HEADER dos_header = (PIMAGE_DOS_HEADER)base_addr; std::cout 2023. 4. 8.
디버깅 관련 API API 이름 설명 CheckRemoteDebuggerPresent 프로세스가 디버깅 되고 있는 지 확인 ContinueDebugEvent 디버거가 디버깅 이벤트를 보고한 쓰레드를 계속 수행함 DebugActiveProcess 디버거가 동작 중인 프로세스에 연결하여 디버깅할 수 있게 함 DebugActiveProcessStop 특정 프로세스의 디버깅을 멈춤 DebugBreak 현재 프로세스에 중단점 예외 처리를 발생시킴 DebugBreakProcess 특정 프로세스에 중단점 예외 처리를 발생시킴 DebugSetProcessKillOnExit 쓰레드가 종료될 때 수행할 행위를 설정함 FatalExit 실행 제어를 디버거로 전달함 FlushInstructionCahce 특정 프로세스에 대한 명령어 캐시를 비움.. 2023. 4. 1.
Code Browser CodeBrowser는 기드라의 주요 기능인 소프트 웨어 리버스 엔지니어링을 수행하기 위한 도구 입니다. 기본적으로는 다음 6개의 창이 표시됩니다. Program Tress 프로그램 구조를 분석해 [Fragment]라는 단위로 분할해 표시한다. PE 형식의 파일은 헤더나 섹션으로 분할된다. Symbol Tree 프로그램 내의 심볼에 관한 정보가 표시된다. Data Type Manager 프로그램 내의 데이터형에 관한 정보가 표시된다. Listing 프로그램을 디스어셈블한 결과가 표시된다. Decompile 디스어셈블한 프로그램을 C언어로 디컴파일한 결과가 표시된다. Console Ghidra Script 및 Ghidra Extension 출력이 표시된다. 2023. 3. 28.
IsDebuggerPresent() 함수 IsDebuggerPresent() 함수는 디버깅중인지 아닌지 판별하는 함수입니다. 디버깅 중이라면 1, 디버깅 중이 아니라면 0 이를 활용하여 안티 디버깅에 활용 할수 있습니다. 코드는 다음과 같습니다. #include #include int main(void) { int check = IsDebuggerPresent(); if (check == 1) std::cout 2023. 3. 27.
while 문 while문 코드 int main(int argc, char *argv[]) { int i = 0; while (i 2023. 3. 24.
caeser https://crackmes.one/crackme/63ab23d733c5d43ab4ecf151 Crackmes How would you rate the difficulty of this crackme ? crackmes.one 의 크랙미 파일입니다. 우선 파일을 실행시켜 어떤 프로그램인지 확인합니다. 실행을 시키니 "Enter the key : " 라는 메시지가 나오고 0이란 숫자를 입력했습니다. 0을 입력하니 "Nkrru&Ngiqkxy" 란 문자가 등장했습니다. 프로그램 실행 결과를 확인했으니, x64dbg에 연결하고 "Nkrru&Ngiqkxy" 문자열을 검색해봅니다. 문자열을 검색해 보았지만 아무것도 나오지 않았습니다. 그렇다면 "Enter the key:" 을 검색 해봅시다. 더블클릭하여 해당 주.. 2023. 3. 15.
반응형