İstekten çok bir sorudur (CrâckMe)

exe'nin bağlı olduğu ve birlikte işlem yaptığı dll 'nin bağlantısı exe den kesiliyor onun yerine kendi dll nizi kullanmasını sağlıyorsunuz bir nevi bir Crâck yöntemi olarak kullanılıyor. Exe nin çalışırken otomatik olarak bağlandığı ve kullandığı exe tamamen gitmiş oluyor. Eğer sorunuz dll 'nin içeriğini ve içerisinde ki kodların tamamını görmekse dll dosyaları decompile edilebilir içeriği görülebilir. Game hacking alanında DLL kullanılmasının temel sebebi oyun hafızasından fonksiyonları kolayca çağırabilmektir bir diğer sebebi ise oyun hafızasına inline assembly kullanarak kolayca etki etmektir örneğin
Kod:
ko_packet:
dec eax //4800 Town Packet (String to Byte)

ko_send_packet:
mov ecx,[01005074] //KO_PTR_PKT
push 00000002      //Packet Length
push ko_packet     //Packet Address
call 005F98C0      //KO_PTR_SND

yazdığım örnekte KO_SND fonksiyonunu inline asm kullanarak oyunun içerisinden "005F98C0" adresini kullanarak call edebiliyoruz. aynı işlemi inline asm kullanmadan sadece c++ kullanarakta yapabiliriz fakat 5 satır kod yazmak yerine 70 satır kod yazarız. bu yüzden DLL kullanılıyor.
varya su adam gibi onlarca normal üye olan çok fazla bilgili elemanlar var nadiren ortaya cıkıyor cok garip elemanlar
 
varya su adam gibi onlarca normal üye olan çok fazla bilgili elemanlar var nadiren ortaya cıkıyor cok garip elemanlar
Bizim yerimize bilgisi olmayanlar garip terimler kullanarak dübürden sallayarak insanları yanlış yönlendiriyorlar görünce bazen dayanamıyorum insan banane ya deyip geçemiyor, insanlar belki de onlar için önemli bir konuda yardım istiyorlar ama bir boktan haberi olmayan bir güruh var biliyormuş gibi davranıp insanların yanlış yönlenmesine sebep oluyorlar özellikle türk forumlarında insanların rollerine bakarak verdiği bilgiye güvenmeyin derim ben, bence , benim fikrimdir.
 
yanlış hocam , arkadaşın ne sorduğunu anladım , ona göre açıklama yaptım zaten exe nin kullandığı .DLL dosyasını , kendi yazacağımız .DLL ile değiştirebileceğimiz için cracklemiş oluyoruz zaten bu yüzden bu sistemler genel olarak .dll ile yazılmaz çok ucuz kalır. Doğrulama fonkunu istediğin şekilde çalıştırırsın hooklayarak. .DLL sadece sunucudan gelen doğru yada yanlış cevabını döndürmeye yarar bu yüzden kolay manipüle edilebilir. daha önce ki bir mesajımda da aynı şeyi söylemiştim yazılım alanında imkansıza yer yoktur . nedense bu forumda insanlar kendi bilgilerinin dahilinde olmayan şeyleri imkansız olarak nitelendiriyorlar sözüm birazda sana bu konuda arkadaşım benim , imkansız değil sadece sen yeterli bilgi ve tecrübeye sahip değilsin , hatta konu sahibinin sorduğu şey imkansıza çok uzak gayet basit bir şey .
Hocam nasıl öğrenebiliriz böyle şeyleri
 
evet biliyorum. kaynak var mı peki bildiğniz ingilizce/türkçe farketmez
Crâck değil tersine mühendisliği nasıl öğrenebilirim diye düşünebilirsin Crâck sadece bir iş, ana başlığımız tersine mühendislik ingilizcen varsa çok fazla kaynak var google da benim tavsiyem ilk önce c++ öğrenmeye başla aynı anda ram ve bilgisayarın çalışma mantığını öğrenmek için kaynaklar araştır aklına takılan soruları parça parça sorman ve araştırman gerekiyor "Crâck nasıl öğrenirim" gibi çok genel bir soru sormak yerine "tersine mühendislik nedir " gibi daha temel sorulara odaklanmalısın
 
exe'nin bağlı olduğu ve birlikte işlem yaptığı dll 'nin bağlantısı exe den kesiliyor onun yerine kendi dll nizi kullanmasını sağlıyorsunuz bir nevi bir Crâck yöntemi olarak kullanılıyor. Exe nin çalışırken otomatik olarak bağlandığı ve kullandığı exe tamamen gitmiş oluyor. Eğer sorunuz dll 'nin içeriğini ve içerisinde ki kodların tamamını görmekse dll dosyaları decompile edilebilir içeriği görülebilir. Game hacking alanında DLL kullanılmasının temel sebebi oyun hafızasından fonksiyonları kolayca çağırabilmektir bir diğer sebebi ise oyun hafızasına inline assembly kullanarak kolayca etki etmektir örneğin
Kod:
ko_packet:
dec eax //4800 Town Packet (String to Byte)

ko_send_packet:
mov ecx,[01005074] //KO_PTR_PKT
push 00000002      //Packet Length
push ko_packet     //Packet Address
call 005F98C0      //KO_PTR_SND

yazdığım örnekte KO_SND fonksiyonunu inline asm kullanarak oyunun içerisinden "005F98C0" adresini kullanarak call edebiliyoruz. aynı işlemi inline asm kullanmadan sadece c++ kullanarakta yapabiliriz fakat 5 satır kod yazmak yerine 70 satır kod yazarız. bu yüzden DLL kullanılıyor.
70 satır kod ne alaka. Su ornekte verdiğin şeyi 3 satır kod ile çağırırım inline assembly siz
 
70 satır kod ne alaka. Su ornekte verdiğin şeyi 3 satır kod ile çağırırım inline assembly siz
C++:
const uint16_t id_town = 0x48;
reinterpret_cast<void(__thiscall*)(uintptr_t, LPCVOID, uint32_t)>(0x005F98C0)(*reinterpret_cast<uintptr_t*>(0x01005074), &id_town, sizeof(id_town));
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt