돌아온 것을 환영합니다.
이 비디오에서는 드리덱스의 포장을 풀기 시작합니다.
따라서 32비트 프로그램이라는 것을 알고 있으므로 x32 디버그를 실행하세요.
그런 다음 옵션 환경설정으로 이동하여 시스템 중단점을 선택 취소하고 콜백을 선택 취소합니다.
저장을 클릭합니다.
그런 다음 트로이 목마를 엽니다.
보시다시피 그는 당신의 진입 지점을 칠 것입니다.
이제 세 개의 중단점을 설정하겠습니다.
첫 번째 중단점은 가상의 중단점입니다.
두 번째 중단점은 가상 보호입니다.
세 번째 중단점은 선택 사항입니다.
실제로는 내부에서 프로세스를 생성합니다.
일반적으로 자체 주입 트로이 목마가 의심되는 경우 이를 삭제합니다.
또는 다른 API를 호출하고 새 프로세스를 생성하여 실행할 것으로 의심되는 경우입니다.
이제 엔터 키를 누르기만 하면 됩니다.
그런 다음 중단점을 클릭하면 설정된 세 개의 중단점(잠금, 보호 및 프로세스 내부
생성 w)을 확인하는 것을 볼 수 있습니다.
이제 어떤 중단점을 설정해야 할지 모른다면 가능한 한 많이 설정하되,
이미 몇 차례 시도해 본 적이 있다면 실제로 적중하거나 관찰 대상과 관련된 중단점으로만
범위를 좁힐 수 있습니다.
따라서 매크로 분석은 많은 시행착오를 겪어야 합니다.
일반적으로 첫 번째 분석은 성공하지 못하기 때문에 시간이 많이 걸리는 과정입니다.
그래서 많은 시행착오와 추측도 있었습니다.
이제 이 트로이 목마를 실행해 보겠습니다.
트로이 목마는 외부 프로세스를 생성하거나 자체 메모리의 일부를 덮어쓰고 거기서 실행하여 내부 프로세스를
생성할 수 있습니다.
이제 드리덱스는 자체 프로세스를 덮어쓰는 트로이 목마가 되었습니다.
자신의 프로세스 메모리.
이를 자가 주입 트로이 목마라고 합니다.
자, 이제 가상 잠금에 도달했습니다.
그리고 가상 A를 넘어가면
이리 오세요.
이제 이 호출을 넘어가서 X의 반환 할당 주소를 보면 덤프 주소에서 다음과 같이 할
수 있습니다.
다음 덤프를 마우스 오른쪽 버튼으로 클릭하세요.
이제 비어 있습니다.
지금 바로 시작하세요.
그의 가상 아날로그는 다시 F8을 눌러 이걸 밟거나 클릭합니다.
넘어가려면
이 가상 자물쇠를 밟고 넘어갑니다.
이제 세 개의 7과 네 개의 0을 할당합니다.
완료 도구를 클릭합니다.
이 내용을 자세히 살펴보겠습니다.
이제 우리는 여전히 공백으로 내려가고 있습니다.
이제 F9를 실행하면 이번에는 덤프에 있는 B 헤더 B 파일의 압축을 풀고 하나는 여전히 공백으로 덤프하는 것을 볼 수 있습니다.
따라서 원한다면 지금 바로 삭제하고 분석할 수 있습니다.
그러나 이것은 아마도 메인 exe가 아니기 때문에 더 진행할 것이지만, 덤프하기 전까지는 알 수 없을
것입니다.
그렇기 때문에 멀웨어 분석에 시행착오가 많은데, 어떤 것이 메인 B인지 알 수 없기
때문에 모든 것을 덤프해야 할 수도 있습니다.
하지만 이미 이 작업을 해봤기 때문에 이것이 주된 경로가 아니라는 것을 알고 있습니다.
하지만 이 트로이 목마를 처음 접하는 사용자라면 이 사실을 모를 것입니다.
그러니 이걸 버리세요.
이제 계속해서
물 위로 발을 내딛습니다.
그럼 어디 보자.
다시 설정하면 이제 이 지역 메모리가 할당됩니다.
이제 여기로 이동하여 완료 트리를 클릭합니다.
덤프 트리에서 마우스 오른쪽 버튼을 클릭하고 덤프에서 팔로우를 클릭하여 이 항목을 팔로우하겠습니다.
이제 덤프 트리가 비어 있는 것을 볼 수 있습니다.
그리고 이제 우리는 계속 달리고 있습니다.
알겠습니다.
이제 로저 프로텍트에 접속했습니다.
이제 이미 그렇게 되었습니다.
중단점을 클릭하면 어떤 잠금에 몇 번 걸렸는지 확인할 수 있습니다.
세 번.
알겠습니다.
따라서 현재로서는 언제가 적절한 덤프 시점인지 알 수 없으며, 덤프해야 할 메인 메모리가
어디에 있는지 알 수 없습니다.
그렇기 때문에 첫 번째 라운드 또는 처음 몇 라운드에서는 이 작업을 수행합니다.
아직 아무것도 버리지 않았습니다.
어떤 잠금 장치를 몇 번 누르고, 어떤 보호 장치를 몇 번 누르는지 세기만 하면 됩니다.
자, 이제 카운트, 즉 열거형을 얻기 위한 동작을 진행합니다.
그래서 이제 가상 보호 기능을 사용하게 되었습니다.
그래서 가상 보호로 이동하고, 다시 보호 보기로 이동하여 매개 변수를 스택에 푸시하도록 하겠습니다.
이제 두 번째 매개 변수를 살펴봅니다.
두 번째 매개변수는 권한을 변경할 메모리 내 위치입니다.
따라서 이 경우에는 5 3개와 0 3개가 뒤따릅니다.
그래서 만약 우리가
그리고 우리는 계속 달리고 있습니다.
이제 넘어갈 수 있습니다.
제가 이 작업을 했으니 시간을 절약해 드리겠습니다.
하지만 처음에는 알게 될 것입니다.
따라서 모든 작업을 수행하되 이 과정을 짧게 줄여야 합니다.
이제 다시 제품과 함께 사용할 수 있습니다.
이번 두 번째 매개변수는 바로 이 메모리 영역입니다.
이제 여기에는 1 뒤에 0이 일곱 개 있습니다.
마우스 오른쪽 버튼을 클릭하고 메모리 맵에서 따라갈 수 없으므로 메모리 맵에서 찾아보세요.
바로 여기.
그는 나를 따라왔어요.
D-word가 아닌 이 주소를 팔로우하고 있을 수 있습니다.
하지만 우리는 D라는 단어를 살펴보고자 합니다.
그래서 메모리 맵을 따라갑니다.
1 뒤에 0이 일곱 개 있습니다.
이쪽입니다.
즉, 이미 작성되어 있다는 뜻입니다.
무언가를 작성하려고 합니다.
자, 어디 보자.
이 기능은 무엇을 하나요?
이 부분을 넘어 다시 한 번 살펴봅시다.
그래서 W 플래그를 제거했습니다.
즉, 이전에는 쓰기 가능했습니다.
이제 더 이상 쓸 수 없습니다.
Go.
이는 코드 언패킹이 완료되었음을 의미합니다.
일반적으로는 그렇습니다.
그래서 쓰기 가능한 플래그를 제거합니다.
따라서 이 시점에서 포장을 다 풀었다고 결론을
내릴 수 있습니다.
하지만.
이 메모리 영역에서는 1 뒤에 7개의 0이 이어집니다.
따라서 1 다음에 오는 7 0은 중요한 위치인 것 같습니다.
따라서 우리는 그것을 따를 수 있습니다.
1 뒤에 7개의 0이 이어집니다.
오른쪽 클릭으로 따라갈 수 있습니다.
카안담의 딜러를 팔로우하세요.
치료할 수 있을지도 모르죠.
네, 사용할 수 있습니다.
원한다면 세 번째입니다.
캘린더에 있는 것을 따르세요.
보시다시피 이 메모리 영역에는 MC 헤더와 문자열이 있습니다.
이 프로그램은 다크 모드에서 실행할 수 없으므로 분명히 여기 이 메모리 영역에 무언가를 압축
해제했습니다.
이제 이미 읽기만 가능합니다.
더 이상 쓸 수 없지만 포장 풀기가 완료되었는지 여부가 확실하지 않으므로 지금 덤프하고 싶지 않습니다.
따라서 예를 들어 실행이 중지되거나 모든 중단점에서 중단되거나 예외가
발생할 때까지 계속 실행합니다.
지금 보이는 중단점을 살펴보면 가상 잠금에 세 번, 가상 보호에 두 번
도달했습니다.
이제 몇 번이나 계속 실행했는지 확인해 보겠습니다.
다시 가상 보호에 도달합니다.
그래서 가상 보호로 넘어가서 가상 보호로 이동합니다.
이제 이 메모리 영역에서 계속해서 무언가를 풀고 있는 것을 볼 수 있습니다.
같은 지역.
1에서 시작하여 0이 7개로 이어지다가 이제는 1에서 포장을 풀고 0이 3개로
끝납니다.
같은 메모리 영역, 단지 연속일 뿐입니다.
아직 포장을 다 풀지 않았다는 뜻입니다.
지금도 계속되고 있습니다.
이제 이걸 따라가면 됩니다.
아마도 이걸 왼쪽으로 당겼을 겁니다.
이제 세 번째 덤프를 이어갑니다.
하지만.
원하신다면 그렇게 하셔도 되지만, 그럴 필요는 없다고 생각합니다.
아직 포장을 다 풀지 않았으니 계속 실행해 보겠습니다.
이제 넘어가 보겠습니다.
다시 보호할 수 있습니다.
다시 말하지만.
보호하시겠습니까?
알겠습니다.
이번에는 두 번째 매개 변수를 살펴봅니다.
아직 짐을 다 풀지 못했습니다.
동일한 메모리 영역.
우리는 1에서 시작하여 7로 시작했습니다.
그래서 우리는 무엇이든 해야 합니다.
그냥 끝내세요.
포장 풀기.
뒤로 물러서세요.
그리고 여전히 덕목 보호를 실행합니다.
뒤로 물러서세요.
미덕으로 이동합니다.
보호.
미덕으로 이동합니다.
보호.
여전히 동일한 메모리 영역이지만 더 높은 주소 범위인 283330에 있는 것을 볼 수 있습니다.
그래서 아직 포장을 다 풀지 못했습니다.
따라서 압축을 풀고 가상 프로텍트를 계속 실행합니다.
따라서 이 메모리 영역이 매우 중요한 것 같습니다.
여기서부터 시작되는 원래 메모리로 계속 포장을 풀면서 0이 7개가 이어집니다.
그래서 우리는 계속 넘어갑니다.
이제 이걸 보세요.
여전히 하나부터 시작합니다.
그리고 이번에는 29000입니다.
아직 포장을 다 풀지 않았다는 뜻입니다.
그래서 우리는 계속해서 F9, F9를 누르고 Virtualprotect에 몇 번이나 부딪히는지 계속 살펴봅니다.
자, 이제 이쪽으로 오세요.
끝까지 실행하세요.
이제 첫 번째 기회 예외가 있음을 알 수 있습니다.
보이시죠?
포장을 다 풀었다는 뜻입니다.
이제 집계가 끝났습니다.
중단점을 살펴보세요.
물고문은 6회 허용되며, 3회는 허용되지 않습니다.
이 점에 유의하세요.
메모장을 열어 적어 두세요.
메모장을 엽니다.
그리고 적어 두세요.
Virtual이 세 번 맞았습니다.
가상 보호가 6번 공격당했습니다.
그리고 마지막으로 공격당한 API는 가상 잠금 기능이었습니다.
이것이 단서입니다.
가상 잠금이 6번 눌러졌다는 것은 압축 풀기가 완료되었음을 의미하며, 이 메모리
영역에서 1부터 7까지 0을 덤프할 수 있습니다.
따라서 이것은 언제 덤프해야 하는지 알 수 있는 간단한 요령입니다.
이제 다음으로 해야 할 일은 모든 것을 종료하는 것입니다.
그리고 이것은 가상 머신 외부의 외부 파일로 복사하거나 펜과 종이를 사용하여 종이에 복사해야
합니다. 왜냐하면 지금쯤이면 멀웨어가 가상 머신을 감염시켰을
수도 있고, 가상 머신을 재설정할 것이기 때문입니다.
이제 가상 머신을 초기화해 보겠습니다.
그럼 모든 것을 종료하고 다음 동영상에서 뵙겠습니다.