WEBVTT

00:00.510 --> 00:01.120
돌아온 것을 환영합니다.

00:01.140 --> 00:04.530
이 비디오에서는 드리덱스의 포장을 풀기 시작합니다.

00:04.650 --> 00:10.590
따라서 32비트 프로그램이라는 것을 알고 있으므로 x32 디버그를 실행하세요.

00:13.000 --> 00:19.510
그런 다음 옵션 환경설정으로 이동하여 시스템 중단점을 선택 취소하고 콜백을 선택 취소합니다.

00:19.630 --> 00:20.770
저장을 클릭합니다.

00:22.120 --> 00:24.790
그런 다음 트로이 목마를 엽니다.

00:30.600 --> 00:34.170
보시다시피 그는 당신의 진입 지점을 칠 것입니다.

00:34.320 --> 00:38.580
이제 세 개의 중단점을 설정하겠습니다.

00:39.240 --> 00:41.310
첫 번째 중단점은 가상의 중단점입니다.

00:46.690 --> 00:49.180
두 번째 중단점은 가상 보호입니다.

00:52.390 --> 00:55.990
세 번째 중단점은 선택 사항입니다.

00:56.020 --> 00:58.600
실제로는 내부에서 프로세스를 생성합니다.

00:59.200 --> 01:06.580
일반적으로 자체 주입 트로이 목마가 의심되는 경우 이를 삭제합니다.

01:11.490 --> 01:19.440
또는 다른 API를 호출하고 새 프로세스를 생성하여 실행할 것으로 의심되는 경우입니다.

01:19.800 --> 01:22.800
이제 엔터 키를 누르기만 하면 됩니다.

01:23.160 --> 01:30.570
그런 다음 중단점을 클릭하면 설정된 세 개의 중단점(잠금, 보호 및 프로세스 내부

01:30.690 --> 01:34.870
생성 w)을 확인하는 것을 볼 수 있습니다.

01:37.630 --> 01:44.680
이제 어떤 중단점을 설정해야 할지 모른다면 가능한 한 많이 설정하되,

01:44.710 --> 01:54.340
이미 몇 차례 시도해 본 적이 있다면 실제로 적중하거나 관찰 대상과 관련된 중단점으로만

01:54.340 --> 01:58.810
범위를 좁힐 수 있습니다.

01:59.740 --> 02:02.530
따라서 매크로 분석은 많은 시행착오를 겪어야 합니다.

02:02.920 --> 02:07.960
일반적으로 첫 번째 분석은 성공하지 못하기 때문에 시간이 많이 걸리는 과정입니다.

02:08.470 --> 02:12.130
그래서 많은 시행착오와 추측도 있었습니다.

02:12.550 --> 02:16.990
이제 이 트로이 목마를 실행해 보겠습니다.

02:17.410 --> 02:26.140
트로이 목마는 외부 프로세스를 생성하거나 자체 메모리의 일부를 덮어쓰고 거기서 실행하여 내부 프로세스를

02:26.170 --> 02:28.600
생성할 수 있습니다.

02:28.780 --> 02:34.840
이제 드리덱스는 자체 프로세스를 덮어쓰는 트로이 목마가 되었습니다.

02:35.680 --> 02:37.130
자신의 프로세스 메모리.

02:37.130 --> 02:41.660
이를 자가 주입 트로이 목마라고 합니다.

02:42.380 --> 02:45.120
자, 이제 가상 잠금에 도달했습니다.

02:45.170 --> 02:49.160
그리고 가상 A를 넘어가면

02:52.240 --> 02:52.630
이리 오세요.

02:54.270 --> 03:02.790
이제 이 호출을 넘어가서 X의 반환 할당 주소를 보면 덤프 주소에서 다음과 같이 할

03:02.820 --> 03:04.500
수 있습니다.

03:04.980 --> 03:07.350
다음 덤프를 마우스 오른쪽 버튼으로 클릭하세요.

03:08.340 --> 03:09.380
이제 비어 있습니다.

03:09.390 --> 03:11.040
지금 바로 시작하세요.

03:13.350 --> 03:18.720
그의 가상 아날로그는 다시 F8을 눌러 이걸 밟거나 클릭합니다.

03:18.720 --> 03:19.350
넘어가려면

03:22.770 --> 03:26.130
이 가상 자물쇠를 밟고 넘어갑니다.

03:26.310 --> 03:29.730
이제 세 개의 7과 네 개의 0을 할당합니다.

03:30.060 --> 03:32.040
완료 도구를 클릭합니다.

03:32.070 --> 03:34.110
이 내용을 자세히 살펴보겠습니다.

03:36.080 --> 03:39.140
이제 우리는 여전히 공백으로 내려가고 있습니다.

03:39.620 --> 03:51.260
이제 F9를 실행하면 이번에는 덤프에 있는 B 헤더 B 파일의 압축을 풀고 하나는 여전히 공백으로 덤프하는 것을 볼 수 있습니다.

03:52.220 --> 03:56.840
따라서 원한다면 지금 바로 삭제하고 분석할 수 있습니다.

03:56.960 --> 04:05.090
그러나 이것은 아마도 메인 exe가 아니기 때문에 더 진행할 것이지만, 덤프하기 전까지는 알 수 없을

04:05.120 --> 04:06.140
것입니다.

04:06.320 --> 04:11.570
그렇기 때문에 멀웨어 분석에 시행착오가 많은데, 어떤 것이 메인 B인지 알 수 없기

04:11.570 --> 04:14.720
때문에 모든 것을 덤프해야 할 수도 있습니다.

04:15.050 --> 04:18.380
하지만 이미 이 작업을 해봤기 때문에 이것이 주된 경로가 아니라는 것을 알고 있습니다.

04:18.770 --> 04:22.970
하지만 이 트로이 목마를 처음 접하는 사용자라면 이 사실을 모를 것입니다.

04:22.970 --> 04:24.830
그러니 이걸 버리세요.

04:25.190 --> 04:29.120
이제 계속해서

04:30.860 --> 04:32.260
물 위로 발을 내딛습니다.

04:32.720 --> 04:34.070
그럼 어디 보자.

04:41.430 --> 04:47.520
다시 설정하면 이제 이 지역 메모리가 할당됩니다.

04:48.030 --> 04:50.900
이제 여기로 이동하여 완료 트리를 클릭합니다.

04:50.910 --> 04:55.350
덤프 트리에서 마우스 오른쪽 버튼을 클릭하고 덤프에서 팔로우를 클릭하여 이 항목을 팔로우하겠습니다.

04:56.340 --> 05:00.870
이제 덤프 트리가 비어 있는 것을 볼 수 있습니다.

05:01.890 --> 05:05.130
그리고 이제 우리는 계속 달리고 있습니다.

05:09.770 --> 05:10.190
알겠습니다.

05:10.610 --> 05:12.410
이제 로저 프로텍트에 접속했습니다.

05:13.070 --> 05:16.250
이제 이미 그렇게 되었습니다.

05:16.460 --> 05:21.320
중단점을 클릭하면 어떤 잠금에 몇 번 걸렸는지 확인할 수 있습니다.

05:21.710 --> 05:22.790
세 번.

05:22.910 --> 05:23.350
알겠습니다.

05:23.360 --> 05:30.560
따라서 현재로서는 언제가 적절한 덤프 시점인지 알 수 없으며, 덤프해야 할 메인 메모리가

05:30.560 --> 05:33.500
어디에 있는지 알 수 없습니다.

05:33.770 --> 05:39.110
그렇기 때문에 첫 번째 라운드 또는 처음 몇 라운드에서는 이 작업을 수행합니다.

05:39.380 --> 05:40.940
아직 아무것도 버리지 않았습니다.

05:41.360 --> 05:47.360
어떤 잠금 장치를 몇 번 누르고, 어떤 보호 장치를 몇 번 누르는지 세기만 하면 됩니다.

05:48.080 --> 05:53.720
자, 이제 카운트, 즉 열거형을 얻기 위한 동작을 진행합니다.

05:54.680 --> 05:56.810
그래서 이제 가상 보호 기능을 사용하게 되었습니다.

05:56.960 --> 06:09.240
그래서 가상 보호로 이동하고, 다시 보호 보기로 이동하여 매개 변수를 스택에 푸시하도록 하겠습니다.

06:10.260 --> 06:12.720
이제 두 번째 매개 변수를 살펴봅니다.

06:12.870 --> 06:20.340
두 번째 매개변수는 권한을 변경할 메모리 내 위치입니다.

06:20.340 --> 06:23.670
따라서 이 경우에는 5 3개와 0 3개가 뒤따릅니다.

06:24.330 --> 06:26.100
그래서 만약 우리가

06:27.800 --> 06:29.930
그리고 우리는 계속 달리고 있습니다.

06:31.480 --> 06:34.210
이제 넘어갈 수 있습니다.

06:34.390 --> 06:36.670
제가 이 작업을 했으니 시간을 절약해 드리겠습니다.

06:38.740 --> 06:40.510
하지만 처음에는 알게 될 것입니다.

06:41.230 --> 06:46.080
따라서 모든 작업을 수행하되 이 과정을 짧게 줄여야 합니다.

06:46.090 --> 06:49.450
이제 다시 제품과 함께 사용할 수 있습니다.

06:49.450 --> 06:53.020
이번 두 번째 매개변수는 바로 이 메모리 영역입니다.

06:53.470 --> 06:56.350
이제 여기에는 1 뒤에 0이 일곱 개 있습니다.

06:56.560 --> 07:01.810
마우스 오른쪽 버튼을 클릭하고 메모리 맵에서 따라갈 수 없으므로 메모리 맵에서 찾아보세요.

07:02.860 --> 07:03.300
바로 여기.

07:03.310 --> 07:03.930
그는 나를 따라왔어요.

07:03.960 --> 07:07.390
D-word가 아닌 이 주소를 팔로우하고 있을 수 있습니다.

07:07.540 --> 07:09.040
하지만 우리는 D라는 단어를 살펴보고자 합니다.

07:09.310 --> 07:13.240
그래서 메모리 맵을 따라갑니다.

07:14.820 --> 07:17.880
1 뒤에 0이 일곱 개 있습니다.

07:18.240 --> 07:18.870
이쪽입니다.

07:19.200 --> 07:21.840
즉, 이미 작성되어 있다는 뜻입니다.

07:21.870 --> 07:23.700
무언가를 작성하려고 합니다.

07:24.460 --> 07:25.560
자, 어디 보자.

07:25.560 --> 07:26.760
이 기능은 무엇을 하나요?

07:27.360 --> 07:30.060
이 부분을 넘어 다시 한 번 살펴봅시다.

07:31.880 --> 07:34.920
그래서 W 플래그를 제거했습니다.

07:34.970 --> 07:37.190
즉, 이전에는 쓰기 가능했습니다.

07:37.220 --> 07:39.590
이제 더 이상 쓸 수 없습니다.

07:40.150 --> 07:40.460
Go.

07:40.470 --> 07:43.460
이는 코드 언패킹이 완료되었음을 의미합니다.

07:43.790 --> 07:46.020
일반적으로는 그렇습니다.

07:46.040 --> 07:49.100
그래서 쓰기 가능한 플래그를 제거합니다.

07:49.520 --> 07:53.360
따라서 이 시점에서 포장을 다 풀었다고 결론을

07:55.730 --> 07:58.250
내릴 수 있습니다.

07:58.460 --> 07:59.300
하지만.

08:00.730 --> 08:04.510
이 메모리 영역에서는 1 뒤에 7개의 0이 이어집니다.

08:04.900 --> 08:09.720
따라서 1 다음에 오는 7 0은 중요한 위치인 것 같습니다.

08:09.730 --> 08:12.130
따라서 우리는 그것을 따를 수 있습니다.

08:13.100 --> 08:14.870
1 뒤에 7개의 0이 이어집니다.

08:16.190 --> 08:19.010
오른쪽 클릭으로 따라갈 수 있습니다.

08:19.010 --> 08:20.900
카안담의 딜러를 팔로우하세요.

08:22.650 --> 08:24.780
치료할 수 있을지도 모르죠.

08:24.810 --> 08:25.830
네, 사용할 수 있습니다.

08:25.830 --> 08:26.880
원한다면 세 번째입니다.

08:27.240 --> 08:29.190
캘린더에 있는 것을 따르세요.

08:29.910 --> 08:34.800
보시다시피 이 메모리 영역에는 MC 헤더와 문자열이 있습니다.

08:34.800 --> 08:41.670
이 프로그램은 다크 모드에서 실행할 수 없으므로 분명히 여기 이 메모리 영역에 무언가를 압축

08:41.670 --> 08:43.140
해제했습니다.

08:43.410 --> 08:46.020
이제 이미 읽기만 가능합니다.

08:46.620 --> 08:54.000
더 이상 쓸 수 없지만 포장 풀기가 완료되었는지 여부가 확실하지 않으므로 지금 덤프하고 싶지 않습니다.

08:54.570 --> 09:04.050
따라서 예를 들어 실행이 중지되거나 모든 중단점에서 중단되거나 예외가

09:04.350 --> 09:10.260
발생할 때까지 계속 실행합니다.

09:10.740 --> 09:16.140
지금 보이는 중단점을 살펴보면 가상 잠금에 세 번, 가상 보호에 두 번

09:16.140 --> 09:17.640
도달했습니다.

09:17.640 --> 09:23.520
이제 몇 번이나 계속 실행했는지 확인해 보겠습니다.

09:23.520 --> 09:25.050
다시 가상 보호에 도달합니다.

09:25.470 --> 09:32.580
그래서 가상 보호로 넘어가서 가상 보호로 이동합니다.

09:35.190 --> 09:41.490
이제 이 메모리 영역에서 계속해서 무언가를 풀고 있는 것을 볼 수 있습니다.

09:41.760 --> 09:42.690
같은 지역.

09:42.690 --> 09:48.960
1에서 시작하여 0이 7개로 이어지다가 이제는 1에서 포장을 풀고 0이 3개로

09:48.960 --> 09:50.340
끝납니다.

09:50.370 --> 09:52.620
같은 메모리 영역, 단지 연속일 뿐입니다.

09:52.650 --> 09:54.630
아직 포장을 다 풀지 않았다는 뜻입니다.

09:54.660 --> 09:55.830
지금도 계속되고 있습니다.

09:56.490 --> 09:59.640
이제 이걸 따라가면 됩니다.

09:59.880 --> 10:03.930
아마도 이걸 왼쪽으로 당겼을 겁니다.

10:04.740 --> 10:07.260
이제 세 번째 덤프를 이어갑니다.

10:09.330 --> 10:09.660
하지만.

10:11.700 --> 10:13.610
원하신다면 그렇게 하셔도 되지만, 그럴 필요는 없다고 생각합니다.

10:13.620 --> 10:17.670
아직 포장을 다 풀지 않았으니 계속 실행해 보겠습니다.

10:20.670 --> 10:21.900
이제 넘어가 보겠습니다.

10:25.440 --> 10:26.700
다시 보호할 수 있습니다.

10:27.570 --> 10:27.930
다시 말하지만.

10:27.930 --> 10:28.590
보호하시겠습니까?

10:30.570 --> 10:30.900
알겠습니다.

10:30.900 --> 10:32.760
이번에는 두 번째 매개 변수를 살펴봅니다.

10:32.760 --> 10:34.470
아직 짐을 다 풀지 못했습니다.

10:34.830 --> 10:36.240
동일한 메모리 영역.

10:36.240 --> 10:38.910
우리는 1에서 시작하여 7로 시작했습니다.

10:39.240 --> 10:40.920
그래서 우리는 무엇이든 해야 합니다.

10:40.920 --> 10:41.910
그냥 끝내세요.

10:41.910 --> 10:42.600
포장 풀기.

10:44.070 --> 10:45.000
뒤로 물러서세요.

10:47.370 --> 10:51.480
그리고 여전히 덕목 보호를 실행합니다.

10:52.230 --> 10:53.220
뒤로 물러서세요.

10:54.300 --> 10:55.020
미덕으로 이동합니다.

10:55.020 --> 10:55.470
보호.

10:56.310 --> 10:57.000
미덕으로 이동합니다.

10:57.000 --> 10:57.450
보호.

11:01.340 --> 11:07.970
여전히 동일한 메모리 영역이지만 더 높은 주소 범위인 283330에 있는 것을 볼 수 있습니다.

11:08.360 --> 11:10.490
그래서 아직 포장을 다 풀지 못했습니다.

11:10.490 --> 11:14.810
따라서 압축을 풀고 가상 프로텍트를 계속 실행합니다.

11:15.800 --> 11:18.890
따라서 이 메모리 영역이 매우 중요한 것 같습니다.

11:18.920 --> 11:26.960
여기서부터 시작되는 원래 메모리로 계속 포장을 풀면서 0이 7개가 이어집니다.

11:28.040 --> 11:30.230
그래서 우리는 계속 넘어갑니다.

11:34.760 --> 11:36.230
이제 이걸 보세요.

11:36.240 --> 11:40.200
여전히 하나부터 시작합니다.

11:40.200 --> 11:42.780
그리고 이번에는 29000입니다.

11:43.110 --> 11:45.450
아직 포장을 다 풀지 않았다는 뜻입니다.

11:45.450 --> 11:53.100
그래서 우리는 계속해서 F9, F9를 누르고 Virtualprotect에 몇 번이나 부딪히는지 계속 살펴봅니다.

11:55.190 --> 11:58.040
자, 이제 이쪽으로 오세요.

11:59.930 --> 12:00.860
끝까지 실행하세요.

12:02.600 --> 12:07.040
이제 첫 번째 기회 예외가 있음을 알 수 있습니다.

12:07.280 --> 12:07.760
보이시죠?

12:08.330 --> 12:11.480
포장을 다 풀었다는 뜻입니다.

12:11.750 --> 12:13.640
이제 집계가 끝났습니다.

12:13.730 --> 12:15.020
중단점을 살펴보세요.

12:16.580 --> 12:21.170
물고문은 6회 허용되며, 3회는 허용되지 않습니다.

12:21.170 --> 12:22.400
이 점에 유의하세요.

12:22.550 --> 12:25.670
메모장을 열어 적어 두세요.

12:27.710 --> 12:28.640
메모장을 엽니다.

12:31.220 --> 12:32.480
그리고 적어 두세요.

12:35.600 --> 12:39.530
Virtual이 세 번 맞았습니다.

12:41.180 --> 12:45.530
가상 보호가 6번 공격당했습니다.

12:46.520 --> 12:50.510
그리고 마지막으로 공격당한 API는 가상 잠금 기능이었습니다.

12:53.060 --> 12:54.650
이것이 단서입니다.

12:54.680 --> 13:00.800
가상 잠금이 6번 눌러졌다는 것은 압축 풀기가 완료되었음을 의미하며, 이 메모리

13:01.040 --> 13:04.900
영역에서 1부터 7까지 0을 덤프할 수 있습니다.

13:04.910 --> 13:08.390
따라서 이것은 언제 덤프해야 하는지 알 수 있는 간단한 요령입니다.

13:09.140 --> 13:13.340
이제 다음으로 해야 할 일은 모든 것을 종료하는 것입니다.

13:13.880 --> 13:23.390
그리고 이것은 가상 머신 외부의 외부 파일로 복사하거나 펜과 종이를 사용하여 종이에 복사해야

13:23.540 --> 13:30.320
합니다. 왜냐하면 지금쯤이면 멀웨어가 가상 머신을 감염시켰을

13:31.070 --> 13:38.060
수도 있고, 가상 머신을 재설정할 것이기 때문입니다.

13:38.540 --> 13:42.890
이제 가상 머신을 초기화해 보겠습니다.

13:43.550 --> 13:48.650
그럼 모든 것을 종료하고 다음 동영상에서 뵙겠습니다.
