Показать сообщение отдельно
Старый 27.09.2010, 22:52   #7
Пользователь
 
Аватар для 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';
type
TBOB 
procedure(x,y:Integertextfont:PCharcolor:TColor); stdcall;


procedure HelloWorld();
var
        
DLLInstance THandle;
        
BOBTBOB;
        
font,text:string;
begin
        
загружаем DLL }
        
DLLInstance := LoadLibrary('Engine.dll');
   @
BOB := GetProcAddress(DLLInstanceadres);
font:=PChar('Font1')'
text:=PChar('
ssssssssss');
       asm
        push 0FFFFFFh
        push font
        push text
        push 100h
        push 100h
mov ecx, адрес фунции??? какой...?
        call [BOB]
    end;

    FreeLibrary(DLLInstance);


end;

{Какой-нибудь код, в котором используется SomeBuffer.}

exports
        HelloWorld;
begin
end. 
Цитата:
указатель на обьект класа канваса, который луче всего получить перехватив один из его методов (курим тему хуков)
вот тут я и не понял...
Нам надо указать адрес функции
PHP код:
?DrawString@FCanvasUtil@@QAEHHHPBGPAVUFont@@VFColor@@@
или чего? О_о
У меня есть полностью от "Декомпилированый" engine.dll прогой IDA pro (думаю знаете). но все равно туплю)
в пушом параметров - понял)))
но в регистр ecx - хз О_о
Пробовал без него - клиент запустился, на екране пусто)

Добавлено через 21 час 47 минут
потупил я потупил и пришла в голову мысль в еах засунуть адрес
PHP код:
FCanvasUtil::~FCanvasUtil 
Только какой именно? тот что получают методом GetProcAddress? или туда надо оригинальный RVA?

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