PDA

Просмотр полной версии : [Программа] PW_Loginer


IFRIT667
11.05.2010, 10:02
Программа PW_Loginer - Логинер для ленивых людей как я =)
Функционал программы прост:
1)Открывает Лаунчер
2)Кликает "Запуск"
3)Ждет загрузки клиента
4)Вводит логин и пароль
5)вхоит в игру

Скриншот
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Вирустотал ([Ссылки могут видеть только зарегистрированные и активированные пользователи] aadb7c3b461138-1273557405)
PS: вирусов нет ибо писал сам
PSS: и ifolder ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) до кучи

(Dimon)
11.05.2010, 10:24
Довольно удобно, я всегда копировал пассы с блокнота, а теперь этого делать ненадо:ban:

НАТУСЯ
11.05.2010, 15:11
Вопрос для чего нужна это программа?

IFRIT667
11.05.2010, 15:21
Вопрос для чего нужна это программа?

для входа в игру =)

принцип прост до безобразия первый раз настраиваете под ваш комп (тоесть время загрузки лаунчера и появления окна элементал клиент) а потом *тут включаем воображение* приходишь ты с универа/работы/школы врубаешь комп запускаешь прогу и идешь ставить чай приходиш а перс уже в игре и тебе :wow: РаДуеТся :wow:

PS: прогу писал для себя ленивого если кому не нравится тапками не кидаться

NoDonater
11.05.2010, 15:48
А что с сервером? Сервер он не выбирает? Просто заходит на тот, который стоял поумолчанию?

siderr
11.05.2010, 15:57
ктонибуть тестил? случяем логин и пас не отправляетса создателю?

НАТУСЯ
11.05.2010, 17:07
ктонибуть тестил? случяем логин и пас не отправляетса создателю?

Меня тоже этот вопрос тревожыт

IFRIT667
11.05.2010, 18:01
я не на столько крутой кодер чтобы трояны приписывать =) еси кому интересно могу кинуть исходник

Добавлено через 2 минуты
А что с сервером? Сервер он не выбирает? Просто заходит на тот, который стоял поумолчанию?

сервер не выбирает у мя один перс мне норм =)
ищите матерей кодера если надо разные сервы даже исходник кину на такое дело хотя закодил эту прогу в электричке по дороге домой на ноуте под пивом

lol555
11.05.2010, 18:26
Исходник покажи,может это очередной почтовый клиент который тебе все шлет и как вирус не отоброжается

НАТУСЯ
11.05.2010, 18:34
Лучше выложы сюда исходник или что там. и пусть проверят его кто в этом понимаеет

Торри
11.05.2010, 18:36
Мне кажется эта прога проще [Ссылки могут видеть только зарегистрированные и активированные пользователи]

жи ши

(Dimon)
11.05.2010, 18:46
Мне кажется эта прога проще [Ссылки могут видеть только зарегистрированные и активированные пользователи]

жи ши

Это не совсем одинаковые проги, та которая выложена в теме позволяет просто заходить на акк, а та на которую ты дал ссылку для переполненых серверов(на них проблематично зайти)или для серверов типо релакса, там если оставил перса в 109 фиг потом зайдеш.:confused:

jkpro
11.05.2010, 18:51
Зачем через ланчер? клиент можно запустить и без лаунчера, больше времени тратишь

IFRIT667
11.05.2010, 18:54
Исходник покажи,может это очередной почтовый клиент который тебе все шлет и как вирус не отоброжается

на здоровье =)

{$R *.dfm}
uses ShellAPI, Unit2;
/// для кликабельности
procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
type
TShiftKeyInfo = record
shift: Byte;
vkey: Byte;
end;
byteset = set of 0..7;
const
shiftkeys: array [1..3] of TShiftKeyInfo =
((shift: Ord(ssCtrl); vkey: VK_CONTROL),
(shift: Ord(ssShift); vkey: VK_SHIFT),
(shift: Ord(ssAlt); vkey: VK_MENU));
var
flag: DWORD;
bShift: ByteSet absolute shift;
i: Integer;
begin
for i := 1 to 3 do begin
if shiftkeys[i].shift in bShift then
keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0);
end;
if specialkey then
flag := KEYEVENTF_EXTENDEDKEY
else
flag := 0;
keybd_event(key, MapvirtualKey(key, 0), flag, 0);
flag := flag or KEYEVENTF_KEYUP;
keybd_event(key, MapvirtualKey(key, 0), flag, 0);
for i := 3 downto 1 do begin
if shiftkeys[i].shift in bShift then
keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0),
KEYEVENTF_KEYUP, 0);
end;
end;

///// IF!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/// показ программе ехе лаунчера
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if openDialog1.Execute
then Edit1.Text:=ExtractFilePath(OpenDialog1.FileName)+ 'Launcher.exe' ;
Panel2.Visible:=false;
Panel3.Visible:=false;
end;
/// ЗАПОМНИТЬ
procedure TForm1.BitBtn2Click(Sender: TObject);
var Ini: Tinifile;
begin
Ini:=TiniFile.Create(extractfilepath(paramstr(0))+ 'Setting.ini');
Ini.WriteString('PATH','PATH',Edit1.Text);
Ini.WriteString('USER','LOGIN',Edit2.Text);
Ini.WriteString('USER','PASS',Edit3.Text);
ini.WriteInteger('TIME','SPIN_1',SpinEdit1.Value);
ini.WriteInteger('TIME','SPIN_2',SpinEdit2.Value);
ini.WriteInteger('TIME','SPIN_3',SpinEdit3.Value);
ini.WriteInteger('TIME','SPIN_4',SpinEdit4.Value);
ini.WriteInteger('TIME','SPIN_5',SpinEdit5.Value);
ini.WriteInteger('TIME','SPIN_6',SpinEdit6.Value);
Ini.Free;
Edit2.Enabled:=False;
Edit3.Enabled:=False;
end;

/// зАполнение форм
procedure TForm1.FormShow(Sender: TObject);
var Ini: Tinifile;
begin
Ini:=TiniFile.Create(extractfilepath(paramstr(0))+ 'Setting.ini');
Edit1.Text:=Ini.ReadString('PATH','PATH','');
Edit2.Text:=Ini.ReadString('USER','LOGIN','');
Edit3.Text:=Ini.ReadString('USER','PASS','');
SpinEdit1.Value:=Ini.ReadInteger('TIME','SPIN_1',4 0);
SpinEdit2.Value:=Ini.ReadInteger('TIME','SPIN_2',3 0);
SpinEdit3.Value:=Ini.ReadInteger('TIME','SPIN_3',1 );
SpinEdit4.Value:=Ini.ReadInteger('TIME','SPIN_4',1 );
SpinEdit5.Value:=Ini.ReadInteger('TIME','SPIN_5',1 );
SpinEdit6.Value:=Ini.ReadInteger('TIME','SPIN_6',1 5);
if ( Edit1.Text= ('') ) or ( Edit2.Text= ('') ) or ( Edit3.Text= ('') ) then begin
Panel2.Visible:=true;
Panel3.Visible:=false;
ShowMessage('Загрузите путь к Launcher.exe');
if openDialog1.Execute then Edit1.Text:=ExtractFilePath(OpenDialog1.FileName)+ 'Launcher.exe' ;
Panel2.Visible:=false;
Panel3.Visible:=false;
end else begin
Edit2.Enabled:=False;
Edit3.Enabled:=False;
Panel2.Visible:=false;
Panel3.Caption:='***************';
Panel3.Visible:=true;
end;
end;

/// Старт
procedure TForm1.BitBtn3Click(Sender: TObject);
var A: string; Ini: Tinifile;
begin
Panel3.Caption:='***************';
Panel3.Visible:=true;
Ini:=TiniFile.Create(extractfilepath(paramstr(0))+ 'Setting.ini');
A:=Ini.ReadString('PATH','PATH','');
ShellExecute(0, nil, PWideChar(A), nil, nil, SW_SHOWNORMAL);
Timer1.Interval:=SpinEdit1.Value*1000;
Timer2.Interval:=SpinEdit2.Value*1000;
Timer3.Interval:=SpinEdit3.Value*1000;
Timer4.Interval:=SpinEdit4.Value*1000;
Timer5.Interval:=SpinEdit5.Value*1000;
Timer6.Interval:=SpinEdit6.Value*1000;
Timer1.Enabled:=True;
Label17.Caption:='Запущен';
if Edit1.Text= ('') then
begin
ShowMessage('! Не указан путь к Launcher.exe !');
end else
exit;

end;

/// ТАЙМЕРЫ!!!!!!
///запуск ланчера 40сек
procedure TForm1.Timer1Timer(Sender: TObject);
Var
L: THandle;
Begin
Timer1.Enabled:=False;
Timer2.Enabled:=True;
L:=FindWindow(Nil,'Perfect World Updater');
Edit4.Text:=IntToStr(L);
if IsIconic(L) then
ShowWindow(L,SW_RESTORE);
EnableWindow(L,True);
SetForegroundWindow(L);
Timer1.Enabled:=False;
PostKeyEx32(vk_Return, [], False);
Label17.Caption:='Запускаем Launcher.exe';
end;
/// запуск клиента до появления и ОК 30сек
procedure TForm1.Timer2Timer(Sender: TObject);
Var
K: THandle;
Begin
Timer2.Enabled:=False;
Timer3.Enabled:=True;
K:=FindWindow(Nil,'Element Client');
Edit5.Text:=IntToStr(K);
if IsIconic(K) then
ShowWindow(K,SW_RESTORE);
EnableWindow(K,True);
SetForegroundWindow(K);
PostKeyEx32(vk_Return, [], False);
Label17.Caption:='Запускается Elentnt Client';
end;
/// логин 1сек
procedure TForm1.Timer3Timer(Sender: TObject);
Var
R: THandle; Ini: Tinifile;
Begin
Timer3.Enabled:=False;
Timer4.Enabled:=True;
Edit5.Text:=IntToStr(R);
if IsIconic(R) then
ShowWindow(R,SW_RESTORE);
EnableWindow(R,True);
SetForegroundWindow(R);
Edit2.SelectAll;
Edit2.CutToClipboard;
keybd_event(VK_CONTROL, 0, 0, 0); // зажимаем Ctrl
keybd_event(Byte('V'), 0, 0, 0); // зажимаем V
keybd_event(Byte('V'), 0, KEYEVENTF_KEYUP, 0); // отпускаем V
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // отпускаем Ctrl
Ini:=TiniFile.Create(extractfilepath(paramstr(0))+ 'Setting.ini'); // заполняем вырезанный эдит
Edit2.Text:=Ini.ReadString('USER','LOGIN','');
Label17.Caption:='Вводим login';
end;
/// таб 1 сек
procedure TForm1.Timer4Timer(Sender: TObject);
Var
D: THandle;
Begin
Timer4.Enabled:=False;
Timer5.Enabled:=True;
Edit5.Text:=IntToStr(D);
if IsIconic(D) then
ShowWindow(D,SW_RESTORE);
EnableWindow(D,True);
SetForegroundWindow(D);
keybd_event(VK_TAB, 0, 0 ,0); // жмем ТАВ
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP ,0); // отпускаем ТАВ

Label17.Caption:='переключаемся для ввода pass';
end;
//// пароль + энтер 1сек
procedure TForm1.Timer5Timer(Sender: TObject);
Var
O: THandle; Ini: Tinifile;
Begin
Timer5.Enabled:=False;
Timer6.Enabled:=True;
Edit5.Text:=IntToStr(O);
if IsIconic(O) then
ShowWindow(O,SW_RESTORE);
EnableWindow(O,True);
SetForegroundWindow(O);
Edit3.SelectAll;
Edit3.CutToClipboard;
keybd_event(VK_CONTROL, 0, 0, 0); // зажимаем Ctrl
keybd_event(Byte('V'), 0, 0, 0); // зажимаем V
keybd_event(Byte('V'), 0, KEYEVENTF_KEYUP, 0); // отпускаем V
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // отпускаем Ctrl
PostKeyEx32(vk_Return, [], False);
Ini:=TiniFile.Create(extractfilepath(paramstr(0))+ 'Setting.ini'); // заполняем вырезанный эдит
Edit3.Text:=Ini.ReadString('USER','PASS','');
Label17.Caption:='вводим pass и жмем ок';
end;


procedure TForm1.Timer6Timer(Sender: TObject);
Var
M: THandle;
Begin
if IsIconic(M) then
ShowWindow(M,SW_RESTORE);
EnableWindow(M,True);
SetForegroundWindow(M);
Timer6.Enabled:=False;
PostKeyEx32(vk_Return, [], False);
end;
//// HELP
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Deactivate;
Form2.Show;
end;

end.

Никапли злого умысла :reddy:

Добавлено через 2 минуты
Зачем через ланчер? клиент можно запустить и без лаунчера, больше времени тратишь

можно и без лаунчера но логами к сожалению это палится и от админа можно получить по жопке:sceptic:

Dinmaite
11.05.2010, 19:19
Честно говоря не совсем понимаю зачем повторяется строка с отключением первого таймера, также не понимаю зачем постоянно выводить окно на передний план (я понимаю что для того что бы ивентом клавы ввести значение, но все же клиент ПВ принимает стандартный winmsg).
Запуск без лаунчера логами не палится.
K:=FindWindow(Nil,'Element Client');
Если бы я поставил автоматическую смену названия окна, хендл не нашло бы, лучше искать по названию класса.
В третьем и четвертом таймере почему-то не увидел поиска окна, думаю это вырезано автором :)
В принципе не понимаю зачем локальные переменный THandle если можно найти хендл один раз.

В общем код поверхностно просмотрел, ничего опасного в нем не увидел.

IFRIT667
11.05.2010, 19:26
Честно говоря не совсем понимаю зачем повторяется строка с отключением первого таймера, также не понимаю зачем постоянно выводить окно на передний план (я понимаю что для того что бы ивентом клавы ввести значение, но все же клиент ПВ принимает стандартный winmsg).
Запуск без лаунчера логами не палится.
K:=FindWindow(Nil,'Element Client');
Если бы я поставил автоматическую смену названия окна, хендл не нашло бы, лучше искать по названию класса.
В третьем и четвертом таймере почему-то не увидел поиска окна, думаю это вырезано автором :)
В принципе не понимаю зачем локальные переменный THandle если можно найти хендл один раз.

В общем код поверхностно просмотрел, ничего опасного в нем не увидел.

писалось в электричке в отсутствии гугла под рукой поэтому криво + я не матерый кодер и всем тонкостям за 2 курса делфи-7 не обучен =))
ЗЫ: не судите строго

Dinmaite
11.05.2010, 19:37
И еще, если позволишь дать совет, приложения в которых не особо важен юникод и работа с новейшии компонентами пиши на D7. Дело в том что Делфи и так делает программы громадными, но все же не сложная программа весящая метр настораживает. Или пользуйся упаковщиками уменьшение размера в 2 раза + защита от подмены строк в hex-редакторе (пример в аттаче).

IFRIT667
11.05.2010, 20:17
И еще, если позволишь дать совет, приложения в которых не особо важен юникод и работа с новейшии компонентами пиши на D7. Дело в том что Делфи и так делает программы громадными, но все же не сложная программа весящая метр настораживает. Или пользуйся упаковщиками уменьшение размера в 2 раза + защита от подмены строк в hex-редакторе (пример в аттаче).

не упаковывал исключительно потому что на ноуте небыло ASPack'а а комп после формата чист как стеклышко :wow:

на счет D7 приму к сведению