Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.16;
Скачать: CL | DM;

Вниз

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

 
@!!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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.015 c
2-1223554456
i
2008-10-09 16:14
2008.11.16
узнать размер файла по http..


2-1222265965
Добежал
2008-09-24 18:19
2008.11.16
Наследники TList


15-1221719515
Azize
2008-09-18 10:31
2008.11.16
Китайцы создали компьютер мощностью 230 триллионов операций в сек


15-1221658793
Terasbetoni
2008-09-17 17:39
2008.11.16
3Д-движок, работающий с кривыми поверхностями.


2-1223364754
renex
2008-10-07 11:32
2008.11.16
синхронизация времени с сервером datasnap