Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Инжект таргета и др.

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 21.01.2012, 12:20   #1
 Пехотинец
Аватар для Jok3r666
 
Jok3r666 скоро будет известенJok3r666 скоро будет известенJok3r666 скоро будет известен
Регистрация: 17.05.2010
Сообщений: 53
Популярность: 204
Сказал(а) спасибо: 11
Поблагодарили 15 раз(а) в 6 сообщениях
 
По умолчанию Инжект таргета и др.

Обьясните на пальцах почему когда я ставлю вместо $B27A04 переменную которая содержит этот адрес, клиент вылетает (выделяет и вылетает)
Код:
    MOV EDI, P1                             // ?????? WID ???? ? ??????? EDI
    MOV EBX,$006686E0                   
    MOV EAX,DWORD PTR DS:[$B27A04]          //
    PUSH EDI                                // ; /Arg1
    MOV ECX,DWORD PTR DS:[EAX+$20]          // ; |
    ADD ECX,$0EC                            // ; |
    CALL EBX
Не могу одуплить, никак блин.
  Ответить с цитированием
Старый 21.01.2012, 13:15   #2
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Инжект таргета и др.

Потому что переменная находится вне зоны видимости потока, созданного в процессе игры. Если используешь инжектор кода, то юзай конкретные числа (в C++ для этого очень хорошо подходит #define, если в дельфи есть его аналоги - смело дерзай).
  Ответить с цитированием
Старый 21.01.2012, 14:41   #3
 Пехотинец
Аватар для Jok3r666
 
Jok3r666 скоро будет известенJok3r666 скоро будет известенJok3r666 скоро будет известен
Регистрация: 17.05.2010
Сообщений: 53
Популярность: 204
Сказал(а) спасибо: 11
Поблагодарили 15 раз(а) в 6 сообщениях
 
По умолчанию Re: Инжект таргета и др.

Цитата:
Сообщение от BritishColonistПосмотреть сообщение
Потому что переменная находится вне зоны видимости потока, созданного в процессе игры. Если используешь инжектор кода, то юзай конкретные числа (в C++ для этого очень хорошо подходит #define, если в дельфи есть его аналоги - смело дерзай).

Но P1 же видит!
Я к PParams дописывал переменные по аналогии с P1 и все равно та же беда.
Он выделяет таргет т.е. ba видит и только потом вылетает.
Я ваще туплю
Код:
procedure TargetCall(aPParams:PParams);Stdcall; //StdCall 
var                                         //
  P1, P2: DWord;                                //
begin                                       //
  P1:=aPParams^.WID; 
  P2:=aPParams^.BA;                       //
  asm
    MOV EDI, P1                             // ?????? WID ???? ? ??????? EDI
    MOV EBX, $006686E0 
    MOV EAX,DWORD PTR DS:[BA]          //
    PUSH EDI                                // ; /Arg1
    MOV ECX,DWORD PTR DS:[EAX+$20]          // ; |
    ADD ECX,$0EC                            // ; |
    CALL EBX                                // ; \elementc.00606A70
  end;
end;
  Ответить с цитированием
Старый 21.01.2012, 15:20   #4
 Разведчик
Аватар для Docent2001
 
Docent2001 на правильном путиDocent2001 на правильном пути
Регистрация: 09.06.2010
Сообщений: 4
Популярность: 119
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Инжект таргета и др.

1. Зачем тебе локальная переменная P2, если ты ее не используешь?

2. ИмяКакойтоПеременной.BA И BA - это разные вещи. СОВСЕМ разные.

Первое - описание поля в записи, у тебя может быть 100500 типов записей в каждом из которых есть поле .BA.

Второе - отдельная переменная (ну или константа). В пределах ее "области видимости" она уникальна.

3. Зачем тебе вообще использовать BA как переменную? Определи константу. При каком-нибудь глобальном обновлении поменяешь.

И, наконец,
4. То что процедура выделяет таргет НЕ значит что она "видит" ВА.
За выделение таргета отвечает код, на который ты переходишь по команде CALL EBX, причем EBX содержит уже готовый статический адрес $006686E0, никак не связанный с ВА.
А [ВА+20] - это _thiscall. В тех кусках кода что ты показал абсолютно не видно где определена эта переменная/константа с именем ВА, и что в ней находится.
  Ответить с цитированием
Старый 21.01.2012, 15:52   #5
 Пехотинец
Аватар для Jok3r666
 
Jok3r666 скоро будет известенJok3r666 скоро будет известенJok3r666 скоро будет известен
Регистрация: 17.05.2010
Сообщений: 53
Популярность: 204
Сказал(а) спасибо: 11
Поблагодарили 15 раз(а) в 6 сообщениях
 
По умолчанию Re: Инжект таргета и др.

Цитата:
Сообщение от Docent2001Посмотреть сообщение
1. Зачем тебе локальная переменная P2, если ты ее не используешь?

2. ИмяКакойтоПеременной.BA И BA - это разные вещи. СОВСЕМ разные.

Первое - описание поля в записи, у тебя может быть 100500 типов записей в каждом из которых есть поле .BA.

Второе - отдельная переменная (ну или константа). В пределах ее "области видимости" она уникальна.

3. Зачем тебе вообще использовать BA как переменную? Определи константу. При каком-нибудь глобальном обновлении поменяешь.

И, наконец,
4. То что процедура выделяет таргет НЕ значит что она "видит" ВА.
За выделение таргета отвечает код, на который ты переходишь по команде CALL EBX, причем EBX содержит уже готовый статический адрес $006686E0, никак не связанный с ВА.
А [ВА+20] - это _thiscall. В тех кусках кода что ты показал абсолютно не видно где определена эта переменная/константа с именем ВА, и что в ней находится.

извинтиляюсь, вместо ba в асме стоит P2 в которую помещается ba
вот так делал:
Код:
Procedure WithCat(hprocess:dword; id:integer);
var
aParams:tParams;
begin     
  aParams.WID:= id;
  aParams.BA:= Base_addr; /// $B27A04
  InjectFunc(hProcess, @TargetCall, @aParams, SizeOf(aParams ) );
.....
end;

procedure TargetCall(aPParams:PParams);Stdcall; 
var                                      
  P1,P2: DWord;                               
begin                                    
  P1:=aPParams^.WID;                   
  P2:=aPParams^.BA;                   
asm
    MOV EDI, P1                        
    MOV EBX, $006686E0                    
    MOV EAX,DWORD PTR DS:[P2]        
    PUSH EDI                            
    MOV ECX,DWORD PTR DS:[EAX+$20]       
    ADD ECX,$0EC                        
    CALL EBX                            
  end;
end;
Вот как то так...
  Ответить с цитированием
Старый 21.01.2012, 16:24   #6
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Инжект таргета и др.

Попробуй заключить ассемблерный код в команды pushad и popad:

Код:
asm
    PUSHAD
    MOV EDI, P1                        
    MOV EBX, $006686E0                    
    MOV EAX,DWORD PTR DS:[P2]        
    PUSH EDI                            
    MOV ECX,DWORD PTR DS:[EAX+$20]       
    ADD ECX,$0EC                        
    CALL EBX              
    POPAD              
end;
  Ответить с цитированием
Старый 21.01.2012, 16:50   #7
 Разведчик
Аватар для Docent2001
 
Docent2001 на правильном путиDocent2001 на правильном пути
Регистрация: 09.06.2010
Сообщений: 4
Популярность: 119
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Инжект таргета и др.

1. Согласен с BritishColonist по поводу заключения ассемблерного кода в команды pushad и popad.

2. Так и не понял - ну зачем делать изврат с передачей константы через aParams.


Код:
  procedure TargetCall(PParams: TPParams);Stdcall;
  var WID: DWORD;
  begin
    WID := PParams^.dwP1;
    asm
     pushad
     mov ecx, dword ptr [BaseAddress]
     mov ecx, dword ptr [ecx+$20]
     add ecx, $EC
     mov edx, WID
     push edx
     mov eax, $006686E0
     call eax
     popad
    end;
  end;
Здесь BaseAddress определен выше как константа.
Зачем тебе передавать два параметра вместо одного? Создать трудности и героически их преодолеть?
Собственно и указание ds: в твоем коде лишнее, хотя и безвредное
  Ответить с цитированием
Старый 21.01.2012, 17:43   #8
 Сержант
Аватар для gurin
 
gurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компании
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
Отправить сообщение для gurin с помощью Skype™
 
По умолчанию Re: Инжект таргета и др.

procedure TargetCall(aPParams:PParams);Stdcall;
var
P1,P2: DWord;
begin
P1:=aPParams^.WID;
P2:=aPParams^.BA;
asm
MOV EDI, P1
MOV EBX, $006686E0
MOV EAX,DWORD PTR DS:[P2]
PUSH EDI
MOV ECX,DWORD PTR DS:[EAX+$20]
ADD ECX,$0EC
CALL EBX
end;
end;

так у меня тоже вылетает, я делаю так

procedure TargetCall(aPParams:PParams);Stdcall;
var
P1,P2: DWord;
begin
P1:=aPParams^.WID;
P2:=aPParams^.BA;
asm
MOV EDI, P1
MOV EBX, $006686E0
MOV EAX, P2
MOV EAX,DWORD PTR DS:[EAX]
PUSH EDI
MOV ECX,DWORD PTR DS:[EAX+$20]
ADD ECX,$0EC
CALL EBX
end;
end;

З.Ы. константы конечно хороши, но охота смещения из файла читать
  Ответить с цитированием
Старый 21.01.2012, 20:16   #9
 Пехотинец
Аватар для Jok3r666
 
Jok3r666 скоро будет известенJok3r666 скоро будет известенJok3r666 скоро будет известен
Регистрация: 17.05.2010
Сообщений: 53
Популярность: 204
Сказал(а) спасибо: 11
Поблагодарили 15 раз(а) в 6 сообщениях
 
По умолчанию Re: Инжект таргета и др.

Цитата:
Сообщение от gurinПосмотреть сообщение
З.Ы. константы конечно хороши, но охота смещения из файла читать

именно для этого и парюсь))

Цитата:
Сообщение от Docent2001Посмотреть сообщение
2. Так и не понял - ну зачем делать изврат с передачей константы через aParams.

На прямую не хотел хавать вот и попробовал по аналогии с P1

Тогда еще один вопрос, как тут сделать $20 через переменную?
MOV ECX,DWORD PTR DS:[EAX+$20]
  Ответить с цитированием
Старый 21.01.2012, 22:40   #10
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Инжект таргета и др.

пусть P3 - твоя переменная.

Код:
asm
  pushad
  ...
  mov eax,dword ptr ds:[P2] // base
  add eax,P3
  mov ecx,dword ptr ds:[eax]
  ...
end;
либо так (если тот код не сработает):

Код:
asm
  pushad
  ...
  mov eax,dword ptr ds:[P2] // base
  mov edx,P3
  mov ecx,dword ptr ds:[eax+edx]
  ...
end;
  Ответить с цитированием
Старый 15.01.2015, 22:24   #11
 Разведчик
Аватар для Fess88
 
Fess88 никому не известный тип
Регистрация: 11.05.2014
Сообщений: 6
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Инжект таргета и др.

Подскажите пожалуйста новый инжект на таргет
  Ответить с цитированием
Старый 19.01.2015, 06:43   #12
 Пехотинец
Аватар для diagnost
 
diagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражания
Регистрация: 02.01.2010
Сообщений: 95
Популярность: 1542
Сказал(а) спасибо: 110
Поблагодарили 460 раз(а) в 288 сообщениях
 
По умолчанию Re: Инжект таргета и др.

var
P1: DWord;
begin
P1:=aPParams^.WID;
asm
MOV EDI, P1 // Вносим WID моба в регистр EDI
MOV EBX, $00746BD0 //Call Targeta
MOV EAX,DWORD PTR DS:[$CCEFAC]
PUSH EDI
MOV ECX,DWORD PTR DS:[EAX+$20]
ADD ECX,$0F4
CALL EBX
  Ответить с цитированием
Ответ


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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Файл] ХП таргета в процентах Aghast Rising Force Online 0 10.11.2011 14:42
[Помогите!] Утилита для таргета. NekitoS Общение разработчиков 3 21.09.2011 00:53
[Помогите!] id таргета k2_target Общение и обсуждение Aion 3 04.07.2011 12:43
[Файл] Так называемый фильтр таргета. Aqua Общение и обсуждение Perfect World 7 30.03.2011 15:18

Заявление об ответственности / Список мошенников

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

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net