24.리버싱을 하기 위해서는 여러 가지 도구가 필요하다. 제시된 도구들과 그 역할이 올바르게 짝지어진 것은?

해설
리버싱(Reversing) 프로그램이나 소프트웨어의 동작 원리를 이해하거나 수정하기 위해 역공학적인 접근을 취하는 과정 역공학 시도에는 여러가지 엔지니어링 tool 들을 사용한다. 디버거 (Debugger): 예시 도구: OllyDbg, IDA Pro, x64dbg, WinDbg 설명: 가장 널리 사용되는 리버스 엔지니어링 소프트웨어 도구 프로그램 실행 중에 코드를 단계별로 분석하고 변수 값, 레지스터 상태, 메모리 내용 등을 확인하여 프로그램 동작을 이해하고 수정할 수 있는 도구 디컴파일러 (Decompiler): 예시 도구: Ghidra, IDA Pro, RetDec, Reflector 설명: 컴파일된 바이너리 코드를 원래 소스 코드로 변환하여 프로그램의 동작을 분석하는 도구 스태틱 분석 도구 (Static Analysis Tools): 예시 도구: IDA Pro, Ghidra, Binary Ninja, radare2 설명: 프로그램의 바이너리 코드를 분석하여 구조, 제어 흐름, 데이터 흐름 등을 이해하고 프로그램 동작을 추적하는 도구 암호 해독 도구 (Cryptography Tools): 예시 도구: Cryptool, OpenSSL 설명: 프로그램 내에서 사용되는 암호화된 데이터를 해독하고 분석하는 데 사용되는 도구 패킹 및 언패킹 도구 (Packing and Unpacking Tools): 예시 도구: UPX, PEiD, Exeinfo PE 설명: 프로그램의 실행 파일을 압축하거나 암호화하여 분석을 어렵게 만드는 기법을 사용하는 프로그램을 분석하는 도구 모니터 (Monitoring Tools): 예시 도구: Process Monitor, Wireshark, Filemonitor, API Monitor, Procexp 설명: 프로그램 실행 중에 API 호출, 파일 I/O, 네트워크 트래픽 등을 모니터링하고 분석하는 도구 헥스 에디터 (Hex Editor): 예시 도구: HxD, 010 Editor 설명: 파일을 16진수 형태로 열어 바이너리 데이터를 직접 수정하거나 분석하는 도구