2017-11-01 13 views
-1

이 배치 코드를 직접 배치 파일을 실행에 작동합니다.WinRAR SFX에서 실행 된 배치 파일이 호스트 파일 액세스에 작동하지 않는 이유는 무엇입니까?</p> <pre><code>set %windir%system32driversetchosts attrib -r %hosts% pause </code></pre> <p>을하지만 WinRAR과 자동 압축 풀림 보관에이 배치 파일을 포장 및 추출시 자동으로 실행 예상대로 작동하지 않습니다 :

+0

당신이 무엇을 요구하고 있는지 확실하지 않습니다. 이것은 WinRAR과 어떤 관련이 있으며, "작동하지 않음"이란 무엇을 의미합니까> – NPras

+0

이 코드의 작동 방식은 다음과 같습니다. ((set hosts = "% windir % \ system32 \ drivers \ etc \ hosts" attrib -r % 호스트 % ( 에코 127.0.0.1의 예 1. com 에코 127.0.0.1 예 2. com ) >> "% 호스팅 %" 일시)))하지만 'archive' 이렇게 추출 WinRAR과 자기'만들면 EXE '일괄 처리 파일'command '가 작동하지 않습니다. – SamWocal

+2

정말 아무것도 명확히하지 않았습니다. 자동 압축 해제 아카이브를 사용하여 배치 파일을 exe 파일로 변환 할 수 없습니다. 아카이브는 단지 컨테이너입니다. – SomethingDark

답변

0

32 비트 RAR 자동 압축 풀기 아카이브를 만듭니다. 따라서 배치 파일은 Microsoft의 File System Redirector 설명서에 따라 %SystemRoot%\System32 대신 %SystemRoot%\SysWOW64에 액세스하는 결과 인 32 비트 cmd.exe으로 처리됩니다. WOW64 Implementation DetailsRegistry Keys Affected by WOW64도 확인해야합니다.

%SystemRoot%\SysWOW64 디렉토리에는 drivers\etc\hosts이 포함되어 있지 않습니다. hosts 파일은 64 비트 Windows의 경우에만 64 비트 응용 프로그램의 하위 디렉터리 System32에 있습니다.

Sysnative 64 비트 Windows에서 실행되는 32 비트 응용 프로그램에만 존재하는 리디렉터는 일반적으로 악성 프로그램 만 수정하는 hosts 파일에 액세스하기 위해 배치 파일이 실행되는 환경을 결정하는 데 사용할 수 있지만 RAR 자동 압축 해제 아카이브

@echo off 
set "SystemPath=%SystemRoot%\System32" 
if exist "%SystemRoot%\Sysnative\cmd.exe" set "SystemPath=%SystemRoot%\Sysnative" 
set "HostsFile=%SystemPath%\drivers\etc\hosts" 
%SystemPath%\attrib.exe -r %HostsFile% 
pause 

%SystemRoot%\Sysnative 디렉토리 나 파일 시스템의 링크도 아니다 유의하시기 바랍니다. 64 비트 Windows에서 32 비트 응용 프로그램 용 리디렉터입니다. 따라서 64 비트 Windows 또는 다른 64 비트 응용 프로그램에서 기본적으로 시작되는 64 비트 Windows 탐색기에서는 전혀 없습니다. %SystemRoot%\Sysnative 그리고 32 비트 응용 프로그램은 에 파일이 있는지 만 확인할 수 있지만 디렉토리 인 %SystemRoot%\Sysnative이 있는지 확인할 수 없습니다.