WEBVTT

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

00:02.290 --> 00:13.020
이전 비디오에서 트로이 목마가 은밀한 위치로 스스로 복사본을 만드는 것을 발견한 곳에서 멈췄습니다.

00:13.030 --> 00:19.720
따라서 앞으로 프로젝트는 은밀한 위치이기 때문에 여기에서 확실히 실행될

00:19.720 --> 00:25.590
것이며, 모든 힘을 발휘하기 전에 그 경로를 확인할 것입니다.

00:25.600 --> 00:30.520
따라서 원본이 아닌 여기서부터 분석하는 것이 좋습니다.

00:30.700 --> 00:40.060
이제 Xpg에서 이 원래 분석을 중지하고 대신 다른 위치를 열겠습니다.

00:40.690 --> 00:44.530
즉, Xpg를 사용하여 이를 분석할 것입니다.

00:44.530 --> 00:55.720
경로 복사본을 선택한 다음 Xpg로 이동한 다음 여기에 경로를 붙여넣고 Enter 키를 누른 다음

00:55.720 --> 00:58.420
이 새 파일을 엽니다.

01:01.530 --> 01:07.200
이제 첫 번째 세션에서와 동일한 중단점을 설정하겠습니다.

01:07.770 --> 01:18.030
따라서 가상 잠금에 중단점을 설정하고 Enter 키를 누른 다음 프로세스 내부 생성에 중단점을 설정하고

01:18.030 --> 01:18.720
프로세스

01:22.350 --> 01:26.850
메모리 쓰기에 중단점을 설정하고 Enter

01:29.850 --> 01:40.380
키를 누른 다음 가상 메모리 중단점을 설정하고 가상 메모리에 중단점을 하나 더 추가하고 가상 메모리를 작성해

01:40.980 --> 01:43.710
보겠습니다.

01:44.100 --> 01:50.070
이제 이 빈 쓰기 가상 메모리는 쓰기 프로세스 메모리와 동일하지만 더 낮은 수준입니다.

01:50.070 --> 01:54.390
그리고 보통은 놓치는 것이 없는지 확인하기 위해 이 기능도 사용합니다.

01:54.780 --> 02:01.600
따라서 Enter 키를 누른 다음 중단점 탭을 클릭하여 중단점 네 개가 모두 있는지 확인합니다.

02:02.380 --> 02:06.790
이제 돌아가서 분석을 계속할 수 있습니다.

02:06.910 --> 02:15.730
따라서 F9 또는 이 버튼 실행 버튼을 누르고 첫 번째 중단점 가상 할당에 도달하도록 합니다.

02:16.240 --> 02:22.390
이제 F8을 누르거나 단계를 밟으면 가상으로 이동한 다음 이 단계를

02:27.250 --> 02:28.810
밟습니다.

02:30.060 --> 02:36.650
그리고 X를 보고 숫자 1을 선택한 다음 아래쪽의 숫자 1을 따라갑니다.

02:36.660 --> 02:38.010
마우스 오른쪽 버튼을 클릭하고 팔로우하면 완료됩니다.

02:38.700 --> 02:39.810
이제 비어 있습니다.

02:40.380 --> 02:45.000
F9를 클릭하거나 가상 잠금 버튼을 다시 클릭합니다.

02:45.040 --> 02:46.050
다시 단계를 밟습니다.

02:46.980 --> 02:51.120
따라서 첫 번째 세션과 동일하게 작동합니다.

02:54.840 --> 02:55.140
알겠습니다.

02:55.170 --> 02:59.720
이 가상 자물쇠를 밟고 이 X를 보세요.

02:59.730 --> 03:04.470
이제 2번을 클릭하면 1번이 셸코드로 채워진 것을 확인할 수 있습니다.

03:06.180 --> 03:09.720
두 번째 댐을 클릭한 다음 다음 댐을 마우스 오른쪽 버튼으로 클릭합니다.

03:10.410 --> 03:13.350
따라서 현재 2번은 비어 있습니다.

03:13.380 --> 03:14.550
그러니 실행을 클릭합니다.

03:15.500 --> 03:18.530
이제 두 번째 번호는 셸코드로 채워졌습니다.

03:19.460 --> 03:24.410
여기 이 셸코드, 메모리 내 이 위치, 그리고 이 위치가 바로 그것입니다.

03:24.410 --> 03:28.600
메모리는 C 32와 33이 동일합니다.

03:28.610 --> 03:36.470
따라서 트로이 목마가 최종 실행 파일의 압축을 풀기 위해 사용하는 하나의 큰 셸코드와 같이

03:36.470 --> 03:39.320
연속적인 것과 같습니다.

03:40.250 --> 03:42.620
이제 다시 Virtualalloc을 실행합니다.

03:42.620 --> 03:43.880
그래서 우리는 그것을 극복합니다.

03:46.880 --> 03:55.810
가상으로 이동한 다음 이 가상 잠금 위로 이동하여 이번에는 이 주소의 할당을 확인합니다.

03:55.820 --> 04:03.110
이제 이 세 번째 점프를 선택한 다음 3번 덤 다음에 있는 이 주소를 마우스 오른쪽 버튼으로 클릭합니다.

04:03.470 --> 04:05.300
따라서 현재 덤 3은 비어 있습니다.

04:05.330 --> 04:06.110
그러니 실행하세요.

04:09.210 --> 04:14.400
이제 자유롭게 실행되며 이제 다시 가상이 됩니다.

04:15.580 --> 04:15.850
Away.

04:19.070 --> 04:19.620
요약.

04:20.930 --> 04:30.440
이제 이 호출을 가상 할당으로 넘어가면 여기에 새로운 공기 주소와 네 개의 0이 표시됩니다.

04:30.650 --> 04:35.750
네 번째 완료를 클릭한 다음 이 팔로우 인 덤프를 마우스 오른쪽 버튼으로 클릭합니다.

04:36.650 --> 04:38.750
이제 네 번째 덤프가 비어 있습니다.

04:39.110 --> 04:39.980
실행을 클릭합니다.

04:42.090 --> 04:42.810
뒤로 물러서세요.

04:42.810 --> 04:48.090
따라서 멀웨어 분석의 포장을 푸는 작업의 일부는 VirtualBox를 계속 따라가는 것입니다.

04:50.150 --> 04:55.130
그리고 해당 위치에서 무엇이 풀리고 있는지 확인합니다.

04:55.280 --> 05:01.580
그래서 다시 버추얼을 많이 눌렀는데 이번에는 일부 실행 파일로 다운폴이 채워진 것을 확인했습니다.

05:01.610 --> 05:04.910
64비트 실행 파일임을 알 수 있습니다.

05:06.690 --> 05:08.520
그리고 검트리는 여전히 비어 있습니다.

05:09.090 --> 05:11.070
이제 다시 가상 잠금을 누릅니다.

05:11.100 --> 05:12.210
넘어가 보겠습니다.

05:15.210 --> 05:17.220
최종 실행 파일을 찾고 있습니다.

05:18.180 --> 05:19.350
이제 다시 시작하겠습니다.

05:21.780 --> 05:22.260
알겠습니다.

05:22.260 --> 05:29.360
그리고 이번에는 이 메모리 영역에 6개의 D와 4개의 0을 할당했습니다.

05:29.370 --> 05:36.210
5번 아래로 이동한 다음 마우스 오른쪽 버튼을 클릭한 다음 5번 아래로, 아래로, 아래로 따라갑니다.

05:36.570 --> 05:37.710
이제 실행에 들어갑니다.

05:38.550 --> 05:39.690
가상 할당에 도달합니다.

05:39.690 --> 05:43.050
이번 5번 아래에는 실행 파일이 있습니다.

05:43.170 --> 05:48.720
매직 헤더, 매직 바이트 및 문자열을 볼 수 있습니다.

05:48.720 --> 05:50.700
이 프로그램은 Dos 모드에서 실행할 수 없습니다.

05:50.850 --> 05:59.820
따라서 원한다면 지금 이것을 마우스 오른쪽 버튼으로 클릭한 다음 메모리 맵을 따르고 여기로 이동한 다음 마우스 오른쪽

05:59.820 --> 06:05.490
버튼을 클릭한 다음 파일로 메모리 덤프를 클릭하여 덤프할 수 있습니다.

06:05.640 --> 06:14.340
그런 다음 파일에 메모리를 덤프하고 나면 pbair를 사용하여 매핑 해제를 수정한 다음 Ida로 분석할 수 있습니다.

06:15.000 --> 06:16.880
좋아요, 이건 하나입니다.

06:16.990 --> 06:18.670
하나는 덤프할 수 있다는 것입니다.

06:19.210 --> 06:19.510
알겠습니다.

06:19.510 --> 06:22.090
그렇게 하고 싶었다면 그렇게 하셨을 거라고 믿습니다.

06:22.180 --> 06:27.910
하지만 이 동영상에서는 다른 실행 파일이 어떤 작업을 수행하는지 살펴보겠습니다.

06:28.240 --> 06:29.890
이제 클릭합니다.

06:30.220 --> 06:31.990
이제 다시 가상으로 인사드립니다.

06:32.200 --> 06:34.780
그래서 우리는 넘어갑니다.

06:45.120 --> 06:48.450
이제 다시 가상으로 돌아가 보겠습니다.

06:48.450 --> 06:53.610
이제 다시 시작하여 이번에는 이 메모리 영역을 할당합니다.

06:54.480 --> 07:01.890
따라서 마우스 오른쪽 버튼을 클릭하면 이 메모리 영역이 아직 할당되지 않았기 때문에 따라갈 수 없습니다.

07:02.670 --> 07:04.020
그래서 다시 달려갑니다.

07:05.730 --> 07:07.710
다시 한 번 넘어갑니다.

07:12.460 --> 07:12.720
그렇죠?

07:12.720 --> 07:14.190
가상 잠금을 다시 호출하겠습니다.

07:15.630 --> 07:15.960
알겠습니다.

07:15.960 --> 07:20.010
이번에는 이 메모리 영역을 할당합니다.

07:20.040 --> 07:20.910
마우스 오른쪽 버튼을 클릭합니다.

07:21.090 --> 07:22.620
이번에는 덤프에서 팔로우할 수 있습니다.

07:22.830 --> 07:28.770
따라서 다섯 개의 덤프를 모두 사용했으므로 1번 덤프로 돌아갑니다.

07:29.340 --> 07:35.040
그리고 여기 1번을 따라가서 덤프 팔로우를 마우스 오른쪽 버튼으로 클릭합니다.

07:35.880 --> 07:40.890
따라서 이 덤프는 현재 이 주소에 1번이 있고 그 뒤에 0이 7개가 있습니다.

07:40.920 --> 07:42.940
현재 비어 있습니다.

07:43.090 --> 07:45.310
그럼 직접 달려가서 어떤 일이 일어나는지 살펴봅시다.

07:45.430 --> 07:47.980
그리고 이번에는 그것을 채웠습니다.

07:47.980 --> 07:49.720
이 모든 코드가 있습니다.

07:51.190 --> 07:52.310
이것은 실행 파일입니다.

07:52.360 --> 07:56.110
이 문자열 뒤에 오는 매직바이트 MSG를 볼 수 있습니다.

07:56.110 --> 07:58.960
이 프로그램은 Dos 모드에서 실행할 수 없습니다.

07:59.530 --> 08:01.060
이제 이걸 버리러 가겠습니다.

08:01.390 --> 08:03.970
포장을 완전히 풀었는지 여부는 확실하지 않습니다.

08:04.000 --> 08:10.390
헤더만 볼 수 있으므로 완전히 압축이 풀렸는지 확인하기 위해 이 코드가 실행될

08:10.390 --> 08:12.610
때까지 계속 실행합니다.

08:12.610 --> 08:20.080
이제 프로세스 해커를 열어 다른 프로세스에서 이 코드가 실행되는지 확인해 보겠습니다.

08:20.650 --> 08:30.340
여기에서 프로세스 해커를 열고 유틸리티로 이동하여 프로세스 해커를 클릭합니다.

08:35.670 --> 08:39.130
그런 다음 추가 프로세스가 생성되었는지 확인합니다.

08:39.150 --> 08:47.700
따라서 현재 트로이 목마는 추가 프로세스를 생성하지 않았으며 트릭봇은 SVC 호스트라는 프로세스를 생성한

08:48.030 --> 08:52.650
다음 코드의 일부를 주입하는 것으로 알려져 있습니다.

08:52.680 --> 08:54.210
SVC 내부의 코드입니다.

08:54.240 --> 08:54.750
호스트.

08:55.020 --> 08:58.370
그렇기 때문에 우리는 계속 달려갈 것입니다.

08:58.390 --> 09:05.610
이 코드는 아마도 여기 SVC 호스트 내부에 삽입될 것이며, 나중에 살펴볼 것입니다.

09:05.880 --> 09:07.600
그래서 우리는 지금 덤핑을 하지 않습니다.

09:07.620 --> 09:11.130
먼저 포장을 풀 때까지 기다립니다.

09:11.130 --> 09:17.670
그리고 언제 언패킹이 완료되었는지, 언제 SVC 내부의 가상 메모리에 쓰기가 시작되는지 어떻게

09:17.670 --> 09:18.870
알 수 있을까요?

09:18.870 --> 09:20.740
호스트 그렇게 알고 있습니다.

09:20.760 --> 09:23.640
그래서 현재도 계속 달리고 있습니다.

09:24.910 --> 09:27.400
그래서 이걸로 넘어갈 수 있습니다.

09:34.200 --> 09:40.590
자, 이제 다시 이 단계로 돌아와서 이번에는 동일한 메모리 영역으로 계속 압축을 풀고

09:40.590 --> 09:41.700
있습니다.

09:42.240 --> 09:45.720
1 뒤에 7개의 0이 뒤따르지만 주소가 더 낮습니다.

09:46.690 --> 09:52.120
자, 이제 여기서 계속 포장을 풀어서 덤프에서 이 내용을 따라갈 필요가 없도록 하겠습니다.

09:52.120 --> 09:58.690
하지만 원하는 경우 팔로우할 수 있으며, 마우스 오른쪽 버튼을 클릭한 다음 2번 덤프에서 팔로우할 수 있습니다.

09:58.720 --> 09:59.410
어느 쪽인가요?

09:59.800 --> 10:00.850
이제 실행합니다.

10:01.300 --> 10:07.870
그리고 실제로 이 메모리 영역에 여기에서 시작하여 아래로 내려가서 계속되는 추가 코드를

10:07.870 --> 10:09.640
압축 해제했습니다.

10:09.640 --> 10:10.990
동일한 메모리 영역.

10:11.470 --> 10:13.420
그리고 바우처를 다시 많이 사용한다면.

10:17.050 --> 10:18.040
그럼 뛰어보겠습니다.

10:18.430 --> 10:19.450
계속합니다.

10:20.800 --> 10:22.300
자, 이제 이 통화를 넘어가 보겠습니다.

10:24.130 --> 10:31.120
그리고 이번에는 이 주소에서 여전히 동일한 메모리 영역으로 압축을 풀고 있습니다.

10:31.120 --> 10:33.250
따라서 이 내용을 따르세요.

10:33.250 --> 10:38.380
3번 아래로 내려가서 3번을 선택하고 마우스 오른쪽 버튼을 클릭한 다음 3번 덤프에 따라갑니다.

10:38.980 --> 10:40.630
이제 여기로 이동합니다.

10:41.290 --> 10:42.220
가자.

10:42.850 --> 10:45.100
그리고 이번에는 포장을 풀었습니다.

10:45.840 --> 10:52.020
여기에서부터 동일한 메모리 영역에 추가 코드를 계속 압축 해제합니다.

10:52.260 --> 10:53.820
여기서 계속합니다.

10:54.180 --> 10:55.650
여기서 계속합니다.

10:55.740 --> 11:03.390
그리고 이것이 로드, 로드, 로드, 커널32 등을 시도하는 라이브러리임을 알 수 있습니다.

11:03.990 --> 11:07.420
이제 포장 풀기가 거의 끝난 것 같습니다.

11:07.440 --> 11:08.400
일단 이걸 보면

11:08.400 --> 11:10.500
어쨌든 계속 진행하겠습니다.

11:11.290 --> 11:12.430
가상을 넘어서는 단계.

11:19.610 --> 11:22.310
자, 이제 이걸 호출해서 어떤 기능을 하는지 살펴봅시다.

11:23.150 --> 11:30.680
이제 계속 압축을 풀고 있으므로 덤프 4에서 압축을 풀고 마우스 오른쪽 버튼을 클릭합니다.

11:31.490 --> 11:36.440
이제 같은 메모리 영역에서 4번 아래쪽부터 시작합니다.

11:36.830 --> 11:38.750
그리고 실행해서 어떤 일이 일어나는지 살펴봅시다.

11:39.650 --> 11:40.050
알겠습니다.

11:40.100 --> 11:40.610
아직 지켜보고 있습니다.

11:42.500 --> 11:43.370
뒤로 물러서세요.

11:44.510 --> 11:44.960
점프.

11:48.850 --> 11:50.110
스위탈라를 뒤집습니다.

11:50.860 --> 11:53.890
이번에는 여전히 이 메모리 영역에 포장을 풀고 있습니다.

11:54.220 --> 11:57.430
이 덤프 파일을 클릭하세요.

11:57.460 --> 11:58.060
마우스 오른쪽 버튼을 클릭합니다.

11:58.390 --> 11:59.590
다음 덤프.

12:01.180 --> 12:02.890
아직 아무것도 없으니 그냥 실행하세요.

12:03.370 --> 12:03.670
아.

12:03.910 --> 12:04.810
이번에도 마찬가지입니다.

12:04.810 --> 12:05.480
무언가를 버리세요.

12:05.560 --> 12:08.830
5-4는 아직 비어 있죠?

12:08.860 --> 12:11.200
그래서 여전히 포장을 풀고 있는 중입니다.

12:11.350 --> 12:16.540
이 주소의 첫 번째 덤프에서 시작된 포장 풀기 프로세스는 여기에서 계속됩니다.

12:16.540 --> 12:18.190
같은 주소, 같은 범위.

12:18.310 --> 12:19.510
하지만 더 아래로 내려가세요.

12:19.690 --> 12:20.890
여기에서 계속하세요.

12:20.920 --> 12:21.970
더 아래로 내려가세요.

12:21.970 --> 12:22.800
동일한 범위.

12:22.810 --> 12:24.010
여기에서 계속하세요.

12:25.000 --> 12:26.530
여기에서 계속하세요.

12:27.500 --> 12:32.120
동일한 메모리 영역에서 1로 시작하여 여기에 7개의 0이 있습니다.

12:32.300 --> 12:32.690
알겠습니다.

12:32.690 --> 12:33.980
그래서 이것은 흥미롭습니다.

12:34.100 --> 12:35.420
이를 따라해 보겠습니다.

12:35.450 --> 12:39.680
해당 메모리 영역에서 또 무엇이 압축 해제되는지 확인하세요.

12:39.980 --> 12:44.090
이제 여기로 넘어와서 통화로 이동해 보겠습니다.

12:44.540 --> 12:45.980
이 버탈라를 밟아보세요.

12:46.370 --> 12:52.280
이번에는 완전히 다른 기억의 영역이기 때문에 포장을 다 풀었다고 생각합니다.

12:52.460 --> 12:54.770
여섯 E 그러니 무시해도 됩니다.

12:55.130 --> 12:56.990
이제 우리는 계속 달리고 있습니다.

12:56.990 --> 13:00.680
이 화면이 나타날 때까지 F9를 클릭하세요.

13:01.370 --> 13:03.330
이것이 바로 우리가 찾고 있는 것입니다.

13:03.350 --> 13:07.730
이 표시가 나타나면 포장을 다 풀었다는 뜻입니다.

13:07.910 --> 13:15.110
따라서 압축 풀기 코드는 이 메모리 영역에 0이 하나 있고 그 뒤에 0이 7개, 이것,

13:15.530 --> 13:19.980
이것, 마지막으로 이것까지 있습니다.

13:20.000 --> 13:24.500
이것이 우리가 여기서부터 시작한 마지막 메모리 영역입니다.

13:24.530 --> 13:25.810
같은 지역.

13:25.820 --> 13:27.360
그래서 포장을 다 풀었습니다.

13:27.670 --> 13:29.610
그래서 이렇게 부르는 것입니다.

13:29.640 --> 13:40.980
이 API를 사용하여 이 SPC 호스트를 생성한 다음 이 악성 코드의 의도대로 이 SPC 호스트에

13:40.980 --> 13:45.840
이 언팩 코드를 작성합니다.

13:47.040 --> 13:51.240
이제 포장을 완전히 풀었으니 점프할 준비가 되었습니다.

13:51.420 --> 14:00.270
이제 안전하게 마우스 오른쪽 버튼으로 클릭한 다음 메모리 맵에서 이 위치로 내려가서 여기를 마우스 오른쪽

14:00.270 --> 14:02.340
버튼으로 클릭합니다.

14:02.340 --> 14:03.390
그리고 나서

14:04.770 --> 14:05.970
파일에 저장할 메모리입니다.

14:07.430 --> 14:17.390
이제 데스크톱 바탕화면에 덤프하고 Trickbot 트로이목마 폴더로 이동한 다음 여기에 저장하면 됩니다.

14:18.750 --> 14:27.750
이제 메인 트릭봇의 실행 파일 중 하나의 압축을 풀고 SDC에 주입하려고 하는 파일을 성공적으로

14:27.750 --> 14:30.080
압축을 풀었습니다.

14:30.120 --> 14:30.630
호스트.

14:30.660 --> 14:36.490
따라서 이 프로세스 해커로 이동하면 SDC가 시작되는 것을 볼 수 있습니다.

14:36.540 --> 14:41.280
호스트 그런 다음 이 파일을 해당 프로세스 메모리에 복사합니다.

14:41.790 --> 14:43.740
이제 직접 실행해 보겠습니다.

14:46.060 --> 14:46.450
알겠습니다.

14:46.470 --> 14:47.860
여기가 비어 있는 것이 보이시죠?

14:47.860 --> 14:48.880
가상 메모리.

14:49.330 --> 14:54.370
이것을 가상 메모리에 기록합니다.

14:54.850 --> 14:56.170
여기로 돌아와서 확인하세요.

14:56.560 --> 15:00.140
지구 이사회에서 SVC 호스트가 시작되었습니다.

15:00.850 --> 15:01.170
보이시죠?

15:01.730 --> 15:05.970
이제 이것을 SVC에 기록합니다.

15:05.980 --> 15:08.140
호스트 시작하겠습니다.

15:09.550 --> 15:10.150
똑같습니다.

15:10.150 --> 15:11.590
계속 작성 중입니다.

15:11.620 --> 15:12.940
여기로 돌아가서 확인하세요.

15:13.870 --> 15:14.650
다시 실행합니다.

15:18.190 --> 15:18.970
다시 실행합니다.

15:20.170 --> 15:20.660
알겠습니다.

15:20.680 --> 15:26.890
이 추가 기능은 현재 종료되었으므로 프로세스 해커를 만나러 오시면 됩니다.

15:29.970 --> 15:31.950
종료되었죠?

15:31.950 --> 15:41.070
이제 모든 것을 닫고 다음 동영상에서 여기 폴더에 저장한

15:41.070 --> 15:47.370
덤프 파일을 살펴볼 수 있습니다.

15:47.370 --> 15:48.090
이거요.

15:48.330 --> 15:49.530
감사합니다.

15:49.530 --> 15:50.760
다음 편에서 뵙겠습니다.
