자작프로그램

레지스트리값을 명령프롬프트(배치파일)로 변환하는 프로그램

반응형

레지스트리키에 등록된 레지스트리값을 명령 프롬프트에서 사용할 수 있도록 변환하는 자작 프로그램입니다.

레지스트리 파일 또는 레지스트리키에 등록된 값을 윈도우 명령어로 변환하려면 상당히 복잡합니다.

 

reg add 또는 reg delete 명령어가 핵심인데요. 레지스트리키를 만드는 것부터 시작해서 이름, 값, 종류를 명령어로 변환하는데는 상당한 지식이 필요합니다. 

 

단순문자열 같은 경우는 그나마 변환이 쉽기는 하지만 바이너리, dword, 다중문자열, 확장문자열값들은 변환이 상당히 어렵습니다.

 

이 데이터들을 암산으로(?) 변환하는 것은 거의 불가능하다고 보시면 됩니다. 단순 문자열만 가능.

 

이 프로그램을 만들었을 당시에는 이런 프로그램이 없어서 직접 만들었는데요. 요즘에도 이런 프로그램이 있는지는 따로 검색해보진 않았습니다. 혹시라도 이런 비슷한 프로그램이 있으면 알려주세요.

 

아래의 첨부파일을 다운받고 압축을 풀고 프로그램을 실행하세요. (관리자 권한으로 실행 필요)

 

아래와 같은 화면이 나옵니다.

 

 

 

레지스트리값을 읽어들이는 방식은 두가지가 있습니다.

실제 내컴퓨터에 존재하는 레지스트리키에서 읽기와 클립보드로 복사한 내용에서 레지스트리 읽기가 있습니다.

 

아래 스크린샷은 내컴퓨터에 있는 지정한 레지스트리의 키의 모든 값, 하위키 포함해서 레지스트리 값을 읽어들인 화면입니다. 

 

 

 

 

레지스트리 값을 읽어들이게 되면 목록에 모든 항목이 표시되는데 여기에서 등록변환 또는 삭제변환을 누르면 배치파일이 만들어집니다.

 

등록변환은 레지스트리를 추가하는 배치파일이고, 삭제변환은 레지스트리값을 삭제하는 배치파일입니다.

 

등록변환 배치파일의 명령어 스크린샷입니다.

 

 

 

실제 생성되는 배치파일의 테스트용 명령어입니다.

 

등록변환 배치파일의 명령어


echo ######################################################################
echo Created by Windowexe.com , WindowexeRegToBat
echo ######################################################################
echo Start
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "AutoRestartShell" /t REG_DWORD /d "1" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "DefaultDomainName" /d "VMWARE" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "DefaultUserName" /d "Administrator" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "LegalNoticeCaption" /d "" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "LegalNoticeText" /d "" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "PowerdownAfterShutdown" /d "0" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "ReportBootOk" /d "1" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "Shell" /d "Explorer.exe" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "ShutdownWithoutLogon" /d "0" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "System" /d "" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "Userinit" /d "C:\WINDOWS\system32\userinit.exe," /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "VmApplet" /d "rundll32 shell32,Control_RunDLL \"sysdm.cpl\"" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "SfcQuota" /t REG_DWORD /d "4294967295" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "PreloadFontFile" /d "gulim" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "cachedlogonscount" /d "10" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "forceunlocklogon" /t REG_DWORD /d "0" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "passwordexpirywarning" /t REG_DWORD /d "14" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "scremoveoption" /d "0" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "UIHost" /t REG_EXPAND_SZ /d "logonui.exe" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "LogonType" /t REG_DWORD /d "1" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "Background" /d "0 0 0" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "DebugServerCommand" /d "no" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "SFCDisable" /t REG_DWORD /d "0" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "WinStationsDisabled" /d "0" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "HibernationPreviouslyEnabled" /t REG_DWORD /d "1" /f
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "ShowLogonOptions" /t REG_DWORD /d "0" /f
echo End
 
 
삭제변환 배치파일의 명령어

위에서 등록한 레지스트리값을 한번에 삭제할 수 있습니다. (키 제외)

 

echo ######################################################################
echo Created by Windowexe.com , WindowexeRegToBat
echo ######################################################################
echo Start
echo default system32 directory & cd %windir% & cd system32
echo - reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "AutoRestartShell" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "DefaultDomainName" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "DefaultUserName" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "LegalNoticeCaption" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "LegalNoticeText" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "PowerdownAfterShutdown" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "ReportBootOk" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "Shell" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "ShutdownWithoutLogon" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "System" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "Userinit" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "VmApplet" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "SfcQuota" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "PreloadFontFile" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "cachedlogonscount" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "forceunlocklogon" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "passwordexpirywarning" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "scremoveoption" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "UIHost" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "LogonType" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "Background" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "DebugServerCommand" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "SFCDisable" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "WinStationsDisabled" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "HibernationPreviouslyEnabled" /f
reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\test" /v "ShowLogonOptions" /f
echo End

 

 

레지스트리 삭제변환 배치파일에는 지정한 레지스트리키 삭제는 포함되어 있지 않습니다.

echo - reg.exe delete 블라블라 에서 echo - 를 지우고 저장하면 됩니다.

 

 

set default value
체크를 하지 않으면 이름 또는 값이 존재하는 것만 출력을 하고, 체크를 하면 값이 존재하지 않는 빈 레지스트리키까지 모두 출력합니다. 키를 생성할 때 기본값이 없어지는 문제로 추가하였습니다.

 

프로그램 동작환경 : .Net framework 4.0 , 윈도우 10, 윈도우 7, 관리자 권한 필요
파일명은 변경하지 마세요. WindowexeRegToBat 가 아니면 실행이 되지 않습니다.

 

WindowexeRegToBat_2021-07-14.zip
0.13MB



바이러스토탈 검진 결과 링크

https://www.virustotal.com/gui/file/b9385104e243696e5bd16f881cb64225911f850ff317c2e8f74aba120cd5785e/detection

개인이 만든 프로그램이고 많이 알려지지 않은 프로그램이라 일부 백신에서 악성코드로 인식할 수도 있습니다.
백신에서 차단하는 경우 예외처리나 신뢰하는 프로그램으로 추가해서 사용하세요.

 

버그
확장문자열이나 바이너리의 길이가 10만자리가 넘으면 변환할 수 없습니다.
레지스트리키 또는 레지스트리값에 줄바꿈 문자가 포함되어 있는 경우도 변환할 수 없습니다.
값이 존재하지 않는 문자열 + hex(0): 또는 기본값 + hex(0): 값은 널(Null)이 아닌 00 00 으로 들어갑니다.
bad value 로 표시되는 hex(4): 값은 보류중입니다. 아무리 봐도 이건 뭔지 모르겠네요..
REG_RESOURCE_LIST형식 (hex(8):) 레지스트리도 변환할 수 없습니다.

 

위 버그는 특수한 상황이긴한데 필요한 항목이 있으면 댓글 남겨주세요. 

오래전에 만든 프로그램이라 다른 버그가 있을 수도 있습니다.

 

유튜브 테스트 영상입니다.

https://youtu.be/kqImU-RZ7Ko

반응형