WEBVTT

00:02.180 --> 00:04.130
안녕하세요, 다시 오신 것을 환영합니다.

00:04.160 --> 00:12.470
이전 강의에서 몇몇 학생들이 여기와 여기 이 암호 해독 함수 안에

00:12.710 --> 00:27.260
중단점을 넣고 실행해도 프로그램이 실행 상태가 되기 때문에 중단점이 맞지 않는다고 언급했습니다.

00:28.070 --> 00:30.440
그래서 그 해결 방법을 설명하겠습니다.

00:30.710 --> 00:35.390
이제 키보드의 백스페이스를 눌러 이전 코드로 돌아가 보겠습니다.

00:35.960 --> 00:38.030
그래서 여기에 중단점을 설정했습니다.

00:38.420 --> 00:48.230
그리고 실행이 여기에 와서 테스트를 수행하면 파일이 존재하지 않기 때문에 실패하기 때문에

00:48.230 --> 00:51.320
문제가 발생합니다.

00:52.610 --> 00:56.120
하지만 어떤 이유에서인지 실패합니다.

00:56.120 --> 00:58.850
따라서 코드 블록에 들어가지 않습니다.

00:59.150 --> 01:03.350
대신 코드 블록을 건너뛰고 여기로 올라오게 됩니다.

01:03.890 --> 01:10.530
그래서 우리가 하고 싶은 것은 코드 블록에 강제로 들어가서 여기 RSM 암호 해독으로

01:10.530 --> 01:18.780
올 수 있도록 하고, RSM 암호 해독에서 여기로 와서 이 압축 해제와 리소스 암호 해독을 수행하도록

01:18.810 --> 01:21.660
하는 것입니다.

01:22.410 --> 01:23.130
리소스.

01:23.370 --> 01:24.090
리소스.

01:24.120 --> 01:24.480
Key.

01:24.510 --> 01:24.720
Key.

01:24.750 --> 01:25.290
출처.

01:25.320 --> 01:26.700
이것이 바로 우리가 하고자 하는 일입니다.

01:27.180 --> 01:35.910
따라서 이를 위해서는 여기서 부정 연산자를 제거하여 이 논리를 뒤집어야 합니다.

01:36.420 --> 01:40.890
따라서 부정 연산자를 제거하려면 코드를 수정해야 합니다.

01:41.460 --> 01:42.900
지금 바로 해보겠습니다.

01:43.350 --> 01:48.150
이 항목을 선택하고 마우스 오른쪽 버튼으로 클릭한 다음 지침을 편집합니다.

01:50.010 --> 01:56.310
그러면 이미 마우스 오른쪽 버튼을 클릭했기 때문에 자동으로 이 세 줄이 선택된 것을 볼 수 있습니다.

01:56.640 --> 02:01.350
그래서 이를 IL 명령어, 중간 언어라고 합니다.

02:02.220 --> 02:08.940
C#과 VB에서 사용되는 저수준 언어입니다. NET 프레임워크를 지원합니다.

02:09.600 --> 02:12.950
에 대한 어셈블리와 같습니다. NET.

02:13.940 --> 02:20.270
따라서 로직을 반전시키려면 BR_TRUE를 반전시켜 BR_FALSE로 바꾸면 됩니다.

02:21.830 --> 02:24.950
여기에 파일에 대한 호출이 있는 것을 볼 수 있습니다. 존재합니다.

02:24.950 --> 02:27.380
그리고 그 다음에는 BR_TRUE가 있습니다.

02:27.380 --> 02:29.090
그래서 우리는 이것을 바꾸기만 하면 됩니다.

02:29.090 --> 02:31.610
따라서 이것을 BR_FALSE로 변경해야 합니다.

02:32.030 --> 02:33.590
여기를 왼쪽 클릭하세요.

02:33.590 --> 02:38.480
그리고 여기에 가능한 옵코드 목록이 표시됩니다.

02:38.690 --> 02:42.830
조금 위로 스크롤하면 거짓이 표시되는 것을 볼 수 있습니다.

02:42.830 --> 02:45.200
BR_FALSE를 선택하여 교체합니다.

02:45.320 --> 02:46.700
그런 다음 확인을 클릭합니다.

02:47.510 --> 02:51.680
이제 네거티브가 사라진 것을 볼 수 있습니다.

02:51.680 --> 02:57.800
즉, 프로그램이 여기로 오면 이 코드 블록에 들어가서 이 줄을 실행합니다.

02:58.520 --> 03:03.980
이제 이 새로운 패치 코드를 버리겠습니다.

03:04.010 --> 03:05.660
코드를 패치하겠습니다.

03:05.660 --> 03:09.710
따라서 패치를 적용하려면 여기 이 어셈블리, 여기 이 모듈을 마우스 오른쪽

03:09.740 --> 03:12.470
버튼으로 클릭하고 모듈 저장을 선택합니다.

03:13.640 --> 03:16.910
모듈 저장을 선택하면 파일을 저장할지 묻는 메시지가 표시됩니다.

03:17.000 --> 03:17.340
확인을 클릭합니다.

03:17.340 --> 03:18.000
예.

03:19.410 --> 03:24.720
따라서 다른 이름으로 파일을 저장하려면 원본 파일을 덮어쓰고 싶지 않습니다.

03:24.750 --> 03:28.260
여기서 이 세 개의 점을 클릭하여 새 이름을 지정합니다.

03:30.630 --> 03:31.740
대시 2라고 부르세요.

03:33.150 --> 03:35.760
그런 다음 여기에서 모든 파일을 선택합니다.

03:35.760 --> 03:38.910
첫 번째 원본 파일은 여기에서 확인할 수 있습니다.

03:38.910 --> 03:41.580
그리고 이제 대시투로 이름을 바꾸려고 합니다.

03:41.610 --> 03:43.110
이것이 패치된 파일입니다.

03:43.530 --> 03:44.370
저장을 클릭합니다.

03:45.150 --> 03:46.110
확인을 클릭합니다.

03:48.690 --> 03:48.990
알겠습니다.

03:48.990 --> 03:55.350
이제 새 파일을 dnSpy에 다시 로드합니다.

03:55.380 --> 03:56.250
열다.

03:58.020 --> 03:59.430
모든 파일을 선택합니다.

03:59.580 --> 04:01.620
패치된 파일을 클릭합니다.

04:01.860 --> 04:08.370
열기를 클릭하고 중단점을 설정한 위치로 돌아갑니다.

04:09.480 --> 04:12.930
이것이 바로 패치된 파일입니다.

04:13.680 --> 04:14.760
새 파일입니다.

04:14.760 --> 04:16.560
따라서 중단점이 손실됩니다.

04:16.560 --> 04:17.760
그러니 걱정하지 마세요.

04:17.790 --> 04:19.920
중단점을 다시 삽입해 보겠습니다.

04:19.920 --> 04:21.660
여기에서 이 코드, 여기에서

04:21.690 --> 04:26.030
이 모듈, 편집, 어셈블리 검색을 선택합니다.

04:26.450 --> 04:29.180
그런 다음 ReadMail을 검색합니다.

04:32.600 --> 04:36.170
바로 검색입니다.

04:36.260 --> 04:36.830
OK.

04:36.830 --> 04:38.270
이것이 바로 여러분이 원하는 것입니다.

04:38.300 --> 04:38.840
ReadMail.

04:38.870 --> 04:41.330
바로 그 지점에 우리가 있었습니다.

04:41.360 --> 04:45.200
따라서 해당 항목을 두 번 클릭하면 같은 위치로 돌아옵니다.

04:45.230 --> 04:47.930
이제 중단점을 다시 삽입해 보겠습니다.

04:49.100 --> 04:50.210
여기 하나.

04:50.390 --> 04:51.680
여기를 클릭하세요.

04:51.770 --> 04:55.370
RSM_해독하고 여기에 하나 더 넣습니다.

04:56.270 --> 04:58.010
이제 실행할 준비가 되었습니다.

04:59.540 --> 05:03.140
실행되면 확인을 클릭합니다.

05:04.160 --> 05:05.210
예를 클릭합니다.

05:06.860 --> 05:14.270
여기서 중단점에 도달한 다음 두 번째로 실행되도록 놔두면 됩니다.

05:17.210 --> 05:19.160
이제 두 번째 중단점에 도달했습니다.

05:20.120 --> 05:24.050
이제 마지막 줄까지 넘어가 보겠습니다.

05:25.790 --> 05:28.070
한 걸음, 한 걸음,

05:28.070 --> 05:37.410
한 걸음, 한 걸음, 여기까지 도달하면 나머지 리소스를 해독할 수 있습니다.

05:38.100 --> 05:39.150
주요 리소스.

05:39.180 --> 05:48.180
따라서 해독된 바이트를 보려면 여기에서 로컬 아래를 내려다보고 배열 2를 마우스 오른쪽 버튼으로

05:48.210 --> 05:53.640
클릭한 다음 메모리 창에 표시를 선택하면 됩니다.

05:53.670 --> 05:54.720
메모리 1.

05:55.410 --> 05:59.220
여기에 헤더가 있는 것이 보이시죠?

05:59.730 --> 06:02.760
즉, PE 실행 파일입니다.

06:03.360 --> 06:05.310
그래서 우리는 그것을 버리려고 합니다.

06:05.340 --> 06:15.840
여기를 마우스 오른쪽 버튼으로 클릭한 다음 선택 항목 저장을 선택하고 덤프를 호출하면 됩니다. bin.

06:17.880 --> 06:21.300
여기부터는 이전 레슨과 동일합니다.

06:22.170 --> 06:23.370
그래서 저장했습니다.

06:23.370 --> 06:25.320
이제 닫아도 됩니다.

06:26.070 --> 06:31.380
이 기능을 중지한 다음 PE Studio로 열 수 있습니다.

06:33.000 --> 06:34.430
PE Studio를 사용합니다.

06:37.670 --> 06:41.360
그리고 덤프를 엽니다. 휴지통으로 이동하여 분석합니다.

06:45.170 --> 06:50.450
여기에서 이메일 비밀번호 복구 프로그램임을 확인할 수 있습니다.

06:54.950 --> 07:01.550
여기에서 버전으로 내려가면 NirSoft라는 회사에서 만든 것을 볼 수 있습니다.

07:01.970 --> 07:06.710
따라서 NirSoft는 이메일 복구 프로그램을 만드는 회사일 것입니다.

07:07.730 --> 07:15.530
따라서 여기에서 이 멀웨어 개발자가 직접 이메일 복구 프로그램을 만든 것이 아니라는 것을 추론할 수

07:15.530 --> 07:16.610
있습니다.

07:16.610 --> 07:24.860
대신, 그는 누군가의 이메일 복구 프로그램을 가져와서 암호화한 후 악성코드에

07:24.890 --> 07:30.530
내장된 암호화된 리소스로 삽입했습니다.

07:30.950 --> 07:33.470
이 영상은 여기까지입니다.

07:33.500 --> 07:35.180
시청해 주셔서 감사합니다.
