 |
Считать оффсеты с файла - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
31.07.2012, 21:39
|
#1
|
|
|
|
Сержант
|
 Регистрация: 19.12.2009
 Сообщений: 130
 Популярность: 34
 Сказал(а) спасибо: 21
Поблагодарили 86 раз(а) в 32 сообщениях
|
Считать оффсеты с файла
Всем привет , решил сделать так,чтобы программа читала оффсеты с ini файла . Все читает отлично перса находит . Но 1 проблема вот эта функци отказывается воспринимать оффсеты считанные с файла.
Код:
procedure PacketCall(aPParams:PParams); stdcall;
var
CallAddress,pPacket:Pointer;
Len:DWord;
begin
CallAddress:=Pointer(SendPacket);
Len:=aPParams^.Param1;
pPacket:=@aPParams^.Packet;
asm
pushad
mov ecx, dword ptr [BaseAdress]
mov ecx, dword ptr [ecx+$20]
push Len
push pPacket
call CallAddress
popad
end;
end;
Если они прописанны в const , то все хорошо ,а если пытаюсь считать таким способом
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
ini: TIniFile;
Path:String;
function ReadAddr(Section, Ident: string; Default: DWORD): DWORD;
begin
Result := StrToInt64Def('$' + ini.ReadString(Section, Ident, IntToHex(Default, 8)), Default);
// запись на случай если значение не описано в файле
ini.WriteString(Section, Ident, IntToHex(Result, 8));
end;
begin
Path:=Application.ExeName;
Path:=ExtractFileDir(Path);
if Path[Length(Path)]<>'\' then Path:=Path+'\';
ini:=TIniFile.Create(Path+'offset.ini');
base_addr := ReadAddr('Offset', 'BaseAdress',$A571E0);
PK_addr := ReadAddr('Offset', 'BaseAdress',$63DB70);
BaseAdress:=base_addr;
SendPacket:=PK_addr;
end;
Подскажите в чем проблема и как ее исправить . Другие функции типа поиска ID персонажа или имени работают со считыванием из файла,а эта нет
|
|
|
31.07.2012, 22:08
|
#2
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 07.10.2009
 Сообщений: 496
 Популярность: 2687
 Сказал(а) спасибо: 64
Поблагодарили 325 раз(а) в 105 сообщениях
|
Re: Считать оффсеты с файла
________________
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
|
|
|
31.07.2012, 22:19
|
#3
|
|
|
|
Сержант
|
 Регистрация: 19.12.2009
 Сообщений: 130
 Популярность: 34
 Сказал(а) спасибо: 21
Поблагодарили 86 раз(а) в 32 сообщениях
|
Re: Считать оффсеты с файла
Все равно при попытке отправить пакет выкидывает с клиента .
|
|
|
01.08.2012, 01:58
|
#4
|
|
|
|
Пехотинец
|
 Регистрация: 21.03.2012
 Сообщений: 83
 Популярность: 1178
 Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
|
Re: Считать оффсеты с файла
Потому что код выполняется в клиенте, а BaseAdress - пкркменная в вашей программе. Разве клиент имеет доступ к памяти процесса вашей программы, чтобы считать значение переменной? А с константами работает потому, что при компиляции в функции уже готовое значение подставляется вместо BaseAdress. Прямо в функции обьявите переменную бейсадрес наряду с уже обьявленными
CallAddress,pPacket:Pointer;
Len  Word;
А значение BaseAddress передавайте через aPParams
________________
╔═╗
║ ˑ ˑ ╬ ╬
╚═╝
|
|
|
01.08.2012, 08:47
|
#5
|
|
|
|
Сержант
|
 Регистрация: 19.12.2009
 Сообщений: 130
 Популярность: 34
 Сказал(а) спасибо: 21
Поблагодарили 86 раз(а) в 32 сообщениях
|
Re: Считать оффсеты с файла
|
|
|
01.08.2012, 11:19
|
#6
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 07.10.2009
 Сообщений: 496
 Популярность: 2687
 Сказал(а) спасибо: 64
Поблагодарили 325 раз(а) в 105 сообщениях
|
Re: Считать оффсеты с файла
________________
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
|
|
|
01.08.2012, 12:28
|
#7
|
|
|
|
Сержант
|
 Регистрация: 19.12.2009
 Сообщений: 130
 Популярность: 34
 Сказал(а) спасибо: 21
Поблагодарили 86 раз(а) в 32 сообщениях
|
Re: Считать оффсеты с файла
|
|
|
01.08.2012, 12:53
|
#8
|
|
|
|
Разведчик
|
 Регистрация: 23.06.2012
 Сообщений: 43
 Популярность: 427
 Сказал(а) спасибо: 18
Поблагодарили 59 раз(а) в 35 сообщениях
|
Re: Считать оффсеты с файла
|
|
|
01.08.2012, 13:00
|
#9
|
|
|
|
Сержант
|
 Регистрация: 19.12.2009
 Сообщений: 130
 Популярность: 34
 Сказал(а) спасибо: 21
Поблагодарили 86 раз(а) в 32 сообщениях
|
Re: Считать оффсеты с файла
|
|
|
01.08.2012, 14:20
|
#10
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 07.10.2009
 Сообщений: 496
 Популярность: 2687
 Сказал(а) спасибо: 64
Поблагодарили 325 раз(а) в 105 сообщениях
|
Re: Считать оффсеты с файла
________________
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
|
|
|
01.08.2012, 18:14
|
#11
|
|
|
|
Сержант
|
 Регистрация: 19.12.2009
 Сообщений: 130
 Популярность: 34
 Сказал(а) спасибо: 21
Поблагодарили 86 раз(а) в 32 сообщениях
|
Re: Считать оффсеты с файла
Ну вот так получается
Код:
procedure PacketCall(aPParams:PParams); stdcall;
var
CallAddress,pPacket:Pointer;
Len:DWord;
begin
CallAddress:=Pointer(Sendpacket);
Len:=aPParams^.Param1;
pPacket:=@aPParams^.Packet;
asm
pushad
mov ecx, dword ptr [BA]
mov ecx, dword ptr [ecx+$20]
push Len
push pPacket
call CallAddress
popad
end;
end;
procedure Packet(Packet:string);
var
aParams:TParams;
hProcess:DWord;
begin
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,FID[form2.ComboBox15.ItemIndex]);
StrToByte(Packet,aParams);
InjectFunc(hProcess,@PacketCall,@aParams,sizeof(aParams));
CloseHandle(hProcess);
end;
|
|
|
01.08.2012, 21:22
|
#12
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 07.10.2009
 Сообщений: 496
 Популярность: 2687
 Сказал(а) спасибо: 64
Поблагодарили 325 раз(а) в 105 сообщениях
|
Re: Считать оффсеты с файла
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Ну вот так получается
|
|
 |
|
 |
|
Вот, что значат эти слова? Типо так работает? Если хочешь помощи - постарайся писать развернуто.
У меня опускаются руки когда я вижу подобный неадекват...
Ты осознаешь, что вот это :
Код:
procedure PacketCall(aPParams:PParams); stdcall;
var
CallAddress,pPacket:Pointer;
Len:DWord;
begin
CallAddress:=Pointer(Sendpacket);
Len:=aPParams^.Param1;
pPacket:=@aPParams^.Packet;
asm
pushad
mov ecx, dword ptr [BA]
mov ecx, dword ptr [ecx+$20]
push Len
push pPacket
call CallAddress
popad
end;
end;
В корне отличается от этого:
Код:
procedure PacketCall(aPParams:PParams); stdcall;
var
CallAddress,pPacket:Pointer;
Len:DWord;
aParams: TParams;
SendPacket1,BaseAdress1:dword;
begin
aParams.Param2 := BaseAdress;
aParams.Param3 := SendPacket;
SendPacket1 := aPParams^.Param3;
BaseAdress1:=aPParams^.Param2;
CallAddress:=Pointer(SendPacket1);
Len:=aPParams^.Param1;
pPacket:=@aPParams^.Packet;
asm
pushad
mov ecx, BaseAdress1
mov ecx, dword ptr [ecx]
mov ecx, dword ptr [ecx+$20]
push Len
push pPacket
call CallAddress
popad
end;
end;
А я спрашивал как ты запускаешь второй в этом топике вариант, а не то что ты выложил в последний раз. и видимо запускал в первый.
________________
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
|
|
|
01.08.2012, 21:38
|
#13
|
|
|
|
Разведчик
|
 Регистрация: 23.06.2012
 Сообщений: 43
 Популярность: 427
 Сказал(а) спасибо: 18
Поблагодарили 59 раз(а) в 35 сообщениях
|
Re: Считать оффсеты с файла
krukovis, Хорошо, тогда подскажи где косяк здесь
Код:
procedure AutoRouteCall(aPParams:PParams); stdcall;
var
cmd,addr: Pointer;
araddr:dword;
begin
araddr:=aPParams^.Param3;
cmd:=@aPParams^.buf;
addr :=pointer(araddr);
asm
pushad
mov eax, dword ptr [$00A571E0]
mov eax, dword ptr [eax +$001c]
mov ecx, dword ptr [eax +$0034]
push cmd
call addr
popad
end;
end;
возможно тип araddr не верный т.к. не срабатывает call addr, сразу выбивает. Если в этом дело подскажи какой тип нужно присваивать araddr.
Последний раз редактировалось fds255; 01.08.2012 в 21:42.
|
|
|
01.08.2012, 22:04
|
#14
|
|
|
|
Сержант
|
 Регистрация: 19.12.2009
 Сообщений: 130
 Популярность: 34
 Сказал(а) спасибо: 21
Поблагодарили 86 раз(а) в 32 сообщениях
|
Re: Считать оффсеты с файла
Блин я не понял просто , что ты хочешь чтобы я скинул
Читаю из файла так
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
ini: TIniFile;
Path:String;
function ReadAddr(Section, Ident: string; Default: DWORD): DWORD;
begin
Result := StrToInt64Def('$' + ini.ReadString(Section, Ident, IntToHex(Default, 8)), Default);
// запись на случай если значение не описано в файле
ini.WriteString(Section, Ident, IntToHex(Result, 8));
end;
begin
Path:=Application.ExeName;
Path:=ExtractFileDir(Path);
if Path[Length(Path)]<>'\' then Path:=Path+'\';
ini:=TIniFile.Create(Path+'offset.ini');
base_addr := ReadAddr('Offset', 'BaseAdress',$A571E0);
PK_addr := ReadAddr('Offset', 'BaseAdress',$63DB70);
BaseAdress:=base_addr;
SendPacket:=PK_addr;
end;
Сую сюда
Код:
procedure PacketCall(aPParams:PParams); stdcall;
var
CallAddress,pPacket:Pointer;
Len:DWord;
aParams: TParams;
SendPacket1,BaseAdress1:dword;
begin
aParams.Param2 := BaseAdress;
aParams.Param3 := SendPacket;
SendPacket1 := aPParams^.Param3;
BaseAdress1:=aPParams^.Param2;
CallAddress:=Pointer(SendPacket1);
Len:=aPParams^.Param1;
pPacket:=@aPParams^.Packet;
asm
pushad
mov ecx, BaseAdress1
mov ecx, dword ptr [ecx]
mov ecx, dword ptr [ecx+$20]
push Len
push pPacket
call CallAddress
popad
end;
end;
Вылетает пв , хотя перса и его имя находит
|
|
|
01.08.2012, 22:13
|
#15
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 07.10.2009
 Сообщений: 496
 Популярность: 2687
 Сказал(а) спасибо: 64
Поблагодарили 325 раз(а) в 105 сообщениях
|
Re: Считать оффсеты с файла
________________
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
Последний раз редактировалось krukovis; 01.08.2012 в 22:18.
Причина: Добавлено сообщение
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Оффсеты
|
maloia |
Cross Fire |
13 |
30.04.2012 11:29 |
[Помогите!] Оффсеты
|
firuzikh10 |
Общение разработчиков |
1 |
21.04.2012 17:03 |
оффсеты
|
саня питерский |
Вопросы и ответы, обсуждения |
3 |
25.01.2012 08:29 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 01:23.
|
 |