Командные ключи NwKey32.exe - 3

Здравствуйте. Обновил комплект разработчика, поставил новый сегодняшний  версии 6.3. До сих пор скрипт работал без ошибок, теперь

    NwKey32.exe   /GC=0:128::1:PublicKeyCode.bin  /UV=1  /UN=2  /UM=0x4  /T=1  /RC=0  /EXIT_DELAY=20        ^
            /V  /ATR=4  /MSG=NWKEY32.rus.MSG                ^
            /IMPORT_HOOK_LIST=XXX.piw        ^
           XXX.exe

выбрасывает ошибку: “ERROR: .PRC-файл не содержит данных для указанного файла”. Как я понимаю, prc файл связан с использованием ключа RIP_CODE_LIST, но я его не использую. Если убрать ключ IMPORT_HOOK_LIST, то ошибка исчезает.

Кстати, когда вы планируете исправить ошибку, проявляющуюся при повторном открытии prc файла (писал вам ранее на hotline, ответили, что ошибка будет исправлена)? На данный момент получается, что ни IMPORT_HOOK_LIST, ни RIP_CODE_LIST (два самых ярких элемента автозащиты) я не могу использовать.

Re: Командные ключи NwKey32.exe - 3

Phaza7 пишет:

Здравствуйте. Обновил комплект разработчика, поставил новый сегодняшний  версии 6.3. До сих пор скрипт работал без ошибок, теперь

    NwKey32.exe   /GC=0:128::1:PublicKeyCode.bin  /UV=1  /UN=2  /UM=0x4  /T=1  /RC=0  /EXIT_DELAY=20        ^
            /V  /ATR=4  /MSG=NWKEY32.rus.MSG                ^
            /IMPORT_HOOK_LIST=XXX.piw        ^
           XXX.exe

выбрасывает ошибку: “ERROR: .PRC-файл не содержит данных для указанного файла”. Как я понимаю, prc файл связан с использованием ключа RIP_CODE_LIST, но я его не использую. Если убрать ключ IMPORT_HOOK_LIST, то ошибка исчезает.

Кстати, когда вы планируете исправить ошибку, проявляющуюся при повторном открытии prc файла (писал вам ранее на hotline, ответили, что ошибка будет исправлена)? На данный момент получается, что ни IMPORT_HOOK_LIST, ни RIP_CODE_LIST (два самых ярких элемента автозащиты) я не могу использовать.

Здравствуйте,

Подобное поведение связано с тем, что теперь файл для защиты с помощью IMPORT_HOOK_LIST ищется по его хэшу, а не по полному пути, указанному в piw файле. Это изменение связано с тем, что форматы piw и prc файлов теперь одинаковы, а защита измененного защищаемого приложения со старым prc файлом приводит к ошибке.

Мы сейчас решаем, как сделать использование этой опции для перекомпилированных приложений более удобным. Вероятно придется вернуть обратно игнорирование ненайденных импортируемых функций (без предупреждения или с выводом информации в консоль).

Эта, и вторая ошибка с повторным открытием PRC планируется к исправлению в релизе 6.31, планируемом на конец декабря. Как ни странно, у 95% клиентов сценарий использования этих опций прямолинеен - каждый раз они профилируют и выставляют защиту импортов при наложении автозащиты, так что и хэш файла в piw/prc корректен, и повторное открытие как правило не требуется. Это и привело к такой досадной оплошности.

Благодарим Вас за то, что обратили наше внимание на проблему и за Ваше терпение.

Re: Командные ключи NwKey32.exe - 3

Здравствуйте.

Поставил SDK 7 и вновь получил подобную проблему. Скрипт:

NwKey32.exe   /GC=0:128::1:PublicKeyCode.bin  /UV=1  /UN=2  /UM=0x4    ^
        /T=1  /RC=0  /EXIT_DELAY=20  /V  /ATR=4    ^
        /RIP_CODE_LIST=App.prc    ^
        /IMPORT_HOOK_LIST=App.piw        ^
        App.exe

выбрасывает ошибку ‘ERROR: .PRC-файл не содержит данных для указанного файла’. Файлы App.piw и App.prc сделаны непосредственно на основе App.exe. Ссылки на App файлы:

http://my-files.ru/m3w4o8
http://файлообменник.рф/k9x2g8aiqjp5.html
http://dropmefiles.com/gPX0U

Вот уже полтора года пользуюсь вашим продуктом. Так до сих пор и не смог добиться комфортной работы. При каждой сборке инсталлятора приходится тратить много времени на установку защиты, помня SDK какой версии можно пользоваться и как. А бывает собирать за раз приходится два или три немного отличающихся инсталлятора, создавая для каждого prc и piw файлы по-новому, а это до получаса на каждый на моём приложении. Вы долго (несколько месяцев) исправляли ошибку повторного открытия prc файла, после этого в новом SDK 6.31 начал некорректно работать NativeProfilerGUI.exe ( https://forum.guardant.ru/topic/461/ ), исправили, теперь в SDK 7 это. А ведь было ещё https://forum.guardant.ru/topic/350/ , https://forum.guardant.ru/topic/354/ , https://forum.guardant.ru/topic/353/ .

Может быть стоит добиваться нормальной правильной работы от какой-то одной текущей версии, бросая на неё все силы и позиционируя её перед нами, как стабильную (как это делают многие), а уже потом идти вперёд и добавлять новую функциональность?

Re: Командные ключи NwKey32.exe - 3

Здравствуйте, Phaza7.

У нас указанная ошибка, для предоставленного приложения, не воспроизводится.

http://s019.radikal.ru/i621/1503/41/7f9fe7599777.jpg

Выложите, пожалуйста, скриншот с результатами работы консольной утилиты автоматической защиты nwkey32.exe.

Re: Командные ключи NwKey32.exe - 3

Здравствуйте.

Прошу прощения за ‘наезд’ :) . Немного потестировал и разобрался. Проблема связана с указанием относительного пути для exe файла. В примере для простоты я указал App.exe, у меня же стояло ..\App.exe, и это вызывает ошибку. Абсолютный путь так же работает (я проверил), а относительный приводит к ошибке. В том числе эту проблему я описывал в https://forum.guardant.ru/topic/354/ , после вашего исправления всё заработало, но теперь в SDK 7 снова.

Re: Командные ключи NwKey32.exe - 3

Phaza7 пишет:

Здравствуйте.
В том числе эту проблему я описывал в https://forum.guardant.ru/topic/354/ , после вашего исправления всё заработало, но теперь в SDK 7 снова.

Информация передана в отдел тестирования.
Спасибо за обратную связь.

Re: Командные ключи NwKey32.exe - 3

Зря я извинился.
Снова собираю инсталлятор и пытаюсь повторно использовать prc и piw файлы недельной давности в NativeProfilerGUI.exe (SDK 7). Все ОК, замечательно и без проблем создаются новые prc и piw файлы. Только nwkey32.exe выбрасывает ‘ERROR: .PRC-файл не содержит данных для указанного файла’. Все пути в ключах nwkey32.exe абсолютные. Проверьте сами. Честно говоря, уже совсем достала глючность nwkey32.exe…

Re: Командные ключи NwKey32.exe - 3

Phaza7 пишет:

Зря я извинился.
Снова собираю инсталлятор и пытаюсь повторно использовать prc и piw файлы недельной давности в NativeProfilerGUI.exe (SDK 7). Все ОК, замечательно и без проблем создаются новые prc и piw файлы. Только nwkey32.exe выбрасывает ‘ERROR: .PRC-файл не содержит данных для указанного файла’. Все пути в ключах nwkey32.exe абсолютные. Проверьте сами. Честно говоря, уже совсем достала глючность nwkey32.exe…

Если приложение пересобиралось, то его нужно и профилировать заново.

(2015-04-08 21:25:02 отредактировано Phaza7)

Re: Командные ключи NwKey32.exe - 3

Так в чём тогда смысл возможности повторного использования prc и piw файлов? У вас же в NativeProfilerGUI.exe есть опции (дословно): ‘Открыть ранее сохранённый файл описания защиты кода’ и ‘Открыть ранее сохранённый файл описания параметров защиты импорта’. Т.е. используя старые prc и piw файлы и новый exe, создать новые prc и piw.

AndreyStepin пишет:

Как ни странно, у 95% клиентов сценарий использования этих опций прямолинеен - каждый раз они профилируют и выставляют защиту импортов при наложении автозащиты, так что и хэш файла в piw/prc корректен, и повторное открытие как правило не требуется.

Re: Командные ключи NwKey32.exe - 3

Phaza7 пишет:

Так в чём тогда смысл возможности повторного использования prc и piw файлов? У вас же в NativeProfilerGUI.exe есть опции (дословно): ‘Открыть ранее сохранённый файл описания защиты кода’ и ‘Открыть ранее сохранённый файл описания параметров защиты импорта’. Т.е. используя старые prc и piw файлы и новый exe, создать новые prc и piw.

Подразумевается использование не нового исполняемого файла защищаемого приложения, а того, который первым использовался при защите в рамках одного проекта автозащиты.

Применимо это в тех случаях, когда приложение, после его профилирования и защиты, начинает работать некорректно, тогда можно открыть файлы c результатами профилирования и откорректировать их.

Re: Командные ключи NwKey32.exe - 3

Согласитесь, это совсем не очевидно. У меня, например, ни разу не было случая, когда защита влияла бы на работу приложения, и такой вариант использования NativeProfilerGUI.exe даже в голову не приходил.

Защита через выставление процента наложения защиты для больших или просто ресурсоёмких приложений вообще не подходит. Это может привести как к серьёзным тормозам, так и к всевозможным ошибкам. Да и, скорее всего, это означает, что программисту на зарплате тупо всё равно, что там будет с результатом. Честно говоря, было бы очень удобно не вводить каждый раз длинные списки специально отобранных защищаемых функций приложения, а описать их один раз и в последующем всегда использовать. Это экономило бы кучу времени при каждой сборке инсталлятора. И как мне кажется, самый простой способ – это доработать ваши утилиты для возможности повторного использования старых prc и piw файлов.

Re: Командные ключи NwKey32.exe - 3

Дело в том, что пересобранный исполняемый файл может отличаться от ранее отпрофилированного, например, поменяются адреса функций, а в случае изменения исходного кода защищаемого приложения, может меняться и их количество. Таким образом, при защите новой сборки, применение "старых" prc и piw файлов становится некорректным.