|
05.01.2010, 22:24
|
#46
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: BlitzHack
Потестил - не смог поменять тип граф режима (хотел с 3Д на 2Д поменять - нельзя, хоте вроде и не предусмотрено)
|
с 3д на 2д менять нельзя - поползёт весь файл, из-за разных объёмов дефиниций, занимаемых той и другой командой в теле ехе. Буду думать.
Даёшь возможность вместо var пихать константы.
|
проблема таже что и выше (константый аргумент занимает места 4 байта, в то время как запись со ссылкой на перменную - на 2 байта больше). Буду думать.
Ну и много ложных стрингов.
|
Угу - буду думать
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
05.01.2010, 22:34
|
#47
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: BlitzHack
с 3д на 2д менять нельзя - поползёт весь файл
|
Ну в принципе это особо и не надо т.к. даже если поменял Graphics3D на 2D то тогда получим мав при попытке загрузки чего-то-там без 3Д-режима.
Так что лучше забей на это, толку в нём нет.
А вот менять переменную на константу было бы очень круто
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
25.01.2010, 00:01
|
#48
|
Оператор ЭВМ
Регистрация: 02.11.2008
Сообщений: 27
Написано 12 полезных сообщений (для 24 пользователей)
|
Ответ: BlitzHack
Сообщение от impersonalis
с 3д на 2д менять нельзя - поползёт весь файл, из-за разных объёмов дефиниций, занимаемых той и другой командой в теле ехе. Буду думать.
|
Та таблица (в ресурсном файле с программой) содержит имена функций и после них смещение от сигнатуры SVWU (4ый байт от начала) до адреса инструкции вызова (call) который изначально инвалидный (FCFFFFFF) и правится при загрузке программы. После названия функции (вида _f...) идет 5 байт, 4 из которых на смещение и один (нуль) отделяет следующее название. В большинстве случаев прийдется переделывать эту таблицу, но в некоторых (как смена 3д на 2д) можно попробывать просто сменить имя (_fgraphics3d на _fgraphics, а лишние 2 байта тоже занулить)
Сообщение от impersonalis
проблема таже что и выше (константый аргумент занимает места 4 байта, в то время как запись со ссылкой на перменную - на 2 байта больше). Буду думать.
|
Компилятор блица не использует инструкцию push, вместо этого он сдвигает стек и записывает в него по смещению
Соответственно запись в стек
по смещению:
*константы - 8 байт
*локальной переменной - 7 байт
*глобальной переменной - 10 байт
без смещения (первый параметр функции):
*константы - 7 байт
*локальной переменной - 6 байт
*глобальной переменной - 9 байт
В случае с глобальной переменной, замена на константу безболезненна, оставшиеся 2-3 байта можно затереть NOPами
В случае с локальной переменной, выход для некоторых функций - записывать одинарное слово (mov word [esp], const \ mov word[esp+offset], const) что укладывается в нужные 6\7 байт.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.01.2010, 00:31
|
#49
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: BlitzHack
Та таблица (в ресурсном файле с программой) содержит имена функций и после них смещение от сигнатуры SVWU (4ый байт от начала) до адреса инструкции вызова (call) который изначально инвалидный (FCFFFFFF) и правится при загрузке программы. После названия функции (вида _f...) идет 5 байт, 4 из которых на смещение и один (нуль) отделяет следующее название. В большинстве случаев прийдется переделывать эту таблицу, но в некоторых (как смена 3д на 2д) можно попробывать просто сменить имя (_fgraphics3d на _fgraphics, а лишние 2 байта тоже занулить)
|
Это, разумеется, я вычислил - иначе бы не смог сделать текущий функционал. 3д на 2д менять чревато ошибками в логике программы, а обратное - в смещениях асм-кода.
Пока особо нет времени и интереса к программе (как оказалось, ресурс внутри ехе - чистый асм, а его трактовка не представялет из себя особого интереса: наилучший результата здесь даст дизасм и его разбор, а софт для этого есть и лучше чем мой; т.о. мой софт по-прежнему - простенький вьювер, заточенный под б3д).
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
07.09.2012, 14:38
|
#50
|
Бывалый
Регистрация: 03.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 871
Написано 554 полезных сообщений (для 2,520 пользователей)
|
Ответ: BlitzHack
Простите за некроманство, но если кому-нибудь когда-нибудь понадобится скрыть свой код бесплатно без регистрации от BlitzHack - ASPack вам в помощь! Он не просто уменьшает размер *.exe, а и еще, как выяснилось, выступает в роли обфускатора. По крайней мере для Blitz3D.
|
(Offline)
|
|
07.09.2012, 15:34
|
#51
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: BlitzHack
И даже после распаковки?
__________________
|
(Offline)
|
|
07.09.2012, 17:14
|
#52
|
Знающий
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений (для 70 пользователей)
|
Ответ: BlitzHack
Сообщение от Harter
Простите за некроманство, но если кому-нибудь когда-нибудь понадобится скрыть свой код бесплатно без регистрации от BlitzHack - ASPack вам в помощь! Он не просто уменьшает размер *.exe, а и еще, как выяснилось, выступает в роли обфускатора. По крайней мере для Blitz3D.
|
ASPack, как и другие "детские" упаковщики снимается легко ( естественно при наличии соответствующих навыков или автораспаковщиков ). Все они сыпятся как минимум в одном месте, на которое намекает SBJoker - после запуска, в памяти будет дешифрованый ехешник, который можно сдампить и восстановить оригинал.
А более сложные протекторы не гарантируют стабильную работу.
ЗЫ
Кстати, где-то в сети видел транслятор x86 в llvm с возможной последующей оптимизацией. Это я к тому что было бы круто иметь в блице хотя бы такой низкоуровневый оптимизатор.
|
(Offline)
|
|
08.09.2012, 13:43
|
#53
|
Бывалый
Регистрация: 03.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 871
Написано 554 полезных сообщений (для 2,520 пользователей)
|
Ответ: BlitzHack
Да, пардон, поспешил с выводами. Достаточно было взглянуть хотя бы на статью в википедии.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:57.
|