1. 랑그릿사2 리버싱에 사용하는 도구
컴퓨터 프로그램을 만들 때는, 일반적으로 프로그래밍 언어(예를 들어, C 언어)로 작성된 소스 코드를 컴파일하여 기계어로 구성된 프로그램을 만들게 됩니다. 이렇게 만들어진 프로그램은 (소스 코드를 공개하지 않는 이상) 내부 구현(설계, 계산로직 등)을 알아내기 쉽지 않습니다.
리버싱(reversing) 혹은 리버스 엔지니어링(reverse engineering)이란, 컴퓨터 프로그램을 분석해서 내부 구현을 알아내는 과정 혹은 그러한 기법을 의미합니다.
랑그릿사2 PC판을 리버싱하기 위해 사용하는 도구는 다음과 같습니다. (물론 이들은 랑그릿사2 뿐만 아니라 다른 프로그램을 리버싱하기 위해서도 사용할 수 있는 범용 도구입니다.)
1. 디스어셈블러(disassembler) : 기계어로 만들어진 프로그램을 어셈블리어로 변환해주는 도구입니다. IDA Pro가 기능이 좋지만 비싸다는 단점이 있습니다. 무료 중에서는 Ghidra가 쓸만합니다. 따라서 Ghidra를 사용하겠습니다. (https://ghidra-sre.org/ 에서 받을 수 있습니다.)
2. 디버거(debugger) : 보통은 프로그래머가 디버깅(버그를 잡는 것)하기 위해서 디버거를 사용하는데, (목적이 좀 다르다보니) 리버싱에 사용하는 디버거는 따로 있는 것 같습니다. 전에는 OllyDbg를, 요즘에는 x64dbg를 많이 사용하는 것 같습니다. 하지만, 랑그릿사2는 윈도우즈 98에서 구동하는 거라서 디버거도 그에 맞게 옛날 디버거인 SoftICE 4.05 (windows 98)를 사용하겠습니다.
3. 헥스에디터(hex editor) : 프로그램을 수정하고 싶다면 헥스에디터로 수정할 수 있습니다. 아무 거나 써도 상관없지만, 그동안 써오던 HxD를 사용하겠습니다. (https://mh-nexus.de/en/hxd/ 에서 받을 수 있습니다.)
위 3가지가 필수 도구이고, 각각의 자세한 기능은 중간중간 설명하도록 하겠습니다.
리버싱(reversing) 혹은 리버스 엔지니어링(reverse engineering)이란, 컴퓨터 프로그램을 분석해서 내부 구현을 알아내는 과정 혹은 그러한 기법을 의미합니다.
랑그릿사2 PC판을 리버싱하기 위해 사용하는 도구는 다음과 같습니다. (물론 이들은 랑그릿사2 뿐만 아니라 다른 프로그램을 리버싱하기 위해서도 사용할 수 있는 범용 도구입니다.)
1. 디스어셈블러(disassembler) : 기계어로 만들어진 프로그램을 어셈블리어로 변환해주는 도구입니다. IDA Pro가 기능이 좋지만 비싸다는 단점이 있습니다. 무료 중에서는 Ghidra가 쓸만합니다. 따라서 Ghidra를 사용하겠습니다. (https://ghidra-sre.org/ 에서 받을 수 있습니다.)
2. 디버거(debugger) : 보통은 프로그래머가 디버깅(버그를 잡는 것)하기 위해서 디버거를 사용하는데, (목적이 좀 다르다보니) 리버싱에 사용하는 디버거는 따로 있는 것 같습니다. 전에는 OllyDbg를, 요즘에는 x64dbg를 많이 사용하는 것 같습니다. 하지만, 랑그릿사2는 윈도우즈 98에서 구동하는 거라서 디버거도 그에 맞게 옛날 디버거인 SoftICE 4.05 (windows 98)를 사용하겠습니다.
3. 헥스에디터(hex editor) : 프로그램을 수정하고 싶다면 헥스에디터로 수정할 수 있습니다. 아무 거나 써도 상관없지만, 그동안 써오던 HxD를 사용하겠습니다. (https://mh-nexus.de/en/hxd/ 에서 받을 수 있습니다.)
위 3가지가 필수 도구이고, 각각의 자세한 기능은 중간중간 설명하도록 하겠습니다.
오랜만에 다시왔어요. 1번부터 다시 읽어볼게요.
답글삭제