Riot api leri ve bizden sakladıkları (lockfile nedir) - autofill bot yapımı

Napcaz

Anka Team Senior
28 Nis 2019
766
762
Cudi
Bir süredir konu açmıyorum bu sıra çok lol oynadım ve zaten ilgimi çeken api lerine "madem bu kadar oynadın biraz millete hayrın dokunsun" moddosuyla iyice giriştim ve gerçekten ilginç ve kullanışlı bilgiler edindim. Bu konuda Riot api lerini irdeleyeceğiz ve ne şekilde kullanılabileceklerine göz atacağız.

Öncelikle genel geçer api lere bir göz atalım benim öğrendiğim iki farklı legal api sistemi var:

*Riot un tüm oyunlarında kullandığı bir liveclient sistemi var bunu belki daha önce test etmişsinizdir
Burda fix bir şekilde 2999 portu kullanılarak bir yayın yapıyor client ve bu yayın sadece oyuncu bir oyundaysa oluyor yani kendiniz burdaki api leri test etmek için antreman modunda falan bir maç açıp deneyebilirsiniz verdiği veriler maçtaki her oyuncunun altını seviyesi şampiyonu ölüm/asist gibi yani tüm maça dair her şey oluyor

*Bunun dışında Riot un developer portal ından api alarak bazı bilgiler edinebilirsiniz burdaki api ler ise ikiye ayrılıyor private ve product olmak üzere:
private key almak için developer portal a giriş yapmanız yeterli product key içinse ürününüz ile alakalı ticket göndermeniz lazım kabul edilirse veriliyor fazladan tournament api lerini de kullanmanıza imkan veriyor. Genel olarak bu apiler bir oyuncunun level ini, şampiyonlarının ustalık derecelerini, maç geçmişini, rank ını gibi global bilgileri görüntülemenize olanak veriyor.

Şuana kadar size iki api sistemini anlattım birincisi canlı maçlarda localhost umuzda çalışarak bize bilgi sağlıyor blitz gibi uygulamalar bundan yararlanarak maç esnasındaki durumumuzu analiz edebiliyor, ikincisi ise bir kullanıcıya dair global bilgileri çekmenizi sağlıyor keza buda op.gg gibi sitelerce rank sıralamalarını oluşturmakta kullanılıyor.

Şimdi Anchorbot un katkılarıyla keşfettiğim yeni bir yönteme göz atacağız:
LoL client i her açtığımızda C:\Riot Games\League of Legends dizininde oluşan lockfile isminde bir dosya var ve oyun kapandığında bu dosyada silinmiş oluyor içindeki bilgiler ise biraz ilginç
"LeagueClient:20308:53594:jcFgUe0bd7TTrVyP_93aAg:https" tek bir satırda ":" ile ayrılmış bir kaç parça kelime ve sayı... Ortadaki uniq kısım ve port her kapatıp açmada değişiyor. Tüm bunlar ne anlama geliyor?

Anchorbot'un içinde bu dosyanın okunduğunu ve parçalara ayrılıp son 3 parçasının ( ":" lar ile bölüyoruz) aldındığını gördüm ve bunlar client ile yaptığımız önemli bir iletişim için bize gerekli bilgileri sunuyor. LoL api politikası zamanla güncelledi ve benim anladığım kadarıyla legal yollarla developer portal da bulunan api ler dışındaki api lerini kullanmak yasak tabi böyle api lerin var olduğunu anlamak da bir meseleydi benim için aslında internette bu api leri bulabileceğiniz kaynaklar mevcut, şöyle:
LCU - The League Client — Riot API Libraries documentation bu site topluluk tarafından riot api leri için yapılmış; sitede riot api leri ile alakalı projeler, riot apilerinin nasıl kullanılacakları (size az önce bahsettiğim şeyler) tarzında bilgiler mevcut ben hem bu sitede hemde chrome da gördüğüm bir siteyi daha göstermek istiyorum oda bu: https://lcu.vivide.re/ gördüğünüz gibi sürüm sürüm bissürü riot apisi var bunlardan bazıları hala kullanılıyor ve çalışıyor ve tahmin ederseniz ki pek çoğu yasal değil.

AnchorBot hesabı 30 levele yükseltmek için otomatik maçlar atarken bu apilerden bazılarını çok sık kullanıyor mesela oda oluşturmak, maç aramak, şampiyon kilitlemek gibi işlevler için...
Bu işlevlerin nasıl kullanılacağını internette elbette bulabiliriz ama bu noktada Anchorbot un api leri hangi parametrelerle kullandığını görmek benim bir hayli işime yaradı ve basit ve işe yarayacak bir şey yapmak istedim. Maç arayan ve bulduğunda şampiyon kilitleyen bir bot -elbet geliştirilebilir- . Bu api leri kullanarak cidden çok çılgın şeyler yapılabileceğini düşünüyorum sizle de öğrendiklerimi paylaşmak için bu konuyu açtım. Umarım ağzınızın suyunu akıtabilmişimdir. Bu apiyi kullanarak geliştirdiğiniz veya düşündüğünüz projeleri paylaşabilirsiniz konu altında beraber beyin fırtınası yaparız. Selametle kalın.

LCU apiyi kullanarak geliştirdiğim autofill bot unu burdan indirip kullanabilirsiniz dikkat edin "championId" yi değiştirmezseniz hep annie seçer:D
GitHub - SemsYapar/LoLAutofillBot: auto find match and select champ bot
 

Kruvazör

Yazılım Ekibi Lideri
28 Mar 2020
1,719
2,528
Wrong Side Of Heaven
Bir süredir konu açmıyorum bu sıra çok lol oynadım ve zaten ilgimi çeken api lerine "madem bu kadar oynadın biraz millete hayrın dokunsun" moddosuyla iyice giriştim ve gerçekten ilginç ve kullanışlı bilgiler edindim. Bu konuda Riot api lerini irdeleyeceğiz ve ne şekilde kullanılabileceklerine göz atacağız.

Öncelikle genel geçer api lere bir göz atalım benim öğrendiğim iki farklı legal api sistemi var:

*Riot un tüm oyunlarında kullandığı bir liveclient sistemi var bunu belki daha önce test etmişsinizdir
Burda fix bir şekilde 2999 portu kullanılarak bir yayın yapıyor client ve bu yayın sadece oyuncu bir oyundaysa oluyor yani kendiniz burdaki api leri test etmek için antreman modunda falan bir maç açıp deneyebilirsiniz verdiği veriler maçtaki her oyuncunun altını seviyesi şampiyonu ölüm/asist gibi yani tüm maça dair her şey oluyor

*Bunun dışında Riot un developer portal ından api alarak bazı bilgiler edinebilirsiniz burdaki api ler ise ikiye ayrılıyor private ve product olmak üzere:
private key almak için developer portal a giriş yapmanız yeterli product key içinse ürününüz ile alakalı ticket göndermeniz lazım kabul edilirse veriliyor fazladan tournament api lerini de kullanmanıza imkan veriyor. Genel olarak bu apiler bir oyuncunun level ini, şampiyonlarının ustalık derecelerini, maç geçmişini, rank ını gibi global bilgileri görüntülemenize olanak veriyor.

Şuana kadar size iki api sistemini anlattım birincisi canlı maçlarda localhost umuzda çalışarak bize bilgi sağlıyor blitz gibi uygulamalar bundan yararlanarak maç esnasındaki durumumuzu analiz edebiliyor, ikincisi ise bir kullanıcıya dair global bilgileri çekmenizi sağlıyor keza buda op.gg gibi sitelerce rank sıralamalarını oluşturmakta kullanılıyor.

Şimdi Anchorbot un katkılarıyla keşfettiğim yeni bir yönteme göz atacağız:
LoL client i her açtığımızda C:\Riot Games\League of Legends dizininde oluşan lockfile isminde bir dosya var ve oyun kapandığında bu dosyada silinmiş oluyor içindeki bilgiler ise biraz ilginç
"LeagueClient:20308:53594:jcFgUe0bd7TTrVyP_93aAg:https" tek bir satırda ":" ile ayrılmış bir kaç parça kelime ve sayı... Ortadaki uniq kısım ve port her kapatıp açmada değişiyor. Tüm bunlar ne anlama geliyor?

Anchorbot'un içinde bu dosyanın okunduğunu ve parçalara ayrılıp son 3 parçasının ( ":" lar ile bölüyoruz) aldındığını gördüm ve bunlar client ile yaptığımız önemli bir iletişim için bize gerekli bilgileri sunuyor. LoL api politikası zamanla güncelledi ve benim anladığım kadarıyla legal yollarla developer portal da bulunan api ler dışındaki api lerini kullanmak yasak tabi böyle api lerin var olduğunu anlamak da bir meseleydi benim için aslında internette bu api leri bulabileceğiniz kaynaklar mevcut, şöyle:
LCU - The League Client — Riot API Libraries documentation bu site topluluk tarafından riot api leri için yapılmış; sitede riot api leri ile alakalı projeler, riot apilerinin nasıl kullanılacakları (size az önce bahsettiğim şeyler) tarzında bilgiler mevcut ben hem bu sitede hemde chrome da gördüğüm bir siteyi daha göstermek istiyorum oda bu: https://lcu.vivide.re/ gördüğünüz gibi sürüm sürüm bissürü riot apisi var bunlardan bazıları hala kullanılıyor ve çalışıyor ve tahmin ederseniz ki pek çoğu yasal değil.

AnchorBot hesabı 30 levele yükseltmek için otomatik maçlar atarken bu apilerden bazılarını çok sık kullanıyor mesela oda oluşturmak, maç aramak, şampiyon kilitlemek gibi işlevler için...
Bu işlevlerin nasıl kullanılacağını internette elbette bulabiliriz ama bu noktada Anchorbot un api leri hangi parametrelerle kullandığını görmek benim bir hayli işime yaradı ve basit ve işe yarayacak bir şey yapmak istedim. Maç arayan ve bulduğunda şampiyon kilitleyen bir bot -elbet geliştirilebilir- . Bu api leri kullanarak cidden çok çılgın şeyler yapılabileceğini düşünüyorum sizle de öğrendiklerimi paylaşmak için bu konuyu açtım. Umarım ağzınızın suyunu akıtabilmişimdir. Bu apiyi kullanarak geliştirdiğiniz veya düşündüğünüz projeleri paylaşabilirsiniz konu altında beraber beyin fırtınası yaparız. Selametle kalın.

LCU apiyi kullanarak geliştirdiğim autofill bot unu burdan indirip kullanabilirsiniz dikkat edin "championId" yi değiştirmezseniz hep annie seçer:D
GitHub - SemsYapar/LoLAutofillBot: auto find match and select champ bot
Oynadığım oyunlarda her daim bir otomatize işlem hep bir kolaylık arar ve bulurum.
Bu yeri geldiğinde bir pointer manipülasyonu
Yeri gelince basit bir instalock olur.
LoL dediğimiz lanet oyuna 7 sene gömmüş bir emektar olarak her ne kadar oyundan çekilsem de bir yazılımcı olarak yeniden dönüp bir proje yapabilirim sanırım...

Bu bahsettiğin apiler de teoride çok işe yarayacaktır.

Güzel konu eline sağlık.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.