Güvenlik Programı İçin Yardım (Remote & Write Process Ol

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
DaNGeR_HaCKeR
Üye
Mesajlar: 13
Kayıt: 22 Eki 2006 11:33

Güvenlik Programı İçin Yardım (Remote & Write Process Ol

Mesaj gönderen DaNGeR_HaCKeR »

Arkadaşlar bu olayı uzun zamandır çözemedim.En sonunda Knightonline private serverları için yazdığımız bir ek güvenlik programında bir exe yi kontrol etmem lazım.
Bir iki fonksiyon buldum;

Kod: Tümünü seç

function InjectMemory(title: string; wheretowrite: Pointer; whattowrite: PChar; size: integer): integer;  
var  
c: cardinal;  
write: cardinal;  
begin  
c := FindWindow(nil,PChar(title));  
  if (c = 0) then begin  
  result := 1;  
  exit;  
  end;  
GetWindowThreadProcessId(c, @c);  
c := OpenProcess(PROCESS_ALL_ACCESS, False, c);  
WriteProcessMemory(c,wheretowrite, whattowrite, size, write);  
CloseHandle(c);  
result := 0;  
end; 

Kod: Tümünü seç

InjectMemory('MineSweeper',Ptr($1002FF5),chr($90)+chr($90)+chr($90)+chr($90)+chr($90)+chr($90),6); 
Gibi kullanılıyormuş ama ptr olayı filan var onları çözemedim. Şimdiden yardımlarınız için teşekkür ederim.Eğer msn üzerinden yardımcı olurum diyenler için msn@dogukanaydinli.info ayrıca problemim çözümlendikten sonra tam olarak kavrayıp bir makale yazacağım.

Teşekkürler ;)
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

Verdiğim fonksiyon, hali hazırda çalışan bir uygulamanın hafızadaki bir verisi üzerine başka bir veri yazmakla ilgili. Ama bunun güvenlikle alakasını çözemedim. Olsa olsa bir programı kırmak için yazılan loader tarzı programcıklarda kullanılabilir. Veya RamCheater tarzı programlarda işe yarayabilir. Ne yapmak istediğini açık seçik bir dil ile anlatırsan, daha fazla yardım alabilirsin.
DaNGeR_HaCKeR
Üye
Mesajlar: 13
Kayıt: 22 Eki 2006 11:33

Mesaj gönderen DaNGeR_HaCKeR »

Tam olarak şöyle;
Benim asıl kullanacağım read process memory.Bazı programların clientine ulaşım yapmaya kalkarsa oyunu yapayacak ve knightonline.exe dosyasını izleyecek.Bilenler vardır dupe ye karşı önlem filan koyacağız.

Teşekkürler.
DaNGeR_HaCKeR
Üye
Mesajlar: 13
Kayıt: 22 Eki 2006 11:33

Mesaj gönderen DaNGeR_HaCKeR »

Yardımcı olabilecek abi yada arkadaşlar var mı bu konuda?
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

Dupe nedir bilmiyorum. Daha doğrusu knightonline'nın sadece adını duydum, görmedim bile.
DaNGeR_HaCKeR yazdı: Benim asıl kullanacağım read process memory
Bu ne demek şimdi? İşlem hafızasının nesini okuyacaksın?
DaNGeR_HaCKeR yazdı: Bazı programların clientine ulaşım yapmaya kalkarsa oyunu yapayacak ve knightonline.exe dosyasını izleyecek
Bazı programların clientine ulaşım yapmak ne demek? Ve ulaşım yaptığında ne olur ki? "knightonline.exe" dosyasını izleyecek ne demek? Anladığım kadarı ile oyuna cheat yapılmasını engellemek istiyorsun.

Yanlış anlama, ama herkes knightonline biliyormuş gibi mesaj yazmışsın. Bu yüzden de başka cevap veren çıkmamış. Önceki mesajımda "Ne yapmak istediğini açık seçik bir dil ile anlatırsan, daha fazla yardım alabilirsin." demiştim. Yine aynısını söylüyorum.

Kolay gelsin.
DaNGeR_HaCKeR
Üye
Mesajlar: 13
Kayıt: 22 Eki 2006 11:33

Mesaj gönderen DaNGeR_HaCKeR »

Anlatmaya başlayım;
Şimdi kendime ait (arkadaşlarla birlikte kurduğumuz) bir adet knightonline private serverımız var.Elimizden geldiğinde hile türü programları engellemek istiyoruz.Ancak oyun esnasında bazı açıkları kapatmak için client üzerinde oynama yapmamız ve bazı olayları bize bildirmesini istiyoruz.Mesela: Şu tarihte oyuna girdi şu kişilerle şu dakikada oyun üzerinden şu itemleri ile item alışveriş yaptı diye mssql a girdi sağlayacağız.Bunun için hem server dosyaları üzerinden bilgi okuması hemde clientin doğrulamasını isteyeceğiz.Mesela dupe yapmakta bazı kişiler.Türkçe karakter açığını kullanarak.User'ın id'si "kiraz" sa bir tane daha client açıp "KİRAZ" yazıyor ve oyuna iki adet user girip dupe yapıyorlar biz bunları incelemek için ve kimler açıkları kullanıyor onlara bakıp gereken kuralı uygulayacağız.Yani kötü amaçlı bir niyetimiz yok.Mesela U.S. Serverında xTrap isimli bir güvenlik yazılımı var ve bu knightonline.exe 'nin memory'i okuyarak gerekli düzenlemeleri yapıyor hile (cheat) türü yazılımların kullanılmasını engelliyor.Oyun sırasında kullanıcının karakteri üzerinden bir açık yapmasını engelliyor memory 'nin diğer programların okumasını yada değiştirmesini engelliyor. Afedersiniz ama sizde öküz altında buza arıyorsunuz.
Umarım bu sefer iyi anlatmışımdır.
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

Eğer programın bu değerleri nereye kayıt ettiğini biliyorsan sıkıntı olmaz. Eğer her şey hafızada bitiyorsa PChar, PInteger gibi pointer'lar ile istediğin değeri okutabilirsin. Hatta FindWindow ile programdaki herhangi bir windows bileşeninin handle numarasını alabilir, özelliklerini okuyup üzerinde işlem yapabilirsiniz. Hatta daha ileri gidip TMemoryStream'in pointer'ını belirli bir noktaya yönlendirip hafızayı okutabilirsin. Ama esas mesele program bu değerleri nereye kaydediyor? Acaba xTrap, hafızayı mı okuyor yoksa bir dosyayı mı?. Bunun için APIMON, REGMON, FILEMON programları ile ayrıntılı bir analiz yapmanız gerekmekte. Bu programlara bulaşmanız da öyle bir hafta sonluk bir proje olmayacaktır. Ya da google'da bununla ilgili bir şeyler bulmanız lazım. Pat diye hafızanın bir bölgesini okuyum diyemezsiniz. Neyi nasıl okuyacağınızı bilmeniz gerekmekte. Bunu bildikten sonra, Delphi zaten belki de diğer programlama dillerinin sağlayamayacağı bir çok şeyi size sunacaktır.
DaNGeR_HaCKeR
Üye
Mesajlar: 13
Kayıt: 22 Eki 2006 11:33

Mesaj gönderen DaNGeR_HaCKeR »

hocam bilgiler için çok teşekkür ederim.Üzerinde epeyi uğraşacağım bu projenin. Teşekkürler ;)
DaNGeR_HaCKeR
Üye
Mesajlar: 13
Kayıt: 22 Eki 2006 11:33

Mesaj gönderen DaNGeR_HaCKeR »

Fatih hocam ;
Hafızasını okuduğunu öğrendim.Hani winhex türü programlar var process memory'i okumamıza ve değiştirmemize yardımcı oluyor.Yada cheat engine diye bir program buldum bana bir address veriyor ama okunan programı kapatıp açtıktan sonra address gene değişiyor. Winhexi açıp oradan bana verdiği addressi delphi ye yazdığımsa ise garip garip assci karakterler çıkıyor.Cheat engineyi bu olayı araştırırken buldum ama çözemedim olayı. Verdiğiniz APIMonitor RegMonitor FileMonitor programlarını indirdim bir yerdende kısa bir makale buldum ama pek yeterli olmadı.
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

Eğer hafıza bölgesine handle ile ulaşamıyorsak işler biraz kızışıyor demektir. Çünkü başka bir programın hafızasını handle olmadan direk olarak okumaya gelince iş biraz kernel tabanlı kodlar yazmaya kadar varıyor. Çünkü Windows normalde böyle bir şeye direk izin vermiyor. Viruslerde aynı mantıkla çalışır. Yani programın bir windows sürücüsü gibi kernel bazında çalışacak ve istediği hafızayı okuyacak.
İlk olarak bu adresten başlayabilirsin:
http://www.awprofessional.com/articles/ ... 7&seqNum=5

Kolay gelsin.
Cevapla