key kodları web için geçersiz mi?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 119
- Kayıt: 05 Oca 2005 04:39
key kodları web için geçersiz mi?
s.a.
bir butona tıklandığında bir web formuna (diyelim ki bir oyunun login formuna (ben http://www.ogame.com.tr için kullanmaya çalışıyorum)) kullanıcı adı ve şifrenin yazdırılması için şöyle bir yöntem denedim.. kullanıcı adı soran yere ekrandaki koordinatlarını bularak mouseu SetCursorPos(25, 30); komutu ile yolladım.. ardından tıklama efekti için mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); kullandım.. kullanıcı adımın key kodlarını keybd_event(ord(67), MapVirtualKey(ord(67), 0), 0, 0); vb. kullanarak klavyeden yazılıyormuş gibi giriş yaptırmak istedim..
sorunum şu kullanıcı adımı doğru yazdığı halde şifre kısmını doğru yazmıyor.. herhangi bir edit ya da memo bileşenleri üzerinde denediğimde doğru olarak kullanıcı adı ile birlikte şifreyi de yazıyor ama web için bu yöntemi kullanamıyorum.. acaba asp sitelerinde bununla ilgili bir koruma mı var yoksa web formları için kullanılacak ayrı key kodları mı var? var ise şifre yazdırabilmek için bu kodlar neler? yok ise delphi ile amacıma nasıl ulaşabilirim?
bir butona tıklandığında bir web formuna (diyelim ki bir oyunun login formuna (ben http://www.ogame.com.tr için kullanmaya çalışıyorum)) kullanıcı adı ve şifrenin yazdırılması için şöyle bir yöntem denedim.. kullanıcı adı soran yere ekrandaki koordinatlarını bularak mouseu SetCursorPos(25, 30); komutu ile yolladım.. ardından tıklama efekti için mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); kullandım.. kullanıcı adımın key kodlarını keybd_event(ord(67), MapVirtualKey(ord(67), 0), 0, 0); vb. kullanarak klavyeden yazılıyormuş gibi giriş yaptırmak istedim..
sorunum şu kullanıcı adımı doğru yazdığı halde şifre kısmını doğru yazmıyor.. herhangi bir edit ya da memo bileşenleri üzerinde denediğimde doğru olarak kullanıcı adı ile birlikte şifreyi de yazıyor ama web için bu yöntemi kullanamıyorum.. acaba asp sitelerinde bununla ilgili bir koruma mı var yoksa web formları için kullanılacak ayrı key kodları mı var? var ise şifre yazdırabilmek için bu kodlar neler? yok ise delphi ile amacıma nasıl ulaşabilirim?
Kainattaki en yüksek hakikat Allah'a imandır..
Merhaba...
- Sana alternatif bir uygulama örneği vermek isterim...
- Boş bir proje aç ve forma bir adet TWebBrowser nesnesi, bir adet TButton ve iki adet TEdit nesnesi koy... Bunlar varsayılan olarak WebBrowser1, Edit1 ve Edit2 olacaktır...
- Edit1'e hesapta kullandığın oyuncu adını gir.
- Edit2'ye bu oyuncu adına ait password gir.
- Button'a bastığında ise açılan procedure ise aşağıdakini aynen yaz...
- WebBrowser içerisinde login olduğunu göreceksin...
- Sadece fikir vermesi açısından yazdım. Gizli parametreleri aşağıdakiler olduğunu bildirmek amaçlıydı.
- Balık tutma zamanıdır... Başarılar.. 
- Sana alternatif bir uygulama örneği vermek isterim...
- Boş bir proje aç ve forma bir adet TWebBrowser nesnesi, bir adet TButton ve iki adet TEdit nesnesi koy... Bunlar varsayılan olarak WebBrowser1, Edit1 ve Edit2 olacaktır...
- Edit1'e hesapta kullandığın oyuncu adını gir.
- Edit2'ye bu oyuncu adına ait password gir.
- Button'a bastığında ise açılan procedure ise aşağıdakini aynen yaz...
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
EncodedDataString: string;
PostData : OleVariant;
Headers : OleVariant;
I : Integer;
begin
WebBrowser1.Navigate('', EmptyParam, EmptyParam, EmptyParam, EmptyParam );
Application.ProcessMessages;
EncodedDataString := Format('timestamp=1123435508&v=2&Uni=ogame219.de&login=%s&pass=%s&x=0&y=0', [Edit1.Text, Edit2.Text]);
PostData := VarArrayCreate([0, Length(EncodedDataString) - 1], varByte);
for I := 1 to Length(EncodedDataString) do
PostData[I-1] := Ord(EncodedDataString[I]);
Headers := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
WebBrowser1.Navigate('http://ogame219.de/game/reg/login2.php',
EmptyParam,
EmptyParam,
PostData,
Headers);
end;
- Sadece fikir vermesi açısından yazdım. Gizli parametreleri aşağıdakiler olduğunu bildirmek amaçlıydı.
Eğer bağımsız bir Internet Explorer kullanmak istersen başlangıç noktan şudur...- URL : http://ogame219.de/game/reg/login2.php
- PARAMETRE : timestamp=1123435508&v=2&Uni=ogame219.de&login=isim&pass=sifre&x=0&y=0
Kod: Tümünü seç
IE := CreateOleObject( 'InternetExplorer.Application');

-
- Üye
- Mesajlar: 119
- Kayıt: 05 Oca 2005 04:39
teşekkürler... yukarıya yazdığım yöntem ile sorunu çözmeyi başardım ama önerdiğiniz yöntemi de deneyeceğim..
şifrenin yanlış olmasının nedeni o game in şifre kutusunda 6. karakteri yazmıyor olması imiş.. 6. karakter için ayrı mouse koordinatları yazarak ve o kısma şifremin 6. karakterini yazdırıp login i tıklatarak sorunu çözdüm..
güzelde oldu.. el ile tıklıyor gibi mouse ekranda bir sn de kullanıcı adımı şifremi yazıp login e basıyor..
hayırlı çalışmalarınızda muvaffakiyetler diliyorum..
şifrenin yanlış olmasının nedeni o game in şifre kutusunda 6. karakteri yazmıyor olması imiş.. 6. karakter için ayrı mouse koordinatları yazarak ve o kısma şifremin 6. karakterini yazdırıp login i tıklatarak sorunu çözdüm..

hayırlı çalışmalarınızda muvaffakiyetler diliyorum..
Kainattaki en yüksek hakikat Allah'a imandır..
Kod: Tümünü seç
IE := CreateOleObject( 'InternetExplorer.Application');
OleVariant değişken olduğunda göre if VarIsEmpty( IE ) şeklinde kullanabilirsin...
Kod: Tümünü seç
Uses ComObj;
Var
IE: OleVariant;
procedure TForm1.Button1Click(Sender: TObject);
begin
if VarIsEmpty(IE) then begin
IE := CreateOLEObject('InternetExplorer.Application');
IE.Navigate('http://www.google.com.br');
end;
Try IE.Visible := True;
Except ShowMessage('IExplorer Erişilemedi... Kapatılmış...');
end;
end;
mrmarman hocam sağol varol.
- Şimdi de başka bir konu ortaya çıktı. kendi uygulamam herzaman üstte olacak şekilde . bunu kulalnıcı yanlışlıkla ekranın ortasına aldı diyelim. O sırada az önce aöçmış olduğumuz IE bir popup çıkardı ve tıklanmasını istiyor.
- Bu popup bizimkinin altında kaldığı için onu tıklayamıyoruz. bizim uygulama da bu esnada donmuş oluyor yerinden kımıldatamıyoruz. mutlak alttaki onay kutusu tıklanması lazım.
- IE nin bu durumu nu hangi olayı ile yakalayabilirim? o olay oluşunca bari penceremiz yana kaysın.
Formun hareket ettirildiğin anlayabilecek birolay da bilmiyorum
ordan algılayıp ortaya geldiyse kenara çekebilirim.
- Şimdi de başka bir konu ortaya çıktı. kendi uygulamam herzaman üstte olacak şekilde . bunu kulalnıcı yanlışlıkla ekranın ortasına aldı diyelim. O sırada az önce aöçmış olduğumuz IE bir popup çıkardı ve tıklanmasını istiyor.
- Bu popup bizimkinin altında kaldığı için onu tıklayamıyoruz. bizim uygulama da bu esnada donmuş oluyor yerinden kımıldatamıyoruz. mutlak alttaki onay kutusu tıklanması lazım.
- IE nin bu durumu nu hangi olayı ile yakalayabilirim? o olay oluşunca bari penceremiz yana kaysın.
Formun hareket ettirildiğin anlayabilecek birolay da bilmiyorum

- Hocam daha önce sormalıydım ancak sorun basit ve açık olduğundan sadece istediğin cevabı vermek durumundaydım.
- Neden TInternetExplorer kullanmıyorsun ? Bir Internet Explorer'i bu kadar dizginlemek istiyorsan TWebBrowser şeklinde tüm Event'lara erişmen gerekir. Dolayısı ile kullandığın tekniği de aşağıda senin için hazırladığım metoda göre değiştirmelisin.
- Neden TInternetExplorer kullanmıyorsun ? Bir Internet Explorer'i bu kadar dizginlemek istiyorsan TWebBrowser şeklinde tüm Event'lara erişmen gerekir. Dolayısı ile kullandığın tekniği de aşağıda senin için hazırladığım metoda göre değiştirmelisin.
Kod: Tümünü seç
Uses SHDocVw;
Var
IE: TInternetExplorer;
procedure TForm1.Button1Click(Sender: TObject);
begin
If NOT Assigned(IE) then
begin // İlk defa çalışıyor demektir.
IE := TInternetExplorer.Create(Application);
// Event bağlantılarını yapıyoruz...
IE.OnBeforeNavigate2 := BeforeNavigate2;
IE.OnNewWindow2 := NewWindow2;
end;
Try
IE.Visible := True;
IE.Navigate( 'http://www.google.com.tr' );
Except
ShowMessage('IExplorer Erişilemedi... Kapatılmış...'
+ #13#13
+ 'Bir sonraki denemenizde yeniden açılacak...');
IE := Nil;
end;
end;
procedure TForm1.BeforeNavigate2(ASender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
Application.BringToFront;
ShowMessage('Yeni Adres Gidiliyor');
// Tekrar Internet Explorer Penceresini öne alıyoruz...
SetForegroundWindow( IE.HWnd );
end;
procedure TForm1.NewWindow2(ASender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
begin
Application.BringToFront;
ShowMessage('Yeni Pencere Açılmak istendi, İptal Ediyoruz...');
Cancel := True;
// Tekrar Internet Explorer Penceresini öne alıyoruz...
SetForegroundWindow( IE.HWnd );
end;
Kod: Tümünü seç
IE.OnBeforeNavigate2 := BeforeNavigate2;
IE.OnNewWindow2 := NewWindow2;
deneme proje> http://www.sistemler.com/IEdeneme50001.zip
TInternetExplorer nesnesi nerededir? component barda yok. Internet tabında Twebbrowser var bu olabilir mi? INdy içnde de yok. Delphi = 7
Kodun başında demişim değil mi
yani TInternetExplorer burada tanımlı...
- Ayrıca verdiğim kodları uyguladığın projen çalışıyor. Verilen hata nedir ? onu yazsaydın daha kolay olurdu...
Kod: Tümünü seç
Uses SHDocVw;

- Ayrıca verdiğim kodları uyguladığın projen çalışıyor. Verilen hata nedir ? onu yazsaydın daha kolay olurdu...