Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 04.10.2010, 02:13   #31
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

Цитата:
Сообщение от ALF Посмотреть сообщение
та скринь не чего)
Клиет не находит шрифт и сразу закрывается (без ошибки)
....
тут проблема не в этом

1-й ляп:
хук рендера - для функций ла2 такой сплайсинг не катит, тут нету волшебных 5 байтов, код нужно восстанавливать

2-й ляп
Код:
adres1 = '??1FCanvasUtil@@UAE@XZ'; 
...
FCanvasUtilAddr := GetProcAddress(DLLInstance, adres1); 
...
mov  ecx, FCanvasUtilAddr 
....
??1FCanvasUtil@@UAE@XZ
это
public: virtual __thiscall FCanvasUtil::~FCanvasUtil(void)

на русском - это деструктор для класса FCanvasUtil, т.е. по сути его метод, а нужно передать именоо УКАЗАТЕЛЬ НА ОБЬЕКТ, и он не экспортируемый, в этом и есь вся сложность.

Очень рекомендую тебе ознакомиться с темой классов в с++ а также что такое соглашение вызова thiscall.
Morfik вне форума   Ответить с цитированием
Старый 04.10.2010, 02:14   #32
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от ALF Посмотреть сообщение
та скринь не чего)
Клиет не находит шрифт и сразу закрывается (без ошибки)

P.S. Если ошибка в длинне аргументов то будет ошибка
PHP код:
HistoryFCanvasUtil::DrawString <- ViewportLock1 <- Precaching <-
 
UGameEngine::Draw <- UWindowsViewport::Repaint <- 
UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop 
Если нету ошибки в длинне - то все норм.
Но так как мы хз что за фонт юзает л2, и как передать этот аргумент - нас л2 просто закрывает)

Добавлено через 1 минуту
как видиш я использую font :='Engine.DefaultFont' - это не правильно
тип аргумента должен быть UFont, а у меня string получается)
Мало того надо знать шрифт...
Хотя обычно в Unreal Engine-овских играю по идеи юзается Engine.DefaultFont хД
ахахахах засунул дельфовский стринг в функцию
там или объект нада совать или указатель на PWideChar непомню уже
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 10.10.2010, 20:26   #33
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

Цитата:
Сообщение от Morfik Посмотреть сообщение
тут проблема не в этом

1-й ляп:
хук рендера - для функций ла2 такой сплайсинг не катит, тут нету волшебных 5 байтов, код нужно восстанавливать

2-й ляп
Код:
adres1 = '??1FCanvasUtil@@UAE@XZ'; 
...
FCanvasUtilAddr := GetProcAddress(DLLInstance, adres1); 
...
mov  ecx, FCanvasUtilAddr 
....
??1FCanvasUtil@@UAE@XZ
это
public: virtual __thiscall FCanvasUtil::~FCanvasUtil(void)

на русском - это деструктор для класса FCanvasUtil, т.е. по сути его метод, а нужно передать именоо УКАЗАТЕЛЬ НА ОБЬЕКТ, и он не экспортируемый, в этом и есь вся сложность.

Очень рекомендую тебе ознакомиться с темой классов в с++ а также что такое соглашение вызова thiscall.
А может можно создать в делфи констуктор??
__________________
Все относительно...

Последний раз редактировалось ALF, 10.10.2010 в 20:33.
ALF вне форума   Ответить с цитированием
За это сообщение ALF нажился спасибкой от:
Старый 10.10.2010, 20:32   #34
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

Цитата:
Сообщение от ALF Посмотреть сообщение
??0FCanvasUtil@@QAE@ABV0@@Z - как насчет этого?
FCanvasUtil :: FCanvasUtil (FCanvaUtil const &)
а это один из конструкторов
я же написал что сам объект класса не экспортируемый
Morfik вне форума   Ответить с цитированием
Старый 10.10.2010, 20:36   #35
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

Это никакую идею не дает?

PHP код:
procedure Example;
var
  
MyObjTMyClass;   // класс, который вы создаете
  
MyListTList;     // встроенный класс
begin
  MyObj 
:= TMyClass.Create;
  
// теперь MyObj содержит адрес блока памяти,
  // распределенной для экземпляра вашего класса
  
MyList := TList.Create;
  
// Код для работы с MyList
  // ....
  // здесь что-то делаем с объектом
  // ....
  
MyList.Free;
  
// Ресурсы MyList удаляются из кучи
  
MyObj.Free;
  
// тоже самое для MyObj
end
__________________
Все относительно...
ALF вне форума   Ответить с цитированием
Старый 10.10.2010, 22:41   #36
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от ALF Посмотреть сообщение
А может можно создать в делфи констуктор??
нет) можно только вызвать существующий.
кстате классы дельфи и си малось несовместимы)
у С++ хранит указатель на экземпляр класса в ЕСХ а в делфях непомню

Добавлено через 3 минуты
Цитата:
Сообщение от ALF Посмотреть сообщение
Это никакую идею не дает?
[/php]
вообще никаких идей не дает

Последний раз редактировалось mira, 10.10.2010 в 22:41. Причина: Добавлено сообщение
mira вне форума   Ответить с цитированием
Старый 14.10.2010, 17:00   #37
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

??0FCanvasUtil@@QAE@PAVFRenderTarget@@PAVFRenderIn terface@@W4EVertexShader@@W4EPixelShader@@@Z
Конструктор?)
Если да - то огромное тебе спасибо)
С остальным думаю уже сам расберусь!!)
Если че то и те с шрифтом помогу)))
__________________
Все относительно...
ALF вне форума   Ответить с цитированием
Старый 14.10.2010, 20:32   #38
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от ALF Посмотреть сообщение
??0FCanvasUtil@@QAE@PAVFRenderTarget@@PAVFRenderIn terface@@W4EVertexShader@@W4EPixelShader@@@Z
Конструктор?)
Если да - то огромное тебе спасибо)
С остальным думаю уже сам расберусь!!)
Если че то и те с шрифтом помогу)))
судя по деассемблированому коду да) функция заполняет объект данными и инициализирует их и возвращает в EAX готовый объект канвасутил.

у меня встроиный в игру дизассамблер)))))))))))
Миниатюры
Нажмите на изображение для увеличения
Название: Shot00017.jpg
Просмотров: 263
Размер:	287.6 Кб
ID:	1565  
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 14.10.2010, 21:08   #39
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

как нам получить pfntointer?
методом
GetProcAddress(dll,??0FCanvasUtil@@QAE@ABV0@@Z);?
или как...?
и как хукаешь
??0FCanvasUtil@@QAE@PAVFRenderTarget@@PAVFRenderIn terface@@W4EVertexShader@@W4EPixelShader@@@Z
О_о
__________________
Все относительно...

Последний раз редактировалось ALF, 14.10.2010 в 21:18.
ALF вне форума   Ответить с цитированием
Старый 15.10.2010, 09:30   #40
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

про сплайсинг почитай.
Там нада перехватить функции тока 1 раз при запуске. Шрифт из какова метода я брал в комменте смари. В обоих случаях после вызова их клиентом EAX содержит готовые обьекты

Добавлено через 9 минут
460294749 ася

Последний раз редактировалось mira, 15.10.2010 в 09:30. Причина: Добавлено сообщение
mira вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!