Хотел бы с тобой пообщаться,может даш скайп или как с тобой связаться для быстрой переписки,видел l2cc
Добавлено через 4 часа 35 минут
Поковырялся,и подумал посидел, в итоге у меня что то получилось.
Взял тотал командер, через F3 вытянул названия из
Engine.dll, т.е названия функций.Так как у меня
Interlude клиент был под рукой,взял самую мне необходимую.
?RequestBypassToServer@UNetworkHandler@@UAEHAAVL2P aramStack@@@Z
И начал ковырять.
Написал код библиотеки:
Оффтоп
Delphi Код:
library Project2;
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,advApiHook, StdCtrls;
{$R *.res}
var
RequestBypassToServer_Old: function (lpLibFileName: PAnsiChar): integer;
function RequestBypassToServer_New: Integer;
begin
MessageDlg('Функция RequesBypassToServer была вызвана.',mtError, [mbOk],0);
//result:=RequestBypassToServer_Old('Engine.dll');
end;
begin
HookProc('Engine.dll','?RequestBypassToServer@UNetworkHandler@@UAEHAAVL2ParamStack@@@Z', @RequestBypassToServer_New, @RequestBypassToServer_Old);
end.
Взял
WinInject 1.7b и прииньектил к
L2.exe мою скомпилированую dll.
Все заработало.
Подхожу к NPC и нажимаю любой диалог, сразу ще выскакивает сообщение "Функция RequesBypassToServer была вызвана."
Вроде все не так уж и плохо.Но в игре действия не происходит,так как не возвращается результат.
Дальше я изменил функцию свою на :
function RequestBypassToServer_New: Integer;
begin
MessageDlg('Функция RequesBypassToServer была вызвана.',mtError, [mbOk],0);
result:=RequestBypassToServer_Old('Engine.dll');
end;
И сразу же выскакивает критом,я понял что результат не возвращается.
Теперь у меня задача,получать параметры от функций а так же их грамотно отправлять.
Помогите с этим.