Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Разработка
Войти через OpenID

Разработка Раздел для совместной разработки/доработки программы

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 17.10.2008, 22:05   #1
Пользователь
 
Регистрация: 10.10.2007
Сообщений: 39
Сказал Спасибо: 0
Имеет 7 спасибок в 5 сообщенях
Argot
По умолчанию

Особождайте ее в unhook`e

тонее она там освобождается

Код:
   function UnhookCode(OldProc: pointer): boolean;
var
  OldProtect: dword;
  Proc: pointer;
  SaveSize: dword;
begin
  Result := True;
  try
    Proc := pointer(dword(pointer(dword(OldProc) - 5)^));
    SaveSize := byte(pointer(dword(OldProc) - 1)^);
    VirtualProtect(Proc, 5, PAGE_EXECUTE_READWRITE, OldProtect);
    CopyMemory(Proc, OldProc, SaveSize);
    VirtualProtect(Proc, 5, OldProtect, OldProtect);
    FreeMem(pointer(dword(OldProc) - 5));
  except
    Result := False;
  end;
end;

Последний раз редактировалось Argot, 17.10.2008 в 22:08.
Argot вне форума   Ответить с цитированием
Старый 17.10.2008, 22:23   #2
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от Argot Посмотреть сообщение
Особождайте ее в unhook`e
На сколько я помню он нигде не вызывается.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 18.10.2008, 08:15   #3
Пользователь
 
Регистрация: 10.10.2007
Сообщений: 39
Сказал Спасибо: 0
Имеет 7 спасибок в 5 сообщенях
Argot
По умолчанию

Цитата:
Сообщение от NLObP Посмотреть сообщение
На сколько я помню он нигде не вызывается.
это как говорится уже ваши проблемы что вы не вызываете )).

Да и правда особой надобности нет. в Вызове.
Argot вне форума   Ответить с цитированием
Старый 20.10.2008, 09:16   #4
Пользователь
 
Регистрация: 28.06.2008
Сообщений: 33
Сказал Спасибо: 12
Имеет 15 спасибок в 8 сообщенях
RoZ пока неопределено
По умолчанию

Шаблон Plugin на С++ для маньяков
Реализовано:
char* GetPluginInfo(int ver);
void OnPacket(unsigned long int cnt,bool fromServer,char* packet);
bool SetStruct(PluginStruct * PStruct);
void OnConnect(unsigned long int cnt,bool withServer);
void OnDisconnect(unsigned long int cnt,bool withServer);
void OnLoad();
void OnFree();

для отсылки пакетов используется "SendPckData(void* pck,const unsigned char tid,bool ToServer)"
Вложения
Тип файла: rar plugin.rar (3.6 Кб, 53 просмотров)
RoZ вне форума   Ответить с цитированием
За это сообщение RoZ нажился 5 спасибками от:
Старый 20.10.2008, 19:48   #5
Местный
 
Регистрация: 18.02.2008
Сообщений: 141
Сказал Спасибо: 16
Имеет 66 спасибок в 30 сообщенях
ratvier
По умолчанию

Ну раз уж такое дело, вот хидер для си (так же совместим с с++)
Вложения
Тип файла: rar main.rar (466 байт, 50 просмотров)
ratvier вне форума   Ответить с цитированием
За это сообщение ratvier нажился спасибкой от:
Старый 24.10.2008, 18:19   #6
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

ты зачем из файлового архива прогу удалил?, народ её в первую очередь там ищет, а про эту тему знают не многие...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 24.10.2008, 22:13   #7
Пользователь
 
Регистрация: 28.06.2008
Сообщений: 33
Сказал Спасибо: 12
Имеет 15 спасибок в 8 сообщенях
RoZ пока неопределено
По умолчанию

Баг:
Код:
PktStr:=HexToString(Copy(Thread[CID].Dump.Strings[PckCount],23,4));
    //LeaveCriticalSection(_cs);
    id:=Byte(PktStr[1]);                   //фактическое начало пакета, ID
    SubId:=Word(id shl 8+Byte(PktStr[2])); //считываем SubId
При PktStr = '' выдаёт ошибку на id:=Byte(PktStr[1]);
добавьте проверку.

Пакет 03DEFAC3A9E9ADEB3F0200

для проверки прикрепил лог пакетов
Вложения
Тип файла: rar log_24.rar (5.0 Кб, 48 просмотров)
RoZ вне форума   Ответить с цитированием
Старый 25.10.2008, 21:28   #8
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

и всётаки зря кто то сделал:
delphi Код:
//проверяем на выход за границу пакета   if PosInPkt>Size+10 then raise ERangeError.CreateFmt(result+' is not within the valid range of %d', [Size]);
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 26.10.2008, 02:18   #9
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от xkor Посмотреть сообщение
и всётаки зря кто то сделал:
delphi Код:
//проверяем на выход за границу пакета   if PosInPkt>Size+10 then raise ERangeError.CreateFmt(result+' is not within the valid range of %d', [Size]);
Revision: 60
Author: nlobp
Date: 1:17:05, 26 октября 2008 г.
Message:
[*] изменил реагирование на ошибку выхода за границу пакета, пишем в расшифровку пакета 'range error'
[*] на вкладке "просмотр" и "посылка" добавил показ места, где расположены данные, по клику мыши и нажатию клавиш (стрелок) вверх/вниз.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 26.10.2008, 02:51   #10
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

NLObP, хм, обосную плиз позицию строк
if value='range error' then exit;
потому как по хорошему они должны следовать сразу за вызовом value:=GetValue(...)
а у тебя получается что могут сработать строки типа
if param1='FUNC01' then value:=GetFunc01(strtoint(value))
когда value='range error' а это приведёт к ошибке...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Разработка



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

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


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

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

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