Какова вероятность сломать эксешник (PE) добавив в него 24-ресурс? Делаю ResHacker-ом. Или вообще не сломать никак! Пару моментов меня удивляют, это то что размер не изменяется, значит наверное это место под секцию было выделенно ещё заранее?? Но с другой стороны удалив потом ресурс 24 из моего файла хеши уже не совпадают с оригиналом! Мне просто надо много файлов пропатчить, боюсь чтоб потом всё заново не переделывать, так как глюк сразу ведь не определишь? offop: И вопрос ещё, есть такая утиль modifype.exe которая чё-то там "modifype file.exe -c" корректирует, это что, в заголовке чтоли инфу об crc32 правит? так как файл сам по себе далеко не тот что был Но это впрочем другая тема, об ms защитах..
Semiono Почему бы не использовать file.exe.manifest вместо внедрения манифеста в ресурсы? Только не знаю, работает ли это на Vista+?
Да это хорошее дело exe.manifest, но я собираю инсталятор и дело деликатное, хочется чтоб крута было, наличие лишних файликов не очень красиво Кстати! Я добавил mmc.exe.manifest у себя в XP ато там тоже в некоторых местах дефолтное "98" вылезает голое
Если корректно добавлять манифест, то никакой опасности - используйте для этого бесплатный CFF Explorer.
при добавлении манифеста возможно только у меня, но на XP SP3 в некоторых приложениях (написанных на VS) не открывались некоторые диологовые окна, в остальном и для остальных осей было нормуль.
Всётаки заглючило. Я добавил ресурс к некоторым _KeyGen.exe... У меня прекрасно работает! Но на других WinXP окно перестало открываться. Такое впечатление, что XP разные!? Хотя у всех ведь нынче XP PRO SP3!? Как будто несовместимость какая-то!? Однако, я у себя тестами собирал наименьший вариант манифеста, который только способен работать, его и юзаю, может быть каких-то параметров нельзя было удалять? Мой манифест: Код (Text): <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly> Может кривой манифест? Вопрос риторический: почему у винды эти всякие comctrl32.dll и всякие манифесты и WinSxS такое всё глюченное!? Ну почему нельзя за столько лет избавиться от этого хлама! В Win7 вообще там тонна лежит, особенное если x64, плюс mui добавились! Бред какой-то, наваливают зависимостей как-то безграмотно. Окно которое открывается только на моей XP eng Код (Text): 101 DIALOGEX 0, 0, 169, 165 STYLE DS_FIXEDSYS | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "zzzzz" LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL FONT 8, "MS Shell Dlg", FW_NORMAL, FALSE, 1 { CONTROL "zzzz:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 7, 7, 155, 8 CONTROL "", 1001, COMBOBOX, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 7, 16, 155, 297 CONTROL "zzzz:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 7, 34, 155, 8 CONTROL "", 1002, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 7, 43, 155, 12 CONTROL "zzzz", 1003, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 7, 64, 155, 14 CONTROL "zzzz:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 7, 85, 155, 8 CONTROL "", 1004, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 7, 94, 155, 12 CONTROL "zzzz:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 7, 114, 155, 8 CONTROL "", 1005, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 7, 123, 155, 12 CONTROL "zzzz", 1006, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 7, 144, 155, 14 }
угу, понял! спасибо, KeSqueer! http://msdn.microsoft.com/en-us/library/aa374191(VS.85,loband).aspx <?xml version="1.0" encoding="UTF-8" standalone="yes"?> как выдумаете это и есть проблема? хотя логично, у меня winxp eng.
Код (Text): <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="WtgAIZ9VhS1.exe'" version="3.5.4.7" processorArchitecture="*"/> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> </dependentAssembly> </dependency> </assembly> name="WtgAIZ9VhS1.exe'" <<<<<<<<<< имя попробуй добавить
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> - не помогло, я чуваку диктовал по телефону, если он ошибку не зделал )) Надо будет нейм добавить попробывать... ок!
XP Style Hacker by Skyjuice Software 2003 Выбираем испытуемый файл, на другом компе, создаётся манифест, например, zzz.exe.manifest. Всё, после этого файл zzz.exe не открывается! Нет основания не доверять проге, так как автор не зря наверное. Вывод таков, что некоторые PE можно срубить обычным zzz.exe.manifest, причём как бы валидным... Хотя наверное можно под каждый дистриб пошаманить, да ито тут похоже глухой случай. Но меня удивило то, что на моей XP это всётаки работает. Наверное у меня очень хорошая ось! =)
Совсем необязательно это делать (зачем вам лишний код?). Главное, чтобы иниткоммонконтролс была в импорте. И если прога подает изза отсутствия ИКК, то просто добавте импорт с помощью петулз (это мой ленивый способ инжекта длл в приложение ).
Я про инжект писал потому, что это всегда пригодится. Если я правильно понял, то вся твоя проблема изза того, что там нет в импорте икк. Тебе надо добавить библиотеку с икк (не помню как точно называется), а потом добавить саму ф-ю икк. Если я нечего не путаю, то PETOOLS->dIRECTORIES->Imports->!RightClick!->Add imports. Прости петулз под рукой нет.
Называется comctl32.dll http://msdn.microsoft.com/en-us/library/bb775695(VS.85,loband).aspx Хм, в WinSxS таких либс туча Спасибо, однако! Может чего и получиться. =)