Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 21.06.2015, 11:49   #1
Пользователь
 
Регистрация: 29.09.2010
Сообщений: 34
Сказал Спасибо: 18
Имеет 1 спасибку в 1 сообщении
controller пока неопределено
Восклицание автоматический вход

люди добрые, подсказку дайте, как реализовать это в л2. Пробывал искать классы поля ввода логина и пароля, но все объекты клиента, представляют собой один класс....как L2WindowW.... следовательно сюда ничего не передается. Есть вариант через запись в память, адреса логина и пароля вроде как не меняются. И они не динамичные. Но есть проблемы с передачей текста в память. И нажатие кнопки войти... Может есть у кого какие идеи?
controller вне форума   Ответить с цитированием
Старый 21.06.2015, 12:13   #2
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Вызвать апи функцию клиента

PHP код:
int (__fastcall *UNetworkHandler_RequestAuthLogin)(UNetworkHandler*, intwchar_t const * loginwchar_t const * password,int param) = 0;
....
(
FARPROC&) UNetworkHandler_RequestAuthLogin GetProcAddress(hEngine"?RequestAuthLogin@UNetworkHandler@@UAEHPB_W0H@Z");
....
(*
UNetworkHandler_RequestAuthLogin)(UNH0/*что угодно*/loginpassword0); 
Только вот надо изначально получить UNH, это указатель на объект UNetworkHandler в памяти. Как это сделать не перехватив не одного пакета я хз.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 21.06.2015, 12:25   #3
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,214
Сказал Спасибо: 4
Имеет 226 спасибок в 179 сообщенях
SeregaZ пока неопределено
По умолчанию

а редактирование l2.ini не поможет?
PHP код:
[AutoLogOn]
IsL2AutoLogOn=Ture
L2ID
=zodiac
L2Passwd
=zodiac
L2Slot
=
там Ture вместо True - что будет если поправить и вписать свой логин и пароль?
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 21.06.2015, 14:49   #4
Пользователь
 
Регистрация: 29.09.2010
Сообщений: 34
Сказал Спасибо: 18
Имеет 1 спасибку в 1 сообщении
controller пока неопределено
По умолчанию

на счет вызова апи клиента, думаю самый хороший вариант, но я с этим не справлюсь..... На счет редактирования л2 ини не знал. Попробую... других вариантов нет? есть же программы авто входа, Как вот они работают
controller вне форума   Ответить с цитированием
Старый 21.06.2015, 16:50   #5
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,214
Сказал Спасибо: 4
Имеет 226 спасибок в 179 сообщенях
SeregaZ пока неопределено
По умолчанию

редактирование не помогло...

вот тут интересная тема: https://forum.zone-game.info/showthread.php?p=369791
в моем случае - С4 - таких параметров и вовсе нет в л2.ини

зато в моем случае на клиенте нет никакой защиты - думаю обычными винапями можно обойтись. даже есть алгоритм на том-же форуме:
GetWindow на окно приложения
SetWindowText логин
потом кеу на таб
SetWindowText пасс
key на интер кажеться три раза на вход агрии с правилами и вход сервер
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
За это сообщение SeregaZ нажился спасибкой от:
Старый 21.06.2015, 18:39   #6
Пользователь
 
Регистрация: 29.09.2010
Сообщений: 34
Сказал Спасибо: 18
Имеет 1 спасибку в 1 сообщении
controller пока неопределено
По умолчанию

SetWindowText логин
потом кеу на таб
SetWindowText пасс вот тут малость не понятно
ведь функция SetWindowText изменяет заголовок окна. Зачем это вообще? Не пойму
я сижу сейчас с телефона. Ты сказал там где то алгоритм есть, можно код его сюда? Или ссылку
controller вне форума   Ответить с цитированием
Старый 21.06.2015, 19:58   #7
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Цитата:
Сообщение от controller Посмотреть сообщение
SetWindowText логин
потом кеу на таб
SetWindowText пасс вот тут малость не понятно
ведь функция SetWindowText изменяет заголовок окна. Зачем это вообще? Не пойму
я сижу сейчас с телефона. Ты сказал там где то алгоритм есть, можно код его сюда? Или ссылку
На каком зяыке программирования пишешь код?
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)

Последний раз редактировалось Yegor, 21.06.2015 в 22:22.
Yegor вне форума   Ответить с цитированием
Старый 21.06.2015, 20:15   #8
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,214
Сказал Спасибо: 4
Имеет 226 спасибок в 179 сообщенях
SeregaZ пока неопределено
По умолчанию

эм... за что купил - зато продал там видимо не сетвиндовстекст, а сенд подразумевался. типа посылать окну нажатые клавиши. то есть принцип как банальные кликеры работают, только вместо всяких F1 - ввод логина и пароля. когда окно ладвы загружается - там автоматом фокус ввода на логине, при нажатии таб - перепрыгивает на пароль. и ентыром происходит вход, потом окно соглашения...
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 21.06.2015, 21:27   #9
Пользователь
 
Регистрация: 29.09.2010
Сообщений: 34
Сказал Спасибо: 18
Имеет 1 спасибку в 1 сообщении
controller пока неопределено
По умолчанию

а ну это мы проходили, не очень удобно. Все равно спасибо за советы.

Добавлено через 9 минут
Цитата:
Сообщение от Yegor Посмотреть сообщение
На каком зяыке программирования пишишь код?
делфи

Последний раз редактировалось controller, 21.06.2015 в 21:27. Причина: Добавлено сообщение
controller вне форума   Ответить с цитированием
Старый 21.06.2015, 22:32   #10
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Пример вставки текста в окно л2:

PHP код:
procedure PostKeyExHWND(hWindowHWndkeyWord; const shiftTShiftStatespecialkeyBoolean);
 {************************************************************
 * 
Procedure PostKeyEx
 
*
 * 
Parameters:
 *  
hWindowtarget window to be send the keystroke
 
*  key    virtual keycode of the key to send. For printable
 
*           keys this is simply the ANSI code (Ord(character)).
 *  
shift  state of the modifier keysThis is a setso you
 
*           can set several of these keys (shiftcontrolalt,
 *           
mouse buttonsin tandemThe TShiftState type is
 
*           declared in the Classes Unit.
 *  
specialkeynormally this should be FalseSet it to True to
 
*           specify a key on the numeric keypad, for example.
 *           If 
this parameter is truebit 24 of the lparam for
 *           
the posted WM_KEYmessages will be set.
 * 
Description:
 *  
This procedure sets up Windows key state array to correctly
 
*  reflect the requested pattern of modifier keys and then posts
 
*  a WM_KEYDOWN/WM_KEYUP message pair to the target windowThen
 
*  Application.ProcessMessages is called to process the messages
 
*  before the keyboard state is restored.
 * 
Error Conditions:
 *  
May fail due to lack of memory for the two key state buffers.
 *  
Will raise an exception in this case.
 * 
NOTE:
 *  
Setting the keyboard state will not work across applications
 
*  running in different memory spaces on Win32 unless AttachThreadInput
 
*  is used to connect to the target thread first.
 *
Created02/21/96 16:39:00 by PBelow
 
************************************************************}

type
 TBuffers 
= array [0..1of TKeyboardState;
var
 
pKeyBuffers: ^TBuffers;
 
lParamLongInt;
begin
 
(* check if the target window exists *)
  if 
IsWindow(hWindowthen
  begin
   
(* set local variables to default values *)
   
//pKeyBuffers := nil;
   
lParam := MakeLong(0MapVirtualKey(key0));

   (* 
modify lparam if special key requested *)
   if 
specialkey then
     lParam 
:= lParam or $1000000;

   (* 
allocate space for the key state buffers *)
   New(
pKeyBuffers);
   try
     (* 
Fill buffer 1 with current state so we can later restore it.
        
Null out buffer 0 to get a "no key pressed" state. *)
     
GetKeyboardState(pKeyBuffers^[1]);
     
FillChar(pKeyBuffers^[0], SizeOf(TKeyboardState), 0);

     (* 
set the requested modifier keys to "down" state in the buffer*)
     if 
ssShift in shift then
       pKeyBuffers
^[0][VK_SHIFT] := $80;
     if 
ssAlt in shift then
     begin
       
(* Alt needs special treatment since a bit in lparam needs also be set *)
       
pKeyBuffers^[0][VK_MENU] := $80;
       
lParam := lParam or $20000000;
     
end;
     if 
ssCtrl in shift then
       pKeyBuffers
^[0][VK_CONTROL] := $80;
     if 
ssLeft in shift then
       pKeyBuffers
^[0][VK_LBUTTON] := $80;
     if 
ssRight in shift then
       pKeyBuffers
^[0][VK_RBUTTON] := $80;
     if 
ssMiddle in shift then
       pKeyBuffers
^[0][VK_MBUTTON] := $80;

     (* 
make out new key state array the active key state map *)
     
SetKeyboardState(pKeyBuffers^[0]);
     (* 
post the key messages *)
     if 
ssAlt in Shift then
     begin
       PostMessage
(hWindowWM_SYSKEYDOWNkeylParam);
       
PostMessage(hWindowWM_SYSKEYUPkeylParam or integer($C0000000));
     
end
     
else
     
begin
       PostMessage
(hWindowWM_KEYDOWNkeylParam);
       
PostMessage(hWindowWM_KEYUPkeylParam or integer($C0000000));
     
end;
     (* 
process the messages *)
     
//ad.ToLogFile('Before ProcessMessages PostKeyExHWND');
     
Application.ProcessMessages;

     (* 
restore the old key state map *)
     
SetKeyboardState(pKeyBuffers^[1]);
   finally
     (* 
free the memory for the key state buffers *)
     if 
pKeyBuffers <> nil then
       Dispose
(pKeyBuffers);
    
end; { If }
  
end;
end; { PostKeyEx }

function 
InsertText(textstringwinHandleHWND): boolean;
var
  
iword;
  
ThreadIDmycardinal;
  
hFocusedWndHWND;
  
chinteger;
begin
  ThreadID
:= GetWindowThreadProcessId(winHandlenil);
  
my:= GetCurrentThreadId;
  
AttachThreadInput(ThreadIDmytrue);
  
hFocusedWnd:= GetFocus;

  for 
i:= 1 to Length(text) do
  
begin
    ch
:= ord(text[i]);
    
PostMessage(hFocusedWndWM_CHARch1);
  
end;
  
AttachThreadInput(ThreadIDmyfalse);
  
Result:= true;
  
Sleep(300);
end;



....
var
  
clientHWNDHWND;
....
clientHWND:= FindWindow('l2UnrealWWindowsViewportWindow'nil);

InsertText(LoginclientHWND);
Sleep(2000);
PostKeyExHWND(clientHWNDVK_TAB, [], false);
Sleep(1000);
InsertText(PasswordclientHWND);
Sleep(2000);
PostKeyExHWND(clientHWNDVK_RETURN, [], false); 
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
За это сообщение Yegor нажился спасибкой от:
Ответ

  CoderX :: Forums > Основные форумы > Программинг


Опции темы
Опции просмотра

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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

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