Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];

Вниз

Программа для создания врапперов   Найти похожие ветки 

 
@!!ex ©   (2008-09-17 23:03) [0]

http://yupiistudio.com/Soft/HookMaker.rar

Благодарю за помощь:
Palladin, Renegat.

Прога на входе получает три параметра:
1) файл со списком функций
2) Название длл, которую надо заменить
3) Новое название оригинальной длл

На выходе получаем dpr и pas, которые должны без проблем компилится и работать.
Во всяком случае сейчас заменил OpenGL32.dll в Half-Life, все без проблем заработало.


 
KilkennyCat ©   (2008-09-17 23:15) [1]

а мне где спасибо? :)


 
{RASkov} ©   (2008-09-17 23:18) [2]

и мне... и мне... :)


 
{RASkov} ©   (2008-09-17 23:18) [3]

HookMaker.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.


 
KilkennyCat ©   (2008-09-17 23:26) [4]

Деньги назад!


 
{RASkov} ©   (2008-09-17 23:44) [5]

> Деньги назад!


> и мне... и мне... :)


 
KilkennyCat ©   (2008-09-17 23:48) [6]

То есть, каждому!
:)


 
Германн ©   (2008-09-18 01:47) [7]


> KilkennyCat ©   (17.09.08 23:48) [6]
>
> То есть, каждому!
>

330?


 
KilkennyCat ©   (2008-09-18 01:55) [8]

Германн, приезжай в Питер, выпьем абсенту...


 
Германн ©   (2008-09-18 02:18) [9]


> KilkennyCat ©   (18.09.08 01:55) [8]
>
> Германн, приезжай в Питер, выпьем абсенту...
>

Все приглашения в шестую палату, плииз. Правила уважаем, да?


 
KilkennyCat ©   (2008-09-18 02:20) [10]

Во-вторую, наверное, все-таки...
А где нарушение правил?


 
Германн ©   (2008-09-18 02:50) [11]


> KilkennyCat ©   (18.09.08 02:20) [10]
>
> Во-вторую, наверное, все-таки...
> А где нарушение правил?
>

Ну можно и во-вторую. Но лучше в шестую.


 
@!!ex ©   (2008-09-18 08:31) [12]

> [3] {RASkov} ©   (17.09.08 23:18)
> HookMaker.exe - обнаружена ошибка. Приложение будет закрыто.
> Приносим извинения за неудобства.

А можно поподробне??


 
Шмелъ   (2008-09-18 08:36) [13]

У мну тоже "обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства." сразу после запуска (правда без параметров)


 
@!!ex ©   (2008-09-18 08:59) [14]

Интересное кино, куда-то пропал exit...
И когда я успел его удалить??

Исправил.


 
KilkennyCat ©   (2008-09-18 09:04) [15]

ексит не интересует. интересует: деньги выслал?
Каждому!


 
@!!ex ©   (2008-09-18 10:07) [16]

> [15] KilkennyCat ©   (18.09.08 09:04)

Конечно.
Всю сумму вернул. :)


 
{RASkov} ©   (2008-09-18 11:47) [17]

> [12] @!!ex ©   (18.09.08 08:31)
> А можно поподробне??

Чтоб не гадалось.... в [13] подробно. Т.е.

> сразу после запуска (правда без параметров)


> [14] @!!ex ©   (18.09.08 08:59)
> Исправил.

Ну и отличненько...:)


 
Slym ©   (2008-09-18 12:00) [18]

@!!ex ©   (18.09.08 10:07) [16]
Верни опенсурсом :)


 
Virgo_Style ©   (2008-09-18 13:59) [19]

Вы сначала ее обратно закачайте, а потом уж деньги требуйте.


 
Правильный$Вася   (2008-09-18 14:38) [20]


> Интересное кино, куда-то пропал exit

т.е. теперь враппит в вечном цикле, пока не уложит систему в позу [3]?


 
pasha_golub ©   (2008-09-18 14:44) [21]

Еще раз. ШО это такое? я не понял. извините


 
Palladin ©   (2008-09-18 14:46) [22]

создатель fake библиотек, транслирующих вызовы в не fake библиотеки :)


 
pasha_golub ©   (2008-09-18 14:47) [23]

Ух ты. А зачем?


 
Renegat ©   (2008-09-18 14:50) [24]

Ну вот хотя бы для перехвата функций. Вызывает кто-то функцию, а управление получаем мы!


 
@!!ex ©   (2008-09-18 15:36) [25]

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


 
@!!ex ©   (2008-09-18 15:50) [26]

> [20] Правильный$Вася   (18.09.08 14:38)

Нет. Там вот такой код был:
program HookMaker;

{$APPTYPE CONSOLE}

uses
 SysUtils,
 Maker2 in "Maker2.pas";

begin
 { TODO -oUser -cConsole Main : Insert code here }
 Writeln("Create by @!!ex. Samara 2008");
 Writeln("Thanx: Palladin, Renegat, www.delphimaster.ru");
 if ParamCount<>3 then begin
   Writeln("HookMaker.exe <FuncList> <HookDllName> <OriginalDllName>");
   Writeln("Example: HookMaker.exe funcs.txt OpenGL32.dll Original_OpenGL32.dll");
   exit;//Этого екзита не было.
 end;

 CreateHook(ParamStr(1),ParamStr(2),ParamStr(3));
 Writeln("Press enter for exit...");
 Readln;
end.

Если exit убрать, то без параметров попытается вызвать CreateHook и естественно упадет.


 
pasha_golub ©   (2008-09-18 17:03) [27]


> @!!ex ©   (18.09.08 15:36) [25]
>
> Вообще такие dll позволяют переписывать часть приложения
> не имея исходного кода.

Можно пример? А то я нужности ну не понимаю нифига.


 
@!!ex ©   (2008-09-18 18:13) [28]

> [27] pasha_golub ©   (18.09.08 17:03)
> Можно пример? А то я нужности ну не понимаю нифига.


Я уже привел.
Можно посмотреть как меняется графика в том же GTA:SA при подключении подставной либы dx9 с реализованным блумом.
А вообще то что вам это не нужно - ну так я за вас рад, не используйте. :)


 
@!!ex ©   (2008-09-18 18:32) [29]

Кстати ссылка.
Особенно различие видно на нижних скринах:
http://boris-vorontsov.narod.ru/ss_gtasa_ru.htm

Правда там длл не только блум добавляет, но еще бамп, отражения и тени.


 
@!!ex ©   (2008-09-18 18:38) [30]

Сравните:
http://boris-vorontsov.narod.ru/screenshots/gtasa20.jpg
и
http://boris-vorontsov.narod.ru/screenshots/gtasa21.jpg

Изменена лишь одна dll.


 
{RASkov} ©   (2008-09-18 20:16) [31]

> [30] @!!ex ©   (18.09.08 18:38)

А как сделал скрин на одном и том же практически месте? :) ...с разными dll)


 
@!!ex ©   (2008-09-18 20:52) [32]

> [31] {RASkov} ©   (18.09.08 20:16)

ну так что мешает в длл по условию(например нажатие клавиши) либо просто перенаправлять вызов, либо делать какой-то вызов.
Например, у меня в коде сейчас есть вот такая штука:
procedure glEnd(); stdcall;
begin
 OrigGL.glEnd();
 if (NDC<>0) then
   if (GetAsyncKeyState(VK_RETURN) and $8000) <> 0 then
     unitOldOpenGL32.wglSwapBuffers(NDC);
 On_glEndAfter();
end;


Смысл простой. если нажата клавиша Ентер, то экран меняется после рисования каждого элемента сцены, а не ждет полного завершения отрисовки. В итоге можно понаблюдать как постепенно из кусочков строится сцена. :) Очень позновательно. :))
У Бориса просто отлавливаются нажатия определенных в ini файле конопок и включается или выключается некий эффект по нажатию. ничего сложного.


 
@!!ex ©   (2008-09-18 22:38) [33]

Вот сделал специально примерчик. :)
Режим переключается нажатием одной кнопки, а 4 секунды разницы, это из-за того, что надо переключить режим, нажать принтскрин, перейти к паинту, нажать контрол+в, перейти обратно в игру, переключить режим, сделать принсткрин еще раз.

http://img68.imageshack.us/my.php?image=csnormalef2.jpg
http://img220.imageshack.us/my.php?image=csgrayqv0.jpg

Сейчас пробую с лайтмапами поэкспериментировать. Если получится - удастася уйти от этих жутких ступенек на границе...
Шейдер обещает быть не порстым...


 
{RASkov} ©   (2008-09-18 22:47) [34]

> [33] @!!ex ©   (18.09.08 22:38)

Одна "Ч/Б" другая в цвете. В этом вся разница? :)


 
VirEx ©   (2008-09-18 22:49) [35]

интересная штука..


 
@!!ex ©   (2008-09-18 22:57) [36]

> [34] {RASkov} ©   (18.09.08 22:47)

Ну не буду же я тратить два часа на то, чтобы написать сертезный фильтр. :))
чб тоже все прекрасно демострирует, а кода в шейдере - 2 лишних строчки.


 
pasha_golub ©   (2008-09-19 11:34) [37]


> А вообще то что вам это не нужно - ну так я за вас рад,
> не используйте. :)

Ну шо вы сразу все в штыки? Может действительно нужно, а я не доганяю.


 
@!!ex ©   (2008-09-19 16:15) [38]

> [37] pasha_golub ©   (19.09.08 11:34)

Да не в штыки. Просто если не нужно, ну и отлично. Меньше проблем. :))

Вот чего добился. Эффекты, правда еще сырые, и сделать их достаточно сложно, потому что в глубь движка никто не пускает... :(

Взрыв.
Было:
img81.imageshack.us/my.php?image=csexplosionwu3.jpg
Стало:
img228.imageshack.us/my.php?image=csexplosionhazead3.jpg

Окно.
Было:
img228.imageshack.us/my.php?image=cswindownormaltj8.jpg
Стало:
img81.imageshack.us/my.php?image=cswindowbloomzr7.jpg

P.S.
Наро, может кто знает как сделать.
проблема первая:
 Haze искажает все на кадре, а реально он не может исказить что находится ближе источника искажения... как можно от этого избавится??
проблема вторая:
 Как сделать нормальный Bloom??? То что у меня получается мне вообще не нравится... и инфы адекватной найти не могу...


 
@!!ex ©   (2008-09-19 16:16) [39]

P.P.S.
Еще водичка классная получилось, но в статике она не смотрится вообще, а видео ролик я буду сто лет заливать...


 
@!!ex ©   (2008-09-19 17:40) [40]

А вот и водичка.
http://ifolder.ru/8198263
правда видео захвачено 5 кадров в секунду, но суть вполне передает. :)
Прошу прощения, что на ifolder"e - но у меня больше нигде нет доступа по FTP.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.007 c
2-1223031850
workbench
2008-10-03 15:04
2008.11.16
выделение текста


2-1223552041
Iris
2008-10-09 15:34
2008.11.16
объект-Контейнер


2-1223374553
AlekseyB
2008-10-07 14:15
2008.11.16
Как посчитать сумму


2-1223286290
ANB
2008-10-06 13:44
2008.11.16
Не закрывается форма


4-1200294141
MOZG
2008-01-14 10:02
2008.11.16
Error EOSError 1400





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский