나는 이것을 며칠 동안 알아 내려고 노력해 왔으며 도움이 필요하다.
일부 맞춤형 멀웨어를 작성한 연구 프로젝트의 경우 멀웨어 자체가 여기에있는 문제가 아니며 코드를 공유하지 않지만 실제 주입기에 대한 도움이 필요합니다.
수동 재배치를 수행해야하는 방법과시기를 완전히 이해하려고 할 때 몇 가지 문제가 있습니다. 나는 현재로 이전하지 않고 virtualallocex에서 임의의 주소를 사용하고 있으며, 모든 것이 제대로 작동합니다. 맬웨어 exe가 실행되고 원격 프로세스 PE가 맬웨어 PE 기본 주소와 겹쳐서로드되는 메모리 위치가 아니면 아무런 문제가 없습니다.
NtUnmapViewOfSection은 바이러스 백신이 탐지하여 기본적으로 무작위로 작동하지 않는 허위 기능이므로 내 계획은 VirtualAllocEx에서 제공 한 임의의 주소를 사용하고 필요할 경우 재배치하는 것입니다. 이해하지 못함, 아래 질문 참조).
이 내 현재 작업 방법 (대상 프로세스가 preferredbase와 중복되지 않는 한)이다 : 오른쪽 (I 후 스레드를 일시 중단 피해자 과정을
- 다운로드 악성 EXE과 장소
- CreateProcess를 이 작업은 win10에서 작동하지 않으므로 CREATE_SUSPENDED 플래그를 사용하지 않습니다.)
- 버퍼 (PIMAGE_DOS_HEADER, PIMAGE_NT_HEADERS)에서 필요한 헤더 정보 가져 오기, 원격 프로세스에서 ImageBase 주소 가져 오기 PEB 하고 VirtualAllocEx는
- 쓰기 PE 헤더와 섹션 메모리 위치에
- 보호 메모리
- 변경 EAX 새로운 엔트리 포인트
- 변경에를 위치를 선택할 수 있도록
- 는 lpAddress에 대한 NULL을 사용하여 대상 프로세스 (하고 VirtualAllocEx)에서 메모리를 할당 새로운 기본 주소로 PEB
- ResumeThread로
- 이익 그래서
하십시오
왜, 내가 주입하고있어 비록이 작업을 수행 백그라운드에서 몇 가지 마법 PE 로더가 수동 재배치를하지 않고이 일이 않습니다 나에게 다음과 같은 이해하는 데 도움이?
대상 프로세스가 기본 설정 주소와 겹치는 경우 왜 작동하지 않습니까? PE 이미지 자체는 겹치지 않는 메모리 위치에 복사되므로 대상 프로세스가 겹치지 않을 때 내 작업 솔루션과 다른 점이 무엇입니까? 그것은 첫 번째 질문에서 마술 재배치 작업을해야합니다.
왜 많은 사람들이 이미지를 메모리에 기록하기 전에 preferredBaseAddress를 변경하는 것을 보았습니까? PE 로더가 재배치를 수행 할 수 없다면,이 필드는 PE를 preferredbaseaddress에 매핑하는 데에만 사용됩니다. 주사 코드로 보는 것은 대개 자체 수동 재배치를 수행하는데 왜 나는 이것을 바꿀 것인지 전혀 모른다.
바라건대 누군가가 내게 도움이 될 수 있기를 바랍니다.
감사합니다.
저는 모두 자신의 재배치 코드를 만들었지 만 지금은 작동하지만 메모리에 복사하기 전에 이미지의 preferredBaseAddress를 변경해야합니다. 재배치 코드가없는 이유와 왜 PEB뿐만 아니라 기본 설정베이스도 변경해야하는 이유를 알아 냈습니다. – yannickwe87