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

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

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

Цитата:
Сообщение от ALF Посмотреть сообщение
Спасибо. Откомпилировалось нормально. Появилсь ДЛЛ-ка. Но что с ней делать то? О_о
инжектит в игру) причем до инициализации ДХ интерфеса, тоесть сразу при запуске
Morfik вне форума   Ответить с цитированием
Старый 02.10.2010, 23:56   #22
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

Цитата:
Сообщение от Morfik Посмотреть сообщение
инжектит в игру) причем до инициализации ДХ интерфеса, тоесть сразу при запуске
Приведи плиз пример кода инжекта)
PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsStdCtrlsExtCtrls;

type
  TForm1 
= class(TForm)
    
Button1TButton;
    
Timer1TTimer;
    
procedure Button1Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

uses Direct3D9madCodeHook;

procedure TForm1.Button1Click(SenderTObject);
var
  
startTStartupInfo;
  
procInfoTProcessInformation;

begin
  ZeroMemory
(@startSizeOf(start));
  
start.cb:=SizeOf(Start);
  if 
CreateProcessA('C:\Games\LineAge\system\l2.exe',
                 
''nilnilTrueCREATE_SUSPENDEDnil,
                 
'C:\Games\LineAge\system'startprocInfothen
  begin
    
if not InjectLibraryA(procInfo.hProcess'my_lib.dll'then
      ShowMessage
('failed');
    
ResumeThread(procInfo.hThread);
  
end;
end;

end
а то этим не получается ><

Добавлено через 5 часов 1 минуту
Терь проблема другая)
Инжект вроде получился (с помощью кода, указанного выше)
НО на экране ниче не увидел)
__________________
Все относительно...

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

Цитата:
Сообщение от ALF Посмотреть сообщение
Спасибо. Откомпилировалось нормально. Появилсь ДЛЛ-ка. Но что с ней делать то? О_о
если я все прально понимаю ее нужно просто подгрузить приложением =)
кстате директ-х хеадеры этиже пользую, но хукаю чуток не так
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 03.10.2010, 11:37   #24
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

Мож исход скинуть как ты подгружаешь )
__________________
Все относительно...
ALF вне форума   Ответить с цитированием
Старый 03.10.2010, 18:59   #25
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от ALF Посмотреть сообщение
Мож исход скинуть как ты подгружаешь )
а никак я вообще в d3ddrv.dll поменял в таблице импортa
d3d9.dll на свою iohp.dll пока нет никакова чекера файлов на серве не буду морочитса с инжектом
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 03.10.2010, 20:05   #26
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

О_о что за "iohp.dll"?
__________________
Все относительно...
ALF вне форума   Ответить с цитированием
Старый 04.10.2010, 01:12   #27
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от ALF Посмотреть сообщение
О_о что за "iohp.dll"?
враппер для d3d9.dll (гуглю в помощ) а по совместительству ядро самой программы

ЗЫ п
римитивный скрипт для фарма СОД for mamba

Последний раз редактировалось mira, 01.12.2010 в 19:28.
mira вне форума   Ответить с цитированием
Старый 04.10.2010, 01:15   #28
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

PHP код:
library MyFirstDLL;
uses
  SysUtils
,
  
Classes,
  
Graphics,
  
Forms,
  
Windows;
const
adres '?DrawString@FCanvasUtil@@QAEHHHPBGPAVUFont@@VFColor@@@Z';
adres1 '??1FCanvasUtil@@UAE@XZ';
adres2 '?Render@FPlayerSceneNode@@UAEXPAVFRenderInterface@@@Z';
text ='ALF';

procedure HelloWorld();
var
        
DLLInstance THandle;
        
FCanvasUtilAddr,BOBPByte;
        
font:string;
        
x,y:integer;
begin
    
загружаем DLL }
    
DLLInstance := LoadLibrary('Engine.dll');
    
BOB := GetProcAddress(DLLInstanceadres);
    
FCanvasUtilAddr := GetProcAddress(DLLInstanceadres1);
    
font :='Engine.DefaultFont'; {ХЗ КАКОЙ ШРИФТ ЮЗАЕТ ЛИНЕЙКА}
    
x:=200;
    
y:=200;
     
asm
    push 00FF0000h   
{цвет}
    
push dword [font]{ШрифтВ ФОРМАТЕ UFont я хз как}
    
push word [text] {Текст}
    
push y           {у}
    
push x           {х}
    
mov  ecxFCanvasUtilAddr
    call 
[BOB]       {вызываем FCanvasUtil :: DrawString(int xint yushort const *, UFont *, FColor)}
    
end;
    
FreeLibrary(DLLInstance);
end;

procedure FLayerCanvasRendercdecl;
asm
    
{перед вызовом FPlayerSceneNode :: Render рисуем текст}
  
call HelloWorld
  retf    0DC24h
end
;

procedure doDll();
var
        
DLLInstance THandle;
        
PlayerScenAdrPByte;
        
OffsetDWORD;
begin
    
загружаем DLL }
    
DLLInstance := LoadLibrary('Engine.dll');
    {
перехвачиваем FPlayerSceneNode::Render}
    
PlayerScenAdr := GetProcAddress(DLLInstanceadres2);
     if 
VirtualProtectEx(GetCurrentProcess,PlayerScenAdr,10,PAGE_EXECUTE_READWRITE,Offsetthen begin
     PlayerScenAdr
^ := $E9;
     
Offset := Dword(@FLayerCanvasRender)-DWord(PlayerScenAdr)-5;
     
move(Offset,Pointer(DWord(PlayerScenAdr)+1)^,sizeof(Offset));
    
end;


end;

exports
        doDll
;

begin
 doDll
();
end
Вот мой код.
Осталось подправить аргумент шрифта)
UFont - хз как там
__________________
Все относительно...

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

Цитата:
Сообщение от ALF Посмотреть сообщение
PHP код:
library MyFirstDLL;
uses
  SysUtils
,
  
Classes,
  
Graphics,
  
Forms,
  
Windows;
const
adres '?DrawString@FCanvasUtil@@QAEHHHPBGPAVUFont@@VFColor@@@Z';
adres1 '??1FCanvasUtil@@UAE@XZ';
adres2 '?Render@FPlayerSceneNode@@UAEXPAVFRenderInterface@@@Z';
text ='ALF';

procedure HelloWorld();
var
        
DLLInstance THandle;
        
FCanvasUtilAddr,BOBPByte;
        
font:string;
        
x,y:integer;
begin
    
загружаем DLL }
    
DLLInstance := LoadLibrary('Engine.dll');
    
BOB := GetProcAddress(DLLInstanceadres);
    
FCanvasUtilAddr := GetProcAddress(DLLInstanceadres1);
    
font :='Engine.DefaultFont'; {ХЗ КАКОЙ ШРИФТ ЮЗАЕТ ЛИНЕЙКА}
    
x:=200;
    
y:=200;
     
asm
    push 00FF0000h   
{цвет}
    
push dword [font]{ШрифтВ ФОРМАТЕ UFont я хз как}
    
push word [text] {Текст}
    
push y           {у}
    
push x           {х}
    
mov  ecxFCanvasUtilAddr
    call 
[BOB]       {вызываем FCanvasUtil :: DrawString(int xint yushort const *, UFont *, FColor)}
    
end;
    
FreeLibrary(DLLInstance);
end;

procedure FLayerCanvasRendercdecl;
asm
    
{перед вызовом FPlayerSceneNode :: Render рисуем текст}
  
call HelloWorld
  retf    0DC24h
end
;

procedure doDll();
var
        
DLLInstance THandle;
        
PlayerScenAdrPByte;
        
OffsetDWORD;
begin
    
загружаем DLL }
    
DLLInstance := LoadLibrary('Engine.dll');
    {
перехвачиваем FPlayerSceneNode::Render}
    
PlayerScenAdr := GetProcAddress(DLLInstanceadres2);
     if 
VirtualProtectEx(GetCurrentProcess,PlayerScenAdr,10,PAGE_EXECUTE_READWRITE,Offsetthen begin
     PlayerScenAdr
^ := $E9;
     
Offset := Dword(@FLayerCanvasRender)-DWord(PlayerScenAdr)-5;
     
move(Offset,Pointer(DWord(PlayerScenAdr)+1)^,sizeof(Offset));
    
end;


end;

exports
        doDll
;

begin
 doDll
();
end
Вот мой код.
Осталось подправить аргумент шрифта)
UFont - хз как там
выложи скрин че там получилось)
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 04.10.2010, 01:23   #30
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
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 хД
__________________
Все относительно...

Последний раз редактировалось ALF, 04.10.2010 в 01:25. Причина: Добавлено сообщение
ALF вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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