Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 05.01.2010, 22:24   #46
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 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
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: BlitzHack

с 3д на 2д менять нельзя - поползёт весь файл
Ну в принципе это особо и не надо т.к. даже если поменял Graphics3D на 2D то тогда получим мав при попытке загрузки чего-то-там без 3Д-режима.
Так что лучше забей на это, толку в нём нет.
А вот менять переменную на константу было бы очень круто
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 25.01.2010, 00:01   #48
Alex.D.
Оператор ЭВМ
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (25.01.2010)
Старый 25.01.2010, 00:31   #49
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 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
Harter
Бывалый
 
Аватар для Harter
 
Регистрация: 03.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 871
Написано 554 полезных сообщений
(для 2,520 пользователей)
Ответ: BlitzHack

Простите за некроманство, но если кому-нибудь когда-нибудь понадобится скрыть свой код бесплатно без регистрации от BlitzHack - ASPack вам в помощь! Он не просто уменьшает размер *.exe, а и еще, как выяснилось, выступает в роли обфускатора. По крайней мере для Blitz3D.
(Offline)
 
Ответить с цитированием
Старый 07.09.2012, 15:34   #51
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: BlitzHack

И даже после распаковки?
__________________
(Offline)
 
Ответить с цитированием
Старый 07.09.2012, 17:14   #52
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Ответ: BlitzHack

Сообщение от Harter Посмотреть сообщение
Простите за некроманство, но если кому-нибудь когда-нибудь понадобится скрыть свой код бесплатно без регистрации от BlitzHack - ASPack вам в помощь! Он не просто уменьшает размер *.exe, а и еще, как выяснилось, выступает в роли обфускатора. По крайней мере для Blitz3D.
ASPack, как и другие "детские" упаковщики снимается легко ( естественно при наличии соответствующих навыков или автораспаковщиков ). Все они сыпятся как минимум в одном месте, на которое намекает SBJoker - после запуска, в памяти будет дешифрованый ехешник, который можно сдампить и восстановить оригинал.
А более сложные протекторы не гарантируют стабильную работу.

ЗЫ
Кстати, где-то в сети видел транслятор x86 в llvm с возможной последующей оптимизацией. Это я к тому что было бы круто иметь в блице хотя бы такой низкоуровневый оптимизатор.
(Offline)
 
Ответить с цитированием
Старый 08.09.2012, 13:43   #53
Harter
Бывалый
 
Аватар для Harter
 
Регистрация: 03.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 871
Написано 554 полезных сообщений
(для 2,520 пользователей)
Ответ: BlitzHack

Да, пардон, поспешил с выводами. Достаточно было взглянуть хотя бы на статью в википедии.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 06:54.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com