Модератор: BV
tyomitch писал(а):А что означает надпись "Ver 3 (Windows NT 3.x, 95, 98)"
Если то, что в более поздних виндах такие бинарники не запускаются, то это гон.
jangle писал(а):tyomitch писал(а):А что означает надпись "Ver 3 (Windows NT 3.x, 95, 98)"
Если то, что в более поздних виндах такие бинарники не запускаются, то это гон.
Нет, они смогут загрузится только в Windows NT 3.x, 95, 98
Тогда почему там и 95, и 98?
Из них максимум одна версия может быть минимальной.
Спасибо за просвещение.
Но никакой "верхней границы" совместимости Windows со своими старыми версиями нет.
В последних версиях отлично работают даже программы для Win30, не то что для NT 3.1.
Демонстрационный пример тебе приведён.
(И более того, об этом "специальном поле" я уже писал сам.)
Set the minimum Windows version requirements for your program.
Syntax #OPTION {VERSION3 | VERSION4 | VERSION5}
Remarks The #OPTION metastatement controls the "minimum Windows version" tag that is written into your compiled code. If the version you select is equal or lower to the version of Windows that is running, the application will be executed. In turn, Windows will tailor the messages it sends to your program according to this version number, so your program will not need to handle messages from a later Windows version. The version tag may also affect the appearance and behavior of Windows common dialogs.
Conversely, if the version tag you select is higher than the version of Windows that is running, Windows will display an error message instead of running your application. For example, running a VERSION5 application on a VERSION4 platform would fail.
It is your responsibility to make sure that your program only uses the Windows features that are present in the specified version of Windows. For example, don’t call an API that’s present only in Windows XP, if you want your program to run under Windows 98.
Далее, программа, вызывающая API-функцию, которая есть только в Win2000/XP/2003, не запустится в более старой ОС независимо от того, что у неё выставлено в этом поле
Мне немного стрёмно было бы юзать EXE-протектор, разработка и презентация которого начинается с GUI, и автор которого демонстрирует столь обширные познания механизмов работы виндового загрузчика
jangle
А что, если я запакую dx8vb.dll, этого никто не сможет узнать ?
jangle писал(а):Спасибо за просвещение.
Но никакой "верхней границы" совместимости Windows со своими старыми версиями нет.
В последних версиях отлично работают даже программы для Win30, не то что для NT 3.1.
Демонстрационный пример тебе приведён.
(И более того, об этом "специальном поле" я уже писал сам.)
Наверное я неправильно описал это поле, но тем не менее, суть то не меняется. В PB есть директива #Option Version, которая позволяет задать совместимость EXE файла при компиляции, вот ее описание:Set the minimum Windows version requirements for your program.
Syntax #OPTION {VERSION3 | VERSION4 | VERSION5}
Remarks The #OPTION metastatement controls the "minimum Windows version" tag that is written into your compiled code. If the version you select is equal or lower to the version of Windows that is running, the application will be executed. In turn, Windows will tailor the messages it sends to your program according to this version number, so your program will not need to handle messages from a later Windows version. The version tag may also affect the appearance and behavior of Windows common dialogs.
Вопрос такой - как у него с совместимостью? Если у меня немного нестандартно сккомпилирован файл(точка входа другая, прилинкованы внешние .obj, есть импорты из виндовых библ, длл экспортирует символы, причём не только функции, но и данные) работоспособность не нарушится?
И ещё. По моему эффективнее юзать Dll2Lib и цеплять его стандартным линкером.
Так же хотелось бы узнать принцип действия данной программы.
jangle писал(а):1. При запуске, stub проверяет наличие msvbvm60 на диске, если она не найдена, то извлекает ее из EXE файла и сохраняет папку system32.
Для vb экзешников обязательно наличие msvbvm60 на диске (секция импорта). Чтобы создать полностью автономный EXE нужно переписать компилятор.
Механизм защиты работает так
А можно ещё код этого механизма ну и, желательно, руководство по взлому?
Ломается очень просто, без модификации кода программы.
keks-n писал(а):При наличии 1-ой флешки прога начнёт запускаться везде.
Зато можно выложить HardwareID. И его можно изменить на самой флешке.В нашем случае это бессмысленно, т.к. нельзя выложить на форум еще и флешку.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41