PE 잘 아는 고수분 궁금한게 있습니다
2021.09.28 22:10
설치/사용기에 PE 고수분들이 많은거 같아 질문/답변 게시판에 올리지 않고
여기다 올리는거 양해해주시기 바랍니다 ^^;;;;
초저용량 부터 PE는 많이 만들어봤는데요.
이번에 윈도우11 PE 만들면서 winver.exe 를 배경에서 부터 완전이 새로 만들어 보고픈 욕심이 들어
해당 다이얼로그박스를 추출하려고 하는데 영 못찾겠습니다 -_-;;;;;
보통은 리소스해커툴 이용해서 뒤져보면 나오는데 못찾겠네요
winver.exe 용 다이얼로그박스가 어느 파일에 들어있는지 또는 추출방법 알고계신 분 좀 알려주세요 -_-;;;;;
댓글 [11]
-
왕초보 2021.09.28 23:56
-
harman777 2021.09.29 01:23
그러게요.
원형유지하면서 바꿔볼 생각인데 괜한 욕심인거 같아요 -_-;;;;;
감사합니다
-
kernel 2021.09.29 13:48
winver.exe 다이얼로그 박스는... 리소스 섹션에 따로 Dialog Template을 갖고있지 않기 때문에
Resource Hacker 류의 도구로는 알아낼 수 없고...
Windows OS 내부구조를 해킹해서 알아내야 합니다.
커널모드 디버깅/유저모드 디버깅 둘 다 가능한 WinDdg를 이용할 수도 있는데 (윈도우즈 플렛폼에서는 가장 강력한 디버거 임)
일반 사람들이 많이 사용하는 x64 디버거 이용해서...
Windows 11 22000.194의 Shell 내부구조를 해킹 해보면...
-
kernel 2021.09.29 13:51
x64 디버거 이용해서 Windows Shell 내부구조를 해킹 해보면...
위와 같이 빨간 박스로 둘러 쌓여있는 다이얼로그의 실제 데이타를 알아 낼 수 있죠.
디테일한 해킹 방법은 내용이 너무 길어질거 같아 생략 함.
-
kernel 2021.09.29 13:54
해킹으로 알아낸 OS 내부구조 데이타를 덤프해서 dump.bin 이라는 파일을 생성.
덤프한 파일 첨부합니다.
위와 같이 덤프한 이진 데이타는 원본형식 그대로 사용할 수 없고...
프로그램을 만들어서 디코딩 과정을 거쳐야 합니다.
-
kernel 2021.09.29 13:56
VC++ 컴파일러로 decoding 코드 구현해서 이진 데이타를 디코딩 해보면...
다음과 같이 Dialog Template 소스를 만들어 낼 수 있죠.
100 DIALOGEX 20, 20, 305, 196
CAPTION "%s 정보"
STYLE DS_MODALFRAME | DS_SHELLFONT | DS_3DLOOK | WS_POPUPWINDOW | WS_CAPTION
FONT 9, "Malgun Gothic", 0, 0, 129
{
CONTROL "", 13095, "STATIC", SS_ETCHEDHORZ, 10, 7, 285, 1
ICON 0, 12297, 7, 17, 21, 20, SS_REALSIZECONTROL
CONTROL "", 13568, "STATIC", SS_NOPREFIX | SS_LEFTNOWORDWRAP, 35, 17, 230, 10
CONTROL "", 13579, "STATIC", SS_NOPREFIX | SS_LEFTNOWORDWRAP, 35, 27, 265, 10
LTEXT "", 13578, 35, 37, 240, 10, SS_NOPREFIX | NOT WS_GROUP
LTEXT "", -13821, 35, 47, 240, 10, SS_NOPREFIX | NOT WS_GROUP
LTEXT "%WINDOWS_LONG% 운영 체제 및 해당 사용자 인터페이스는 미국, 대한민국 및 기타 여러 나라에서 상표권 및 출원 중이거나 등록된 지적 재산권에 의해 보호됩니다.", 13587, 35, 57, 240, 40, SS_NOPREFIX | NOT WS_GROUP
LTEXT "", 13581, 35, 97, 210, 20, SS_NOPREFIX | NOT WS_GROUP
CONTROL "이 제품은 <A>Microsoft 소프트웨어 사용 조건</A>에 따라 다음 사용자가 사용할 수 있습니다.", 13586, "SysLink", WS_TABSTOP, 35, 117, 210, 20
LTEXT "사용자 이름", 13575, 45, 137, 210, 10, SS_NOPREFIX | NOT WS_GROUP
LTEXT "조직 이름", 13576, 45, 147, 210, 10, SS_NOPREFIX | NOT WS_GROUP
DEFPUSHBUTTON "확인", IDOK, 250, 176, 50, 14
}
-
kernel 2021.09.29 13:59
위와 같이 해킹으로 추출해낸 Dialog Template 을...
리소스 컴파일러 이용해서 컴파일 해서 쓰면 됍니다.
-
kernel 2021.09.29 14:01
위와 같이...
Visual Studio VC++ 컴파일러 이용해서 winver 다이얼로그의 시각적인 형태를 확인할 수 있는데...
픽스되어 있는 템플릿 구조가 아니고...
Windows OS가 프로그래밍 방법으로 런타임 중에 콘트롤 하면서 랜더링 하고 있다는 것을 알 수 있죠.
-
kernel 2021.09.29 14:13
%s와 %WINDOWS_LONG% 토큰은...
OS Shell 에 의해서 런타임 중에 치환 됌.
-
왕초보 2021.09.29 14:42
알려주시는 하나하나가 신세계입니다..
추천 1개로는 부족하고 100개는 해드려야 하는데 아쉽습니다..
필요한것을 찾아내는것도 신기하고..추출해내서..원도우 버전에서 보이는 글들이 보이게 하는것도 신기하기만 합니다
고수님께서 보시기에는..아무것도 아닌것일수 있지만 귀찮음을 뿌리치고 이런것이 가능하는것을 알려주셔서 감사합니다
복 많이 받으십시요..
-
선우 2021.09.29 22:06
놀라워요 ㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷ
고생이 많으십니다..
모든 사람에게 꼭 필요한 기능이 아니어서 인지..쉽지 않을것 같습니다
초보의 개인적인 생각입니다..원하는 GUI로 폼을 만들고 필요한 정보를 보여주는것이 더 빠를수 있지 않을까 합니다
좋은 결과가 있으시길 바랍니다