32к бильярд.

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: 32к бильярд.

Сообщение Mikle » 20.03.2016 (Вс) 16:18

Ещё попытка :)
Теперь должно автоматом определять поддержку MSAA, исправлена ошибка при забитии последнего шара, кое-какие эстетические изменения.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 04.04.2016 (Пн) 14:48

---------------------------
Pool
---------------------------
Run-time error '-2005530520 (88760868)':

Automation error
---------------------------
ОК
---------------------------

Два игрока. Не уверен, последняя ли версия, но уже та, которая показывает счёт при победе.
Произошло один раз ближе к середине игры.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: 32к бильярд.

Сообщение Mikle » 06.04.2016 (Ср) 9:46

Я удалил все ранние версии, в первый пост темы залил последнюю версию с исходником.

Адская_Капча
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 60
Зарегистрирован: 28.07.2014 (Пн) 20:22

Re: 32к бильярд.

Сообщение Адская_Капча » 03.07.2016 (Вс) 19:16

Хакер писал(а):добавить ключик линкера /ALIGN:0x10

К сожалению, тогда при дальнейшей запаковке файла с помощью upx будет вываливаться ошибка Изображение
Image7.PNG

Хакер писал(а):ключ линкера /STUB:dummy.exe. Это приведёт к тому, что вместо дефолтной заглушки будет встраиваться наша сверхминималистичная

На этот прием антивирус реагирует (как unknown packed), а это нежелательно в некоторых случаях... Да и неудобно каждый раз делать исключения (при перемещении / переименовании)

P.S. Прошу отнестить с пониманием к замазыванию - это чтобы кто-нибудь не взломал мой комп
У вас нет доступа для просмотра вложений в этом сообщении.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: 32к бильярд.

Сообщение Хакер » 03.07.2016 (Вс) 21:44

Адская_Капча писал(а):К сожалению, тогда при дальнейшей запаковке файла с помощью upx будет вываливаться ошибка

UPX не рассматривался, когда я писал этот текст. Смысл поста был в том, как уменьшить размер натуральными средствами, без всяких богомерзких пакеров.

Адская_Капча писал(а):На этот прием антивирус реагирует (как unknown packed), а это нежелательно в некоторых случаях... Да и неудобно каждый раз делать исключения (при перемещении / переименовании)

Дебильный антивирус, однако. На установщик WINNT.EXE оно тоже так реагирует?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: 32к бильярд.

Сообщение VBTerminator » 03.07.2016 (Вс) 22:25

Хакер писал(а):... всяких богомерзких пакеров


Почему «богомерзких»? В EXE файле много повторов и нулей, особенно в секциях ресурсов и импорта/экспорта — того, что хорошо сжимается любым алгоритмом сжатия.

Да и значение FileAlignment менее 512 байт (0x200), на которое и жаловался упаковщик — разве это не является нарушением спецификации PE EXE, которое никем не обязано обрабатываться?

Адская_Капча
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 60
Зарегистрирован: 28.07.2014 (Пн) 20:22

Re: 32к бильярд.

Сообщение Адская_Капча » 04.07.2016 (Пн) 14:37

Хакер писал(а):Дебильный антивирус, однако.

Ну почему же сразу дебильный? Изображение

Все-таки, он на всякий случай должен быть. Лучше перебдеть, чем недобдеть, и потом расхлёбывать последствия. И это может говорить о его качестве, наоборот.

Здесь 2 не очень хороших момента:
1. Программа используется только у себя. Тогда при переименовании или перемещении файла каждый раз приходится вносить исключения.
2. Моей программой решит воспользоваться кто-то еще. А если у него на компе будет иметься антивирус, который среагирует - появится повод для недоверия как к разработчику (мол, ты хочешь заразить мой комп и причинить мне вред).

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

Хакер писал(а):На установщик WINNT.EXE оно тоже так реагирует?

Имелся ввиду исполняемый файл WINNT.EXE из папки I386 дистрибутива Windows XP? Нет, на него не реагирует...

В общем, при /ALIGN:0x10 и /MERGE:.data=.text файл имеет размер 5 744 байт.
Если изменить выравнивание на 0x200, файл будет 6 144 байт. Однако при дальнейшей запаковке с помощью upx ошибка будет: CantPackException: object alignment too small
Если изменить выравнивание на 0x400, файл будет 7 168 байт. Upx его успешно упаковал (5 120 байт), однако такой файл уже не запускается (пишет, что не является приложением Win32).
Если оставить только /MERGE:.data=.text, файл будет 12 288 байт, однако при запуске будет "Инструкция по адресу "0x734006a9" обратилась к памяти по адресу "0x00401074". Память не может быть "written".". А теперь сюрприз: если его запаковать upx - будет 5120 байт и успешный запуск!
Без флагов файл будет 16 384 байт, после upx - 5 120 байт, запускается нормально.

Любопытные, однако, получились результаты исследования Изображение

Хакер писал(а):богомерзких пакеров

А почему богомерзских? Если на это есть свои причины так считать, то какие? Результаты даже немножко лучше вышли. При этом перевод в P-код не рассматривался (быстродействие и безопасность все-таки дороже), вырезание ресурсов и иконок тоже (без них будет не очень красиво на мой взгляд, да и такой "лысый" файл не внушает доверия в глазах обычного пользователя).

P.S. Если все-таки скомпилировать в P-код, вырезать иконки и ресурсы, будет 8 192 байт, после upx - 3 072 байт. Если дополнительно использовать объединение секций текста и данных, а также dummy.exe - upx не сможет сжать, выдав ошибку CantPackException: illegal exe header.

Пред.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList