Android Oyun Saldırıya Devam Ediyor [kapalı]


143

Bu yüzden birkaç kez yaşadık, bir oyun yayınlıyoruz (ucuz) ve birisi onu hackliyor ve bir aynaya koyuyor. Tüm uygulamalarımız için Google Alerts'ü ayarladık, bu yüzden günlük olarak korsanlığı kimin yaptığını öğreniyoruz. Şimdiye kadar, Google'ın önerdiği gibi lisans hizmetini uyguladık, lisansımız benzersiz cihaz kimliğiyle her başlatıldığında tuzumuz rastgele yapılır. Kontrol hizmetini, uygulama ilk kez başlatıldığında bir kez çalıştırıyoruz. Daha sonra oradan SharedPreferences'da karşılaştırılan anahtar ve saklanan değer için 512 karakterlik bir karma oluştururuz.

Şimdi, bir kez kontrol muhtemelen uygulamanın engellendiği yerde olduğunu biliyorum. Bayt kodumuz büyük olasılıkla kontrolü başlatan satır olmadan incelenmiş ve yeniden derlenmiştir.

Buradan, daha önce kırık gördüğüm gibi kodumuzu gizlemek istemiyorum. Biraz daha sağlam bir şey istiyorum ve bunun nasıl düzgün bir şekilde yapılacağını öğrenmek istiyorum. İnsanların sadece% 2'si saldırıya uğramış bir versiyon arayacağından, bu noktada para kazanmaktan daha çok öğrenmeye ilgi duyuyorum.

Şimdiye kadar, kendi başıma, oyunun çeşitli başlangıç ​​alanlarına yerleştirilen rastgele bir sayı üreteci buldum. Başlatıldığında (örneğin, 50 defadan 1'i) lisans kontrol edilir. Bunun hacklenmesini zorlaştıracağını biliyorum çünkü kraker her davayı ortadan kaldırmak, derlemek, ortadan kaldırmak, derlemek zorunda kalacaktı. Ancak bu yöntem hala kırılabilir ... peki siz ne öneriyorsunuz? Yine, bu güvenlik süreciyle gerçekten ilgileniyorum, bu yüzden lütfen eğitin, bunu bir zaman damgasına dayalı olarak gizleme veya periyodik olarak kontrol etme üzerine bir tartışmaya dönüştürmeyin.

Teşekkürler


27
Kendinize öğrenmeyle para kazanmaktan daha fazla ilgilendiğinizi söylemediyseniz, cevabım sadece "baş ağrısına değmez" olacaktır. Baş ağrısının kendisiyle ilgilendiğiniz için devam ediyorum diyorum (ama sizin için hiçbir cevabım yok, bu soruyu herkes gibi takip edeceğim).
Thiago Arrais

4
Aynı oyun hacklenmeye devam ederse, personelde sorun yaşamadığınızdan emin misiniz? Dikkate alınması gereken en iyi şey değil, ama olabilir
Phil Lello

3
20k kod satırının üzerinde olmasına rağmen, tüm süreci kendim yönetiyorum.
BajaBob

3
@BajaBob o zaman köstebeksin: D
Sulfkain

Yanıtlar:


117

Benim fikrim hacker kanıtı değil, ama oyunu kesmek için bazı ilgi kaldırabilir.

Freemium modeli

1) İlk 5-10 seviyeleri ücretsiz yapın, böylece insanlar oyunu öğrenebilir ve ödemeden biraz eğlenebilirler. Daha azı ilk seviyeyi kesmek isteyecek ve oyun Freemium modeli ile daha da yayılacak.

Shareware / kümelenmiş seviye paketleri

2) Oyun seviyelerinin veya mantığının bir kısmının çevrimiçi kalmasına izin verin. Örneğin. seviye 5 veya 10 veya 15'e ulaştığınızda, oyun için küçük parçalar indirin ve her zaman oyundan ilerleme günlüğünü gönderin ve bunu olası değerler + hashcode'lara göre doğrulayın. Bu, saldırıya uğramış hesapların otomatik olarak kapatılmasını mümkün kılabilir.

Gizli dolandırıcı koruması

3) Oyuna koyduğunuz "küçük uyarı bayraklarını" da sayabilirsiniz. Dont başlangıçta "doğrulama" kontrol, hiçbir oyun mantığı içine bu bayrakları inşa. Oyun oynamayı kırma, çünkü o zaman kimse aramayacak. Daha sonra kullanıcı seviye canavarının sonuna geldiğinde, herhangi bir kayıtlı uyarı bayrağı olup olmadığını kontrol edin. Bunlar oyunun içinde görünmeyecek, bu yüzden saldırıya uğramış bir sürümü olan bilinmeyen kullanıcı saat / gün boyunca oynuyor olabilir ve oyunun "hata" olduğu için aniden oyunu bitiremeyeceğini veya bir sonraki seviyeye ilerleyemeyeceğini fark edebilir. Kullanıcının bilmediği şey, bu hatanın sadece saldırıya uğramış istemcilerde meydana gelmesiydi.

Sonuç

Krakerlerden daha akıllı ol. İşin bittiğini düşünmek için onları kandırın. Bir kopya koruma yapın ve daha gelişmiş krakerlerin kaldırabileceğini bilin. Ama muhtemelen çatlağın da işe yarayıp yaramadığını kontrol etmek için 50 seviye oynamak istemiyorlar.

Bu problemi fark ettikten sonra, çatlamaya da başlayabilirler. Ancak oyunu seviye paketlerine ayırırsanız, yine de her paket indirmesi arasında doğrulama yapabilirsiniz. Saldırıya uğramış istemci karma verilerini aldıktan sonra, sadece bir yürütme yürütün ve oyunu istemcide kilitleyin. Maalesef oyun çöktü. Söylemeyin çünkü hacklendi. Bir program hatası olabilir. :-)

Yine, bu hacker kanıtı değil. Ama bir sonraki oyuna geçmek için onları rahatsız edebilir. Son olarak, oyun için düzenli güncellemeler de sunabilirsiniz ve sadece en son sürüm "kayıtları" yayınlayabilmelidir, böylece aktif kullanıcılar döngüde tutmak için güncelleme yapmak zorunda kalacaklardır.


5
Vay, harika fikirler. Tüm bunları gerçekten takdir et, seviyeler yapmayı ve bunları bir sunucuya göndermeyi ve onlara karşı onaylamayı asla düşünmedim. Versoning ... harika bir fikir. Herkesi güncel tutun, çatlamayı mantıksız yapın. Bir ton teşekkürler, bu beni bir süre meşgul edecek!
BajaBob

12
Ah, çok kötü bir cevabı +2 yapamazsın :) Bir yorum: Sorunun oyunun korsanlığa uğramasından kaynaklandığını nasıl gösterebilirsin? Oyun korsan bir kopyada buggy / garipleşirse, insanlar bunun bir hata olduğunu düşünebilir ve forumlarda oyunu badmouth edebilir. Android'de bu kadar büyük bir sorun olduğunu düşünmüyorum, çünkü geniş bir kitleye sahip çok fazla forum yok, ancak "korsanların kopyalarının düzgün çalışmayabileceği" konusunda bir sorumluluk reddi beyan etmenin mantıklı olup olmadığını merak ediyorum.
EboMike

3
1978'den itibaren TRS80'de, kopya koruması kaldırıldığında rastgele davranacak bir oyun hatırlıyorum. Yalnızca 1 geçerlilik denetimi yapıldı ve bu oyunun kaldırılması, oyunu serbestçe kopyalayabileceğiniz anlamına geliyordu, ancak yasal kopyalarda garip oyun hataları oluşmayacak, sadece saldırıya uğrayan kopyalarda. Kimse bunun geliştiricinin hatası olduğunu düşünmedi ... ne olduğunu biliyorduk.
Fixee

1
@EboMike Bence kopyalamaya karşı koruma fikrimin güçlü kısmının "mümkün olduğunca normal hareket etmek" olduğunu krakerlere bile kötü koruma planlarının önündeki ipucu vermediğini düşünüyorum. Bu, onların korumayı daha fazla merak etmelerini sağlayacaktır. Sadece eğlenmek için. Unutmayın, birçoğu para için yapmaz, ama sadece gösterebildikleri için. Bu yüzden onları kışkırtmayın. Sadece rahat hareket et. : o) Onlardan daha akıllı ol.
BerggreenDK

2
@Fixee ve diğerleri Son zamanlarda yapılan Batman Arkham Asylum oyununda buna benzer bir şey vardı: Korsan kopyalarda çok önemli bir hareket patlayacak ve sizi oyunun başlarında oldukça sıkıştıracaktı. Daha sonra, birisi forumlardaki "hata" dan şikayet ettiğinde, geliştirici sırıttı ve "oyunda bir hata değil, ahlaki kodunuzda bir hata" diyebilirdi.
Nzall

20

Bir süredir bazı kod çözme ve hackleme yapıyorum (warez değil, modlar ve korsanlar çoğunlukla google uygulamaları ve android çerçevesine, her zaman xda-geliştirici politikalarına uyuyor).

Smali okumayı öğrendikten sonra, neredeyse orijinal java kodunu okumak gibidir (ancak daha fazla LOC ile). Böylece, anahtarları kontrol etmek için eklediğiniz herhangi bir kod bulunabilir ve silinebilir veya değiştirilebilir. Birden fazla şeyi ortadan kaldırmak için her seferinde yeniden derlemenize gerek yoktur (bazı aramalar benzer kod parçalarını bulmak için mucizeler yapar) ve bunları bulmak için derleme / yeniden derleme döngüleri gerekli olsa bile, bu sadece bir veya iki dakika meselesidir koda: her şey apktool tarafından ve hatta daha fazlası apkmanager tarafından otomatikleştirilir.

Bunu söyledikten sonra size önerim, bir tür çevrimiçi puanlama tablosu veya benzeri bir şey uygulamaktır ve kullanıcı çevrimiçi puan tablosuna baktığında, uyguladığınız karma kodu kontrol edebilir ve ilgili gmail hesabıyla karşılaştırabilirsiniz. Bu şekilde hack'i google'a bildirebilir ve warez kullanıcısına kötü bir mesaj göndererek bunun neden yasa dışı olduğunu açıklayabilirsiniz.

Tabii ki, puanlama tablosunu ortadan kaldırmak için yeni bir saldırı uygulanabilir, ancak bu warez'e olan ilgiyi azaltacaktır.

İyi şanslar.


Güncelleme

Bu soruyu cevaplamak için araştırdıktan sonra: APK'ya kod enjekte etmek (gerçekten Amazon DRM mekanizması hakkında), Amazon'un uygulamaları nasıl koruduğunu biraz anlatabilirim: her yerde kurulum geçerliliğini kontrol etmek için yöntemler içerir (bir örnek görebilirsiniz) bu soruya cevabımda nasıl yaptıklarına dair). Bu, bir uygulamayı çok zor değil, son derece sıkıcı kesmek için herhangi bir girişimde bulunacaktır. Bunun güçlü bir nokta olduğuna inanıyorum: bilgisayar korsanları bu kadar çok tekrarlanan görevi yerine getirmek için çok fazla zaman harcamak istemeyecekler: zorlu değil ve sıkıcı. Bu yaklaşımda gördüğüm ana kusur, elbette her zaman geçerli bir cevap döndürmek için Amazon uygulamasının kendisini hackleme olasılığıdır. Ancak, mevcut karma kontrollerinizi yöntemlerinize dağılmış bir çeşit çevrimiçi çek ile karıştırırsanız, saldırıya uğrama şansının büyük ölçüde azaltılabileceğine inanıyorum.


3
Bir çok insanın "eve telefon ederek" uygulamalarıyla ilgili bir sorunu olduğunu belirtmeliyim. Şahsen, bu aptalca - bir Android telefon 'telefonları ev' çok sık birçok şekilde, gerçekten önemli değil ve anonim bir lisans doğrulama kontrolü ile ilgili sorun nedir? Hâlâ bunu atmak istedim - bazı insanlar, özellikle ifşa edilmediğinde, "eve telefon etme" konusunda büyük bir koku atıyorlar.
EboMike

3
Peki, uygulama 'telefonlar ev' ve kullanıcı bilmiyorsa insanların bir sorun olabilir anlaşılabilir. Ama web tabanlı bir puan tablosu o zamandan beri isteyerek bağlanan kullanıcı olduğunu çözer
Aleadam

Doğru, ancak puanları "anonim olarak" yüklemesi ve gmail hesabı karmasını göndermesi gereken bağlantıyı kullandığınızda, bu farklı bir konudur. Tekrar: Bana göre değil. Bunun son derece makul olduğunu düşünürdüm ve şahsen bu şemayı kendi uygulamamda uygulamak için cazip olurdu. Şikayet eden kişiler bir azınlıkta olacaklardır (ve büyük olasılıkla uygulamayı bağımsız olarak satın alacaklardır).
EboMike

Kaynak kodunu indirmek yerine neden çerçeveyi kodalıyorsunuz?
Phil Lello

1
@Phil, touchwiz veya sense FW'lerin kaynak koduna erişemezsiniz, bu nedenle belirli bir telefonu modifiye etmek istiyorsanız, bazen en kolay yol koda dönüştürmek ve smalis'i değiştirmektir.
Aleadam

20

Bu yazıda benim çözümden alınan apk kırık kaçının

Kendi lisans kitaplığınızı uygulayın

Ayrıca bunu Google I / O 2011 YouTube kaydından kontrol etmenizi öneririm:

Korsanlardan Kaçınma ve Vampirleri Durdurma

DÜZENLE:

Sunum Notları gelen Evading Korsanları ve Durdurma Vampirler

Bazı temel anahtar noktalar


Yukarıdaki bağlantılar her zaman bağlantılı sayfaya gitmiyor gibi görünüyor ... sadece bazen ve biraz işletim sistemine ve tarayıcıya bağlı gibi görünüyor. #%3ar.page.15URL'lerin sonunu not edin . Bu sayfaya otomatik olarak yönlendirilmezseniz, nereye / hangi sayfaya bakmanız gerektiğini görmek için bağlantıya baktığınızdan emin olun.
TryTryAgain

1
Güzel! Ayrıca Freemium'a inandıklarını ve oyun içindeki bazı "hataları" gizlediklerini görüyorum (sadece bir lisans tekniği kullanarak). Yalnızca Android lisans sunucusu yerine platformlar arası bir çözüm istiyorum. Ama ilginç.
BerggreenDK

Btw. komik, bu cevap 15 yaşasın, benim zaten 90 geçti ve doğru cevap
düşünmüyor

8

Gerçekten şaşkınlık içinde olmadığınızı biliyorum, ama buna tepki vermem gerekiyor:

Buradan, daha önce kırık gördüğüm gibi kodumuzu gizlemek istemiyorum. Biraz daha sağlam bir şey istiyorum ve bunun nasıl düzgün bir şekilde yapılacağını öğrenmek istiyorum.

ProGuard benim deneyimimde çok güvenilir ve bu AIDL ve Java yöntemini çağıran bazı yerel kod gibi birkaç gelişmiş özellik kullanmamıza rağmen ... Belgeleri okumak ve işleri düzgün yapmak için biraz çalışma gerekiyor, ancak bir kez ProGuard son derece güvenilirdir ve ayrıca uygulamanızı optimize eder.

Özel güvenlik / kriptografik hileler iyidir, ancak şaşkınlık olmadan benim düşünceme göre suya bir taş atmak gibi.

ProGuard'ı aylarca üretimde kullandım ve kusursuz çalışıyor.

Öğrenmeye devam ediyorsanız, ProGuard kılavuzunu dikkatle okuyun, deneyin ve çıktı günlüklerini inceleyin.


okunabilen her şey de ayrıştırılabilir, bu sadece CPU gücü ve inatçılık meselesidir. Vurgulama hala kodun çalışmasına izin verir, böylece kod çözülürken / kodu çözülürken, kraker hala çalışan sürümü orijinal ile karşılaştırabilir. Kırıcıyı geciktirebilir veya daha az deneyimli krakeri durdurabilir, ancak hiç de güvenli değildir.
BerggreenDK

4

SİZ'ten daha yetenekli programcılar olması şansı (tüm programcılar için geçerlidir)% 100'dür. Ve bu doğruysa, korsanlığı düzeltemezsiniz. Ama iflas etmek için çok fazla zaman ve çaba harcayabilirsiniz.

Biraz ciddi para kazanmak istiyorsanız, hedef kullanıcı grubunuz ve davranış bilimi hakkında biraz araştırma yapmanız gerekir. Yeni para getiren kullanıcıları oynamaya ihtiyacınız var ve bu kadar.

Ayrıca, her şeyi yanlış anladınız. Bilgisayar korsanları, kullanıcı tabanınızın en aktif üyeleridir, sadece sizin istemediğiniz şekilde davranırlar.

Mesela Zynga oyunlarını Facebook'ta ele geçir, sence saldırıya uğradın mı? - Tabii ki ve yaklaşık +100000 oyuncu sadece oynar, çünkü her şeyi otomatikleştiren botlar kullanabilirler.

Gerçek insanların devasa aktif kullanıcı taban botnetine sahip olmak, arşivci tipi oyuncuların oyunu oynamak istemesine neden olur - ve oynadığınızda serin görünüyorsa, Avarage Joe da oynamak isteyecektir. Eğer Avarage Joe oynarsa, arkadaşları oynamak isteyebilir ve muhtemelen başka bir şeyle ilgilenmeyecek, arkadaşından daha iyi olmak, zaman öldürmek veya sohbet etmek için bir şeyler yapmak. Ortalama Joe arkadaşları büyük olasılıkla Joe'dan daha iyi olmak için ödeme yapmaya istekli olacaklar, ancak daha iyi olmalarını sağlayan bir şeye yatırım yapmak istiyorlar.

Ayrıca, gerçek değer oyunu ücretsiz oynuyorsa, ücretsiz saldırı sürümünü kullanan kullanıcılar büyük olasılıkla bunun için hiçbir zaman ödeme yapmazlardı. Ama onlar Avarage Joes ve onların arkadaşları olabilir. Yani bu sahip olabileceğiniz en ucuz reklam gibidir. Büyük kullanıcı tabanınızdan para kazanmak istiyorsanız, seviyelerde ve grafiklerde küçük değişikliklerle oyunun yeni sürümlerini yapın.



2

Ne ilginç ve rahatsız edici bir soru. :-) Bir egzersiz olarak, Amazon aracılığıyla bir uygulama yayınlamayı deneyebilirsiniz; kendi DRM mekanizmaları vardır; Acaba ProGuard'dan daha iyi çalışıyor mu ...


1
Bugün itibariyle, Lucky Patcher uygulaması Amazon DRM'yi de kırdı! ProGuard dışında, başka bir çözüm DexGuard olabilir. Ancak DexGuard'ın satın alınması birkaç yüz avroya mal oluyor, ancak kodlarınızın korsanlığa karşı koruyabileceğinden emin olamaz ...
ChuongPham

2

Bence anahtar unsurlardan biri kodu yaymaktır, böylece hepsi tek bir yerde değildir. Lisansı alıp kontrol eden LicenseChecker.checkLicense () adında bir işleviniz varsa, derhal devre dışı bırakılacağından emin olabilirsiniz.

Sahip olduğunuz tek avantaj, krakerlerin kodunuzun yorumlarını görememesidir (ve eğer karıştırırsanız, yöntem / değişken isimleri), bu yüzden garip bir şey bulun. Bir etkinliğin onCreate () öğesinde lisans kimliğini alırsınız. OnResume () içinde, kontrol etmek için başka bir değer elde edersiniz. Belki bir iplik oluşturun ve orada bazı kontroller yapın. Ve sonra, ilgisiz başka bir kod parçası (belki de oyuncu kontrolü) değeri alabilir ve karşılaştırabilir ve sonucu bir yerde saklayabilir. Ardından, alakasız diğer üç kod parçası bağımsız olarak bu değeri kontrol eder ve eşleşmezse uygulamanızı devre dışı bırakır.

Şimdi, bunun kendiniz için baş ağrısına neden olabileceğini açıkça söylemeliyim - açıkçası, dağınık, kötü kod hata ayıklamak daha zordur ve hatalara neden olma eğilimi gösterir. En kötü durumda, yasal olarak satın alınan uygulamalarda yanlış pozitifler oluşturursunuz.

Ve elbette, her şey tersine mühendislikle yapılabilir - krakerler uygulamanın devre dışı bırakıldığı yeri bulduğunda, okunmakta olan değeri izlerler. Daha sonra depolandığı yere geri dönebilir ve geri izleyebilirler ..... ya da çok daha kolay, sadece son kontrolü devre dışı bırakabilirler (bu yüzden 3 farklı yeri tavsiye ettim, tüm gecikmeli tetikleme). Güvenlik sadece en zayıf halka kadar iyidir.

Korsanlığı durduramayacaksınız. En iyi seçeneğiniz, uygulamanızla ilgili ilk hype sakinleşene kadar korsan bir kopyanın yayılmasını geciktirmektir.


1

Öncelikle, do DEĞİL olursa olsun kendimi GB güvenlik alanında yanlısı düşünün, ama:

Bence önemli bir şey, uygulamanın imza kontrolünde bazı bölümlere bağımlı olmasına izin vermektir. Hemen etkilemesine izin vermeyin, ancak bazı bayraklar ayarlamasına veya bazı değerleri değiştirmesine izin verin. daha sonra, bu bayrakları kullanın, kontrol edin, bunların yokluğunun / yanlışlığının belki de uygulamayı sonlandıracak bir tür istisnaya neden olmasına izin verin. İmza kontrolü yalnızca şu anda ilgili olduğu sürece, kodu atlamak, koddaki daha fazla alana dokunduktan sonra, uygulamanızı kesmek zorlaşır (veya daha az kolay ...). Ayrıca gördüğüm gibi, tüm kontroller yaptırım için aynı rutini çağırmamalıdır, çünkü bu aynı zamanda koruma mekanizmasını bulmayı ve sonlandırmayı da kolaylaştıracaktır.

Tabii ki, yasadışı SW durumlarında alınacak yaptırım değişebilir, yasadışı olarak kullanıldığında uygulamayı çökertmek isteyebilir, ancak çalışmaya devam etmesini de isteyebilirsiniz ve yalnızca kullanıcıdan yasal bir kopya satın almasını isteyen bir mesaj gönderebilirsiniz. uygulama.

Eğer duymak istemediğiniz buysa, zamanınız için üzgünüm :)


7
Korsan olduğunu tespit ettiğinizde uygulamanızın çökmesi, bu yüzden çöktüğünü çok açık yapmadığınız sürece geri tepebilir. Korsanlıkla mücadele kontrolünde başarısız olursa, oyunlarını rastgele bir süre sonra çökerten bazı oyun geliştiricilerini okuduğumu hatırlıyorum. Tabii ki, tonlarca insan bunu korsanlaştırdı, ancak kazaların korsan bir versiyon çalıştırdığı için farkında değildi. Bu, geliştiriciler için çok fazla kötü basınla sonuçlandı ve satışlarına zarar vermiş olabilir.
Mitch Lindgren

3
@Mitch - Kabul ediyorum. Bunu bir olasılık olarak verdim, ama belki de "en iyi" teknik strateji, muhtemelen en iyi "iş" stratejisi değildir.
MByD

0

Android kullanıcıları sadece sabit evlerin acısını kabul edecekler. Tek güvenli Android uygulaması her zaman bağlı bir Android uygulamasıdır.

Bu, büyük ölçüde, Google'ın Apple gibi yüklemeyi kilitlemeyi reddetmesi nedeniyle. IOS'ta telefonu jailbreak yapmak zorundasınız. Android'de herhangi bir APK'yı bir stokta, fabrika kurulumunda yükleyebilirsiniz.

İçeriğinizin bir kısmını / çoğunu / tümünü sunucuda saklayın; parçalar halinde teslim et; her çağrıda lisansı / oturumu doğrulayın.


Açıklama: İki platformdan birini rootlayabiliyor olsanız da, aslında IOS kullanıcılarının sadece küçük bir yüzdesi, yüklemeyi incitmekten korkacaktır. Ayrıca dünyanın birçok yerinde korsanlık yaratan bir Android uygulaması için ödeme yapmak zor veya imkansız.
yetimoner

Bu aslında 2011'deki cevabımın fikirlerinden biriydi ... neden tekrar gönderiyorsunuz?
BerggreenDK

0

Bu tür ov davranışını engellemek inanılmaz derecede zor olacaktır. İstemci tarafında işlenen her şey APK kod çözme ve modifikasyonu, Game Guardian vb.Gibi yazılımlarla bellek düzenleme kullanılarak hacklenebilir.

Kısmen etrafta dolaşmanın tek yolu, bunun yerine çevrimiçi bir oyun yapmak olabilir. Veya belirli işlevlerin çevrimiçi olarak ele alınmasını sağlayın. Ya da Android / iOS için denuvo gibi anti-sabotaj şifrelemesi mevcutsa.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.