https://docs.microsoft.com/en-us/windows/win32/winprog64/file-system-redirector 여기에 잘 나와있는데 대충 메모해두자면 64비트에서 32비트 프로그램을 실행할 때 주소 체계가 다르므로 바로 DLL, 응용프로그램들을 실행할 수가 없다. 그래서 호환성을 위해 WOW64라는 것을 만들어 뒀는데 여기에 32비트용 DLL 등을 놓게 된다. 그래서 64비트 환경에서 32비트 프로그램이 GetSystemDirectory()와 같은 함수를 호출하였을 때 SysWOW64같은 폴더로 리다이렉션 시켜준다. 이 리다이렉션을 Wow64DisableWow64FsRedirection()이런 함수로 끌 수도 있다.
ApateDNS 로컬로 DNS 변조 Autoruns - Sysinternals 통합도구 일부 자동 시작 위치 검색 -> 레지스트리 시작폴더 등 BinDiff - IDA 플러그인 악성코드 변종 비교 BinNavi IDA Pro와 유사한 역공학 환경 제공 -> 팀원끼리 공유 가능 Bochs x86 컴퓨터를 완전히 시뮬레이션할 수 있는 디버거 -> 이것을 이용해 IDB 파일 디버깅 가능 Burp 스위트 웹 애플리케이션을 테스트 하는 용도 Capture BAT 악성코드 동작할 때 감시 용도 -> 파일 시스템, 레지스트리, 프로세스 행위 CFF Explorer PE 편집을 쉽게할 수 있도록 해줌 (x64&x86) Deep Freeze 물리적인 하드웨어에서 악성코드를 분석할 떄 유용 Dependency Walker..
Debug Blocker는 자기 자신을 자식프로세스로 생성하되 디버깅 모드로 실행하여 자식프로세스에서 여러가지 예외를 발생시켜 그걸로 실행 분기를 바꾸는 방식으로 디버깅을 어렵게 하는 것이다. 이런 것을 디버깅 하기 위해서는 먼저, 부모 프로세스를 작동했을 때 어떤 동작을 하는지 파악한다. 그 다음에는 1번이나 2번 둘 중 하나를 택해 디버깅한다. 1. 복호화 루틴과 같은 것이 있을 시 자식 프로세스에서 코드 패치가 이용하여 디버깅 2 - 1. 부모 프로세스를 디버깅하다가 적당한 시점에 자식 프로세스에 무한 반복되는 코드를 삽입한다. 2 - 2. 그런 뒤 부모 프로세스에서 자식 프로세스 디버깅을 중지하게 한다. 2 - 3. 디버거를 자식 프로세스에 attach 한다.
1. 스위칭 할 exe 파일 전체 읽어오기 - CreateFile(), ReadFile()을 통해서 2. 스위칭 될 exe CreateProcess()를 통해 실행 3. GetThreadContext()로 2번에서 생성한 프로세스의 정보(PEB)를 이용해 IMAGEBASE 구하기 4. 1번에서 얻어온 PE헤더를 바탕으로 IMAGEBASE를 구한다. 5 - 1. 3번과 4번에서 얻어온 IMAGEBASE를 비교해서 같으면 ZwUnmapViewOfSection()을 이용해 2번과정에서 실행된 이미지 언맵핑 6 - 2. 다르면 3번에서 얻은 PEB에 IMAGEBASE를 수정한다. 7. VirtualAllocEx()를 통해 IMAGEBASE로부터 이미지 크기만큼 할당 8. PE 헤더정보 맵핑 - WriteProc..