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

Полезности Исключительно для полезных тем из других разделов.
Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 05.10.2010, 14:35   #171
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

mira, нужен особый, уличный таргет)))
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 06.10.2010, 03:02   #172
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Guzh пока неопределено
По умолчанию

Не дождался помощи,пришлось сделать самому. Все отлично работает. В таргет дагера можно взять, но ничего нельзя сделать, т.е. нажимаешь атаковать таргет слетает. Осталось научиться рисовать в окне линейки. КТонить поможет?=) Способ директХ не подходит, так как там нужно хукать до инициализации, а я подключаюсь к игре после.

Последний раз редактировалось Guzh, 06.10.2010 в 03:06.
Guzh вне форума   Ответить с цитированием
Старый 06.10.2010, 16:42   #173
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Guzh, открой самое начало этой темы, там же написано как рисовать используя функции л2.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 06.10.2010, 16:53   #174
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Guzh пока неопределено
По умолчанию

Цитата:
Сообщение от Yegor Посмотреть сообщение
Guzh, открой самое начало этой темы, там же написано как рисовать используя функции л2.
Это ответ такой?=) Понятно все с вами=). Перефразирую.
Вначале написано,что рисуем после FPlayerSceneNode::Render(class FRenderInterface *), используем FCanvasUtil. Вопрос, как использовать FCanvasUtil ? Создаем вот этим FCanvasUtil::FCanvasUtil(FRenderTarget *,FRenderInterface *,EVertexShader,EPixelShader). Подскажите что передавать в виде параметров? Где их взять.
Или так, есть ли способ и как рисовать в окне игры через DX но перехватывать после инициализации?

Последний раз редактировалось Guzh, 06.10.2010 в 16:56.
Guzh вне форума   Ответить с цитированием
Старый 06.10.2010, 18:17   #175
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от Guzh Посмотреть сообщение
Это ответ такой?=) Понятно все с вами=). Перефразирую.
Вначале написано,что рисуем после FPlayerSceneNode::Render(class FRenderInterface *), используем FCanvasUtil. Вопрос, как использовать FCanvasUtil ? Создаем вот этим FCanvasUtil::FCanvasUtil(FRenderTarget *,FRenderInterface *,EVertexShader,EPixelShader). Подскажите что передавать в виде параметров? Где их взять.
Или так, есть ли способ и как рисовать в окне игры через DX но перехватывать после инициализации?
написали ведь что проще перехватить уже готовый обьект чем создавать новый, зачем тебе лезть в дебри
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 06.10.2010, 19:52   #176
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Guzh пока неопределено
По умолчанию

Цитата:
Сообщение от mira Посмотреть сообщение
написали ведь что проще перехватить уже готовый обьект чем создавать новый, зачем тебе лезть в дебри
А можно какую-нибудь более конструктивную помощь?

Добавлено через 59 минут
Не получается почемуто воспользоваться уже готовым канвасом

Есть кусок кода:
Код:
___:2025114F                 call    ??0FCanvasUtil@@QAE@PAVFRenderTarget@@PAVFRenderInterface@@W4EVertexShader@@W4EPixelShader@@@Z ; FCanvasUtil::FCanvasUtil(FRenderTarget *,FRenderInterface *,EVertexShader,EPixelShader)
...
___:202511BE                 call    ?DrawTile@FCanvasUtil@@QAEXMMMMMMMMMPAVUMaterial@@ABVFColor@@@Z ; FCanvasUtil::DrawTile(float,float,float,float,float,float,float,float,float,UMaterial *,FColor const &)
___:202511C3                 mov     byte ptr [ebp+74h+var_78], 0Bh
___:202511C7                 lea     ecx, [ebp+74h+var_254]
___:202511CD                 call    ??1FCanvasUtil@@UAE@XZ ; FCanvasUtil::~FCanvasUtil(void)
Перехватываю:
Код:
___:2025114F                 call    ??0FCanvasUtil@@QAE@PAVFRenderTarget@@PAVFRenderInterface@@W4EVertexShader@@W4EPixelShader@@@Z ; FCanvasUtil::FCanvasUtil(FRenderTarget *,FRenderInterface *,EVertexShader,EPixelShader)
...
___:202511BE                 call    ?DrawTile@FCanvasUtil@@QAEXMMMMMMMMMPAVUMaterial@@ABVFColor@@@Z ; FCanvasUtil::DrawTile(float,float,float,float,float,float,float,float,float,UMaterial *,FColor const &)
___:202511C3                 mov     byte ptr [ebp+74h+var_78], 0Bh
___:202511C7                 JMP NEAR MY_HOOK
___:202511CC                 nop
___:202511CD                 call    ??1FCanvasUtil@@UAE@XZ ; FCanvasUtil::~FCanvasUtil(void)
мой кусок
My_Hook:
Код:
CODE:0FD436E0                 lea     ecx, [ebp-1E0h]
CODE:0FD436E6                 jmp     loc_FD436BC
Код:
CODE:0FD436BC                 push    202511CDh
CODE:0FD436C1                 retn
Вылезает ошибка:
History: CAuthSocket::OnUserNetmessage <- UWindowsViewport::ViewportWndProc <- WWindow::StaticProc <- DispatchMessage <- 00550B00 1290 <- MessagePump <- MainLoop

хз почему

Последний раз редактировалось Guzh, 06.10.2010 в 19:52. Причина: Добавлено сообщение
Guzh вне форума   Ответить с цитированием
Старый 06.10.2010, 20:37   #177
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

невтыкаю что за маневры выполняет my_hook )))
ложит в ЕСХ какуюто локальную переменную
сует в стек как я понял адрес возврата.

в итоге ??1FCanvasUtil@@UAE@XZ вызываетса с какимто непонятным "экземпляром класса" когда в ЕСХ должен лежать обьект из [ebp+74h+var_254]

Добавлено через 13 минут
Код:
procedure __AddNetworkQueue_Hook;
begin
 asm
  pushad
  mov EAX , ECX
  mov UNETWORKHANDLER_a, EAX // сохряняем в глобальной переменной указатель на обьект end;
 EnterCriticalSection(CSSS);
  //получаем указатель на сендпакет
  pSendPacket:=PPointer(Pdword(PDword(dword(UNETWORKHANDLER_a)+$48)^)^+$6C)^;
  ppSendPacket:=Pointer(Pdword(PDword(dword(UNETWORKHANDLER_a)+$48)^)^+$6C);
  pNetworkObject:=Ppointer(dword(UNETWORKHANDLER_a)+$48)^;
  // снимает сплайсинг отменяем перехват
  TTM.ResetTrap(phtrap);
  phtrap:=nil;
 LeaveCriticalSection(CSSS);
 IDirect3DDevice9H(idev_).StrWrite('done : packet trap unmounted',0);
 // устанавливаем перехват адднетворк... через VMT таблицу (сплайс для нас слишком грубо)
 InitVMTHandlers;
 // устанавливаем хук на сендпакет тоже
 TL2C.nhandler._hphandler:=TTM.SetupIndirectTrap(pointer(ppSendPacket),0,@_sendpacket_trap,@_postsendpacket_trap,false);
 //восстанавливаем все регистры и стек
 asm
  popad
  xor eax, eax
  not eax
  ret 004
 end;
end;


function HandleNetworkTrap:BOOL;
var
 forig : pointer;
 dll:DWORD;
begin
 EnterCriticalSection(CSSS);
 try
 try
 result:=false;
 if UNETWORKHANDLER_a<>nil then exit;
 dll:=GetModuleHandle('engine.dll');
 forig:=GetProcAddress(dll,'?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkPacket@@@Z');
 //делаем хук через сплайсинг
 phtrap:=TTM.SetupHardTrap(forig,0,@__AddNetworkQueue_Hook);
 if phtrap<>nil then begin
  IDirect3DDevice9H(idev_).StrWrite('done : packet trap mounted',0);
  result:=true;
 end;
 if phtrap=nil then begin
  IDirect3DDevice9H(idev_).StrWrite('error : mounting packet trap',0);
  exit;
 end;
 finally
  LeaveCriticalSection(CSSS);
 end;
 except
  smessage('error : setup trap critical error');
 end
end;
а перехватить ченеть типа этого невозможно?)
так я получаю указатели на обьект нетворкхандлера

Последний раз редактировалось mira, 06.10.2010 в 20:37. Причина: Добавлено сообщение
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 06.10.2010, 20:47   #178
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Guzh пока неопределено
По умолчанию

my_hook ничего не делает,просто пропускает через себя
а в CX и лежит [ebp+74h+var_254], только запись другая [ebp-1E0h]

Добавлено через 10 минут
Цитата:
Сообщение от mira Посмотреть сообщение
а перехватить ченеть типа этого невозможно?)
так я получаю указатели на обьект нетворкхандлера
Там я норм перехватываю, а тут я пытаюсь впихнуться в момент,когда объект Fcanvasutils уже создан, но еще не удален, как вверху предлагали воспользоваться уже готовым объектом

Последний раз редактировалось Guzh, 06.10.2010 в 20:47. Причина: Добавлено сообщение
Guzh вне форума   Ответить с цитированием
Старый 06.10.2010, 20:53   #179
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от Guzh Посмотреть сообщение
my_hook ничего не делает,просто пропускает через себя
а в CX и лежит [ebp+74h+var_254], только запись другая [ebp-1E0h]

Добавлено через 10 минут


Там я норм перехватываю, а тут я пытаюсь впихнуться в момент,когда объект Fcanvasutils уже создан, но еще не удален, как вверху предлагали воспользоваться уже готовым объектом
уверен что var_254 этьо константа? и вообще что адреса не меняютса, ты же пользуеш прямую адресацию а не относительную
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 06.10.2010, 21:39   #180
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Guzh пока неопределено
По умолчанию

Цитата:
Сообщение от mira Посмотреть сообщение
уверен что var_254 этьо константа? и вообще что адреса не меняютса, ты же пользуеш прямую адресацию а не относительную
Программа перед тем,как сделать хук,скопировала то,что там было ( lea ecx, [ebp-1E0h]) и вычислила адрес для возврата и добавила его в пуш(CODE:0FD436BC push 202511CDh). Если адрес меняется только при загрузке, то все норм будет, а если в течении сеанса меняется(что наврядли), то будет ошибка
Guzh вне форума   Ответить с цитированием
За это сообщение Guzh нажился спасибкой от:
Ответ

  CoderX :: Forums > Основные форумы > Полезности



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

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


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

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

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