![]() |
eXeL@B —› Вопросы новичков —› exe to cpl |
Посл.ответ | Сообщение |
|
Создано: 25 марта 2007 10:26 · Личное сообщение · #1 Собственно возник вопрос по превращению любого ехе файла в файл панели управления *.cpl. при простом переиминовании ехешка отказывается работать. Некий человек под ником extHack предложил следущее: "Привет, сижу я как-то, пишу программу, точно не помню, но помню, что юзал реестр. Искал новые способы автозагрузки, наткнулся я на CPL -файлы. Как всем известно, эти файлы используются в панели управления. Тогда я решил их осмотреть подробней. Достал я тестовый файл (access. cpl ), кстати, все основные CPL , находятся в System32. Открыл его HEX-редактором, вроде бы не к чему придираться, сигнатура, как и у exe , все секции соблюдены, юзаются ресурсы. Тогда я сменил этому файлу расширение на EXE. Но он отказался работать! Типа не является приложением Win32. Решил я тут раскинуть мозгами, если это компонент панели управления, то мы не должны отрицать, что CPL может являться библиотекой. Я сразу же, не теряя времени, открыл PE Tools. И действительно, я нашел некоторые различия. Теперь мы рассмотрим это на примерах. Мы возьмем обычный EXE-файл, и CPL-файл. Характеристика обычного EXE файла: - Relocation Stripped - Executable Image - Line numbers stripped - Locale symbols stripped - 32 bit machine expected И в целом, текущее значение получается 010F. Характеристика CPL-файла: - Executable Image - Line numbers stripped - Locale symbols stripped - 32 bit machine expected - Dll И в целом, текущее значение получается 210E. Почему-то в access.cpl тип приложение установлен как Window Console и в нем четыре секции (.text .data .rsrc .reloc). Вот в принципе и вся статья, можете переделать приложение из EXE и CPL или наоборот. Это не составит особого труда… extHack" Естественно этот метод был мною опробован но ничего дельного не получилось ехешка отказывается отрабатывать. В чем причина незнаю. Подскажите. ![]() |
|
Создано: 25 марта 2007 14:29 · Личное сообщение · #2 HALYAVA_ пишет: Искал новые способы автозагрузки, наткнулся я на CPL -файлы. HALYAVA_ если интересно про способы автозагрузки то почитай http://www.saitov.km.ru/publik/avto_zapusk_4.htm#az15 http://www.saitov.km.ru/publik/avto_zapusk_4.htm#az15 , или поищи в Google другие статьи. HALYAVA_ пишет: если это компонент панели управления, то мы не должны отрицать, что CPL может являться библиотекой Так если посмотреть свойства access.cpl то там написанно - "Общая библиотека оболочки Windows" HALYAVA_ пишет: можете переделать приложение из EXE и CPL или наоборот А потвоему можно *.EXE переделать в *.DLL ![]() ----- Что один человек сделал , другой всегда сломать может... ![]() |
|
Создано: 25 марта 2007 15:56 · Личное сообщение · #3 |
|
Создано: 26 марта 2007 02:02 · Личное сообщение · #4 |
|
Создано: 26 марта 2007 13:08 · Личное сообщение · #5 |
|
Создано: 26 марта 2007 16:13 · Личное сообщение · #6 |
|
Создано: 26 марта 2007 17:07 · Личное сообщение · #7 Ну и позтифф : нашел Дельфийский проект для построения CPL - он существует со времен delphi5. Взял демо из Дельфи 7 - все работает. Ключ в двух строчках. uses CtlPanel exports CPlApplet; Тексты, работающий CPL и текст самого CtlPanel(из 7-ки) прилагаю. ![]() ![]() |
|
Создано: 26 марта 2007 18:52 · Личное сообщение · #8 |
|
Создано: 26 марта 2007 20:28 · Личное сообщение · #9 Вот ,что я про CLP нашел. ![]() ----- Что один человек сделал , другой всегда сломать может... ![]() |
|
Создано: 27 марта 2007 00:48 · Личное сообщение · #10 |
|
Создано: 27 марта 2007 12:23 · Личное сообщение · #11 bash пишет: Я вызов и из rundll32.exe даже что-то не нашёл... Просто mmc из другой оперы : она обрабатывает файлы с расширением msc - Файлы консоли управления. CPL обрабатывает control.exe Правда в ней порылся lusrmgr.msс ================================= Забыл приложить CPL.PAS Там описаны все мессаджи. ![]() ![]() |
|
Создано: 27 марта 2007 19:25 · Личное сообщение · #12 |
|
Создано: 27 марта 2007 19:27 · Личное сообщение · #13 |
|
Создано: 27 марта 2007 21:47 · Личное сообщение · #14 HALYAVA_ пишет: bash был прав сказав что она вызывает mmc.exe Да тут прав скорее tundra37, чем я... Апплеты (*.cpl) можно вызвать как через control.exe, так и из rundll32.exe с нужными параметрами. Когда я запускаю просто sysdm.cpl, то в свойствах процесса я вижу с какими он параметрами был вызван: "rundll32.exe" shell32.dll,Control_RunDLL "C:\WINDOWS\system32\sysdm.cpl",
А когда запускаю как "control.exe sysdm.cpl", то получаю такое: "C:\WINDOWS\system32\rundll32.exe" Shell32.dll,Control_RunDLL sysdm.cpl
В общем по сути точно такое же, но немного изменено. Что из них что и для чего - без литра пива не разберёшь... ![]() А файлы *.msc это действительно просто файлы с параметрами для mmc.exe Но вопрос был в том HALYAVA_ пишет: вообще возможен ли запуск из под cpl файла какой либой exeшки . cpl-файлы называют апплетами, т.е. маленькими приложениями и то что через них можно запустить другие программы я не сомневаюсь. ![]() |
|
Создано: 27 марта 2007 21:49 · Поправил: bash · Личное сообщение · #15 |
![]() |
eXeL@B —› Вопросы новичков —› exe to cpl |