Şimdi Ara

Tersine Mühendislik

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
18
Cevap
1
Favori
3.082
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaslar şu mmorpg tarzı online oyun hileleri nasıl yazılıyor? Mantıgı nedir hangi programlama dilleri gerekiyor? Mesela Assembly, C#, C++ bilsem yapabilir miyim? Bu tür oyunlarda mutlaka bir açık vardır. Ben bu açıktan faydalanarak tersine mühendislik yapmak istiyorum. Bu dilleri öğrenmek için illede PC mühendisi olmayada gerek yok sanırım.


    Sizlerin yönlendirmesiyle bu işe başlıyacağım. Biliyorum emek ve sabır isteyen bir iş. Ama başaracağım. Yardımlarınız için şimdiden teşekkürler.







  • dediğin olay oyunları crack'leme mantığıyla aynı biri network üzerinden biri direk exe, bu iş her babayiğidin harcı değil nasıl crack yapan gruplar var ki bunlar sayılı düşün işte bu işi yapabilen sayısı azdır dünyada öncelikle ingilizceyi ana dilin gibi bilmen lazım ardından yazılımcı olman lazım bu işin mantığını kavrıyabilmen için, ardından gidip assembly öğrenmen lazım ki bu işi yapabilesin.



    < Bu mesaj bu kişi tarafından değiştirildi alm.oz -- 5 Nisan 2013; 11:44:14 >
  • quote:

    Orijinalden alıntı: aLiM KaFKeF

    dediğin olay oyunları crack'leme mantığıyla aynı biri network üzerinden biri direk exe, bu iş her babayiğidin harcı değil nasıl crack yapan gruplar var ki bunlar sayılı düşün işte bu işi yapabilen sayısı azdır dünyada öncelikle ingilizceyi ana dilin gibi bilmen lazım ardından yazılımcı olman lazım bu işin mantığını kavrıyabilmen için, ardından gidip assembly öğrenmen lazım ki bu işi yapabilesin.

    Zaten yazın İngilizce kursuna gidecektim sırf bu iş için. İnglizce halledilir. Ailede bilen var zaten :D

    O zaman en zoru kaldı geriye ASM bilgisi. Yani 0 ve 1'lerin diline :D Az çok bilgim var mesela JUMP komutlar MOV MOVX filan :D Cevabınız için teşekkür ederim.



    < Bu mesaj bu kişi tarafından değiştirildi Pitho38 -- 5 Nisan 2013; 12:20:30 >
  • Düz mühendislii çözmeyle başlayabilrsin.
  • quote:

    Orijinalden alıntı: Pitho38

    Arkadaslar şu mmorpg tarzı online oyun hileleri nasıl yazılıyor? Mantıgı nedir hangi programlama dilleri gerekiyor? Mesela Assembly, C#, C++ bilsem yapabilir miyim? Bu tür oyunlarda mutlaka bir açık vardır. Ben bu açıktan faydalanarak tersine mühendislik yapmak istiyorum. Bu dilleri öğrenmek için illede PC mühendisi olmayada gerek yok sanırım.


    Sizlerin yönlendirmesiyle bu işe başlıyacağım. Biliyorum emek ve sabır isteyen bir iş. Ama başaracağım. Yardımlarınız için şimdiden teşekkürler.






    PC mühendisi olmaya gerek yok ama PC mühendislerinin bile görmediği konuları kapsıyor tersine mühendislik.

    Sana lazım olan şeyler şunlar;
    -Orta düzey programlama bilgisi. Karşı tarafın ne yaptığını biliyorsan reverse etmek kolay olacaktır.
    -x86 Assembly Bilgisi
    -Asmx86 Instructions List
    -Sağlam bir debugger (Ben OllyDbg kullanıyorum.)
    -Toplayacağın verileri kullanmak için yazman gereken DLL'yi oluşturabileceğin bir dil. (C++ veya C olabilir)

    MMORPG dediğin için sana kısaca mantığı anlatacağım.

    Oyun açıldığı zaman EXE dosyası çoğu veriyi bellekte tutar. Altın, seviye, hasar gibi veriler sunucuda tutulduğu için bunları düzenlemek imkansızdır, ancak sen EXE üzerindeki verileri bularak kendine bir DLL yazıp onu load ettirebilirsin.

    Nedir mesela,
    Karakterin koşma hızı, (Bazı oyunlarda sunucu taraflıdır)
    Karakterin şuanki HP puanı ve toplam HP puanı, manası
    Karakterle saldırılan hedef arasındaki mesafe, saldırı açısı, collision detection işlemleri vb.

    Karakterin şuanki HP puanını ve toplam HP puanını ele alalım.
    700/1000

    Sen bu verileri EXE'ye bağlanıp arayacaksın.
    Şuna benzer adreslere ulaşman lazım;

    0x0001AF1A: 700
    0x0001AF2A: 1000

    Bu şu demek; 0x0001AF1A virtual adresi şuanki HP değerini, 0x0001AF2A virtual adresi ise toplam HP değerini tutuyor.

    Not: Bu veriler statik değilse exenin her açılıp kapanışında değişir. Bunu düzeltmek için offset ve pointerlarını bulman gerekir.

    WinAPI'leri kullanıp EXE üzerinde okuma ve yazma izni almalısın. (Örn: OpenProcess)
    Daha sonra bu iki veriyi alıp şöyle basit bir algoritma geliştirebiliriz.

     

    //exeye bağlanmaya çalış, başarılıysa devam et
    //eğer [şuanki_hp], [toplam_hp]'nin %70'inden daha azsa
    //hp potunu kullan


    Bu işlemi hangi dili kullanıyorsan onunla geliştireceksin.

    HP potunu nasıl kullandıracağın fazla önemli değil. Eğer macro olacaksa, mouse ile üzerine tıklama gibi işlemler yaptırabilirsin. Eğer arkaplanda çalışan bir trainer olacaksa, o zaman EXE üzerindeki "Kullan" fonksiyonunu manuel olarak call edip HP potunun kullanılmasını isteyeceksin.

    Trainer yazmak için bu kadar ASM bilgisi yetiyor. Ben hardcore bir insanım, C++'ya bile ihtiyacım yok diyorsan, bir codecaveye atlayıp gerekli işlemleri direkt asm ile exe üzerinde halledebilirsin.

    Crack olayı biraz farklı.
    Bunun için Lena Guide Tutorials var, izlemeni öneririm. İlk birkaç videoyu izlediğin zaman mantığı anlayacaksın. İlk derslerde JMP gibi instructionları kullanıp nagları etkisiz hale getirmeyi gösteriyor.

    Şunu düşün. Programı yazan kişi key girilmden programın kullanılmasını önlemek için şöyle bir kod yazmış vakti zamanında.

     

    //key girilmedi
    if(keyGirildimi() == false)
    return;

    Program();



    ASM'de şuna benzer bir kontrol oluşur.
    JNZ: Jump if not zero, 0 değilse zıpla.

    Ama key girilmemiş, yani 0. Sen bu JNZ'yi, herhangi bir debugger ile JMP yaparsan (ne olursa olsun zıpla demek), üstteki if kontrolünü etkisiz hale getirmiş olursun. Artık program key girilip girilmediğine bakmaz, direkt olarak Program() fonksiyonunun içine zıplar.

    Cracklar en basit mantıkla bu şekilde yapılıyor. (En basitten kastım gerçekten basit. Büyük programların crackı birkaç saat kovalamacadan sonra oluyor.)

    Eğer programlama hakkında hiçbir bilgin yoksa bu işlere başlama, önce programlama öğren. Crack ve ASM için Lena Tutorials, trainer yazmak için Cheat Engine forumlarına vb. bakabilirsin.



    < Bu mesaj bu kişi tarafından değiştirildi TSF Aristona -- 5 Nisan 2013; 15:03:23 >




  • pc muhendisi ne lan?
  • TSF Aristona hocam klavyene sağlık, konu da gayet güzel.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • quote:

    Orijinalden alıntı: TSF Aristona

    quote:

    Orijinalden alıntı: Pitho38

    Arkadaslar şu mmorpg tarzı online oyun hileleri nasıl yazılıyor? Mantıgı nedir hangi programlama dilleri gerekiyor? Mesela Assembly, C#, C++ bilsem yapabilir miyim? Bu tür oyunlarda mutlaka bir açık vardır. Ben bu açıktan faydalanarak tersine mühendislik yapmak istiyorum. Bu dilleri öğrenmek için illede PC mühendisi olmayada gerek yok sanırım.


    Sizlerin yönlendirmesiyle bu işe başlıyacağım. Biliyorum emek ve sabır isteyen bir iş. Ama başaracağım. Yardımlarınız için şimdiden teşekkürler.






    PC mühendisi olmaya gerek yok ama PC mühendislerinin bile görmediği konuları kapsıyor tersine mühendislik.

    Sana lazım olan şeyler şunlar;
    -Orta düzey programlama bilgisi. Karşı tarafın ne yaptığını biliyorsan reverse etmek kolay olacaktır.
    -x86 Assembly Bilgisi
    -Asmx86 Instructions List
    -Sağlam bir debugger (Ben OllyDbg kullanıyorum.)
    -Toplayacağın verileri kullanmak için yazman gereken DLL'yi oluşturabileceğin bir dil. (C++ veya C olabilir)

    MMORPG dediğin için sana kısaca mantığı anlatacağım.

    Oyun açıldığı zaman EXE dosyası çoğu veriyi bellekte tutar. Altın, seviye, hasar gibi veriler sunucuda tutulduğu için bunları düzenlemek imkansızdır, ancak sen EXE üzerindeki verileri bularak kendine bir DLL yazıp onu load ettirebilirsin.

    Nedir mesela,
    Karakterin koşma hızı, (Bazı oyunlarda sunucu taraflıdır)
    Karakterin şuanki HP puanı ve toplam HP puanı, manası
    Karakterle saldırılan hedef arasındaki mesafe, saldırı açısı, collision detection işlemleri vb.

    Karakterin şuanki HP puanını ve toplam HP puanını ele alalım.
    700/1000

    Sen bu verileri EXE'ye bağlanıp arayacaksın.
    Şuna benzer adreslere ulaşman lazım;

    0x0001AF1A: 700
    0x0001AF2A: 1000

    Bu şu demek; 0x0001AF1A virtual adresi şuanki HP değerini, 0x0001AF2A virtual adresi ise toplam HP değerini tutuyor.

    Not: Bu veriler statik değilse exenin her açılıp kapanışında değişir. Bunu düzeltmek için offset ve pointerlarını bulman gerekir.

    WinAPI'leri kullanıp EXE üzerinde okuma ve yazma izni almalısın. (Örn: OpenProcess)
    Daha sonra bu iki veriyi alıp şöyle basit bir algoritma geliştirebiliriz.

     

    //exeye bağlanmaya çalış, başarılıysa devam et
    //eğer [şuanki_hp], [toplam_hp]'nin %70'inden daha azsa
    //hp potunu kullan


    Bu işlemi hangi dili kullanıyorsan onunla geliştireceksin.

    HP potunu nasıl kullandıracağın fazla önemli değil. Eğer macro olacaksa, mouse ile üzerine tıklama gibi işlemler yaptırabilirsin. Eğer arkaplanda çalışan bir trainer olacaksa, o zaman EXE üzerindeki "Kullan" fonksiyonunu manuel olarak call edip HP potunun kullanılmasını isteyeceksin.

    Trainer yazmak için bu kadar ASM bilgisi yetiyor. Ben hardcore bir insanım, C++'ya bile ihtiyacım yok diyorsan, bir codecaveye atlayıp gerekli işlemleri direkt asm ile exe üzerinde halledebilirsin.

    Crack olayı biraz farklı.
    Bunun için Lena Guide Tutorials var, izlemeni öneririm. İlk birkaç videoyu izlediğin zaman mantığı anlayacaksın. İlk derslerde JMP gibi instructionları kullanıp nagları etkisiz hale getirmeyi gösteriyor.

    Şunu düşün. Programı yazan kişi key girilmden programın kullanılmasını önlemek için şöyle bir kod yazmış vakti zamanında.

     

    //key girilmedi
    if(keyGirildimi() == false)
    return;

    Program();



    ASM'de şuna benzer bir kontrol oluşur.
    JNZ: Jump if not zero, 0 değilse zıpla.

    Ama key girilmemiş, yani 0. Sen bu JNZ'yi, herhangi bir debugger ile JMP yaparsan (ne olursa olsun zıpla demek), üstteki if kontrolünü etkisiz hale getirmiş olursun. Artık program key girilip girilmediğine bakmaz, direkt olarak Program() fonksiyonunun içine zıplar.

    Cracklar en basit mantıkla bu şekilde yapılıyor. (En basitten kastım gerçekten basit. Büyük programların crackı birkaç saat kovalamacadan sonra oluyor.)

    Eğer programlama hakkında hiçbir bilgin yoksa bu işlere başlama, önce programlama öğren. Crack ve ASM için Lena Tutorials, trainer yazmak için Cheat Engine forumlarına vb. bakabilirsin.

    Ellerine sağlık valla ne güzel yazmışın. Türkiye'de bu işleri yapan yok sanıyordum. Taki sizin yazınızı okuyana dek. Beni aydınlattığınız için saolun. İşinz ras gelsin.




  • buradaki bilgiler eski. bir jump komutunu değiştirip crack yazma devri çok geride kaldı. çünkü checksum bozuluyor. signature tutmuyor.
    ollydbg kullanıyorum diyenin birşey kullandığı yok, sadece yabancı bir forumda gördüğü mesajı getirip tercüme etmiş
  • quote:

    Orijinalden alıntı: Pitho38
    Ellerine sağlık valla ne güzel yazmışın. Türkiye'de bu işleri yapan yok sanıyordum. Taki sizin yazınızı okuyana dek. Beni aydınlattığınız için saolun. İşinz ras gelsin.


    Fazla uğraşmıyorum açıkcası ama bazı oyunlar için bot yazmıştım daha önceden. Teşekkürler, sizinde.

    quote:

    Orijinalden alıntı: expertise

    buradaki bilgiler eski. bir jump komutunu değiştirip crack yazma devri çok geride kaldı. çünkü checksum bozuluyor. signature tutmuyor.
    ollydbg kullanıyorum diyenin birşey kullandığı yok, sadece yabancı bir forumda gördüğü mesajı getirip tercüme etmiş


    Bak ne yazmışım;
    "Cracklar en basit mantıkla bu şekilde yapılıyor. (En basitten kastım gerçekten basit. Büyük programların crackı birkaç saat kovalamacadan sonra oluyor.)"

    Eğer benim yazdığımı devam ettirebilecek birikime sahipsen, buyur devam et, herkese faydan dokunsun. Sanki çok zor şeyler söylemişim gibi bir de çeviri demiş, hah.



    < Bu mesaj bu kişi tarafından değiştirildi TSF Aristona -- 7 Nisan 2013; 1:32:11 >




  • quote:

    Orijinalden alıntı: TSF Aristona

    quote:

    Orijinalden alıntı: Pitho38
    Ellerine sağlık valla ne güzel yazmışın. Türkiye'de bu işleri yapan yok sanıyordum. Taki sizin yazınızı okuyana dek. Beni aydınlattığınız için saolun. İşinz ras gelsin.


    Fazla uğraşmıyorum açıkcası ama bazı oyunlar için bot yazmıştım daha önceden. Teşekkürler, sizinde.

    quote:

    Orijinalden alıntı: expertise

    buradaki bilgiler eski. bir jump komutunu değiştirip crack yazma devri çok geride kaldı. çünkü checksum bozuluyor. signature tutmuyor.
    ollydbg kullanıyorum diyenin birşey kullandığı yok, sadece yabancı bir forumda gördüğü mesajı getirip tercüme etmiş


    Bak ne yazmışım;
    "Cracklar en basit mantıkla bu şekilde yapılıyor. (En basitten kastım gerçekten basit. Büyük programların crackı birkaç saat kovalamacadan sonra oluyor.)"

    Eğer benim yazdığımı devam ettirebilecek birikime sahipsen, buyur devam et, herkese faydan dokunsun. Sanki çok zor şeyler söylemişim gibi bir de çeviri demiş, hah.

    Saygıdeğer Aristona hazır sizin gibi bu işlerden anlayan birini bulmuşken bir şey daha sormak istiyorum.

    Örn: Metin2 adlı bi oyun var. Biliyorsunuzdur umarım. Bu oyunda + basma, yani eşya seviye yükseltme diye bi işlem var. Bu işlemin acaba mantığı nedir? Bence tamamen sayısal veriler üzerine kurulmuştur. Mesela atıyorum oyunda 1'den 7'ye kadar rakamlar var. + bastığın anda, örneğin bu rakamlardan sadece 5. rakama denk gelen eşyanın seviyesi yükseliyordur. Diğer sayılarınkide başarısız oluyordur.


    Yani tamamen şans. Acaba iyi bir yazılımcı olsam bu şansı tamamen kendime göre düzenleyebilir miyim bu mümkün mü?



    < Bu mesaj bu kişi tarafından değiştirildi Pitho38 -- 7 Nisan 2013; 10:53:25 >




  • O dediğine RNG deniyor. Söylediğin mantığa yakın bir mantık. Yüzde hesabı gibi düşün. Tam kodunu bilemediğimden atıyorum ama ortala şöyle birşey. +2 den +3 e %5 success rate verildiyse

    if(rand(NULL)%101 > 95) { SUCCESS } else { FAILED }

    Bu bilgi ve code bloğunun serverda tutulması gerek. Client bu veriyi değiştirememeli. Değiştiriyorsa acıklı olur oyun için :)
  • quote:

    Orijinalden alıntı: Pitho38

    quote:

    Orijinalden alıntı: TSF Aristona

    quote:

    Orijinalden alıntı: Pitho38
    Ellerine sağlık valla ne güzel yazmışın. Türkiye'de bu işleri yapan yok sanıyordum. Taki sizin yazınızı okuyana dek. Beni aydınlattığınız için saolun. İşinz ras gelsin.


    Fazla uğraşmıyorum açıkcası ama bazı oyunlar için bot yazmıştım daha önceden. Teşekkürler, sizinde.

    quote:

    Orijinalden alıntı: expertise

    buradaki bilgiler eski. bir jump komutunu değiştirip crack yazma devri çok geride kaldı. çünkü checksum bozuluyor. signature tutmuyor.
    ollydbg kullanıyorum diyenin birşey kullandığı yok, sadece yabancı bir forumda gördüğü mesajı getirip tercüme etmiş


    Bak ne yazmışım;
    "Cracklar en basit mantıkla bu şekilde yapılıyor. (En basitten kastım gerçekten basit. Büyük programların crackı birkaç saat kovalamacadan sonra oluyor.)"

    Eğer benim yazdığımı devam ettirebilecek birikime sahipsen, buyur devam et, herkese faydan dokunsun. Sanki çok zor şeyler söylemişim gibi bir de çeviri demiş, hah.

    Saygıdeğer Aristona hazır sizin gibi bu işlerden anlayan birini bulmuşken bir şey daha sormak istiyorum.

    Örn: Metin2 adlı bi oyun var. Biliyorsunuzdur umarım. Bu oyunda + basma, yani eşya seviye yükseltme diye bi işlem var. Bu işlemin acaba mantığı nedir? Bence tamamen sayısal veriler üzerine kurulmuştur. Mesela atıyorum oyunda 1'den 7'ye kadar rakamlar var. + bastığın anda, örneğin bu rakamlardan sadece 5. rakama denk gelen eşyanın seviyesi yükseliyordur. Diğer sayılarınkide başarısız oluyordur.


    Yani tamamen şans. Acaba iyi bir yazılımcı olsam bu şansı tamamen kendime göre düzenleyebilir miyim bu mümkün mü?


    Düzenleyemezsin. Dediğim gibi online oyunlarda bazı değerler sunucu tarafında tutulur.
    Sen bu foruma admin olarak giriş yapabiliyor musun? Hayır. Çünkü bu tür kontroller server (sunucu) taraflıdır.
    Ancak istersen browserine bazı extensionları kurup forumun rengini vb. değiştirebilirsin. Bunlar client (istemci) taraflıdır.




  • "daha iyisini biliyorsan gel sen yaz" gibi mahalle ağzı dolduruşlara kanıp gaza gelecek değilim, boşa heveslenme
    evet daha iyi bilirim ama izah etmem, çünkü yasal değil
    bugün microsoft teknolojilerini adamakıllı kullanıp kırılması çok zor yazılım üretmek mümkün, ama uğraşmaya değmiyor
  • quote:

    Orijinalden alıntı: expertise

    "daha iyisini biliyorsan gel sen yaz" gibi mahalle ağzı dolduruşlara kanıp gaza gelecek değilim, boşa heveslenme
    evet daha iyi bilirim ama izah etmem, çünkü yasal değil
    bugün microsoft teknolojilerini adamakıllı kullanıp kırılması çok zor yazılım üretmek mümkün, ama uğraşmaya değmiyor

    Daha iyisini biliyorsan gel sen yaz demedim. Eğer bir bilgin varsa devam et, o bilgiden herkes yararlansın dedim. Senin ne kadar iyi bir cracker yada asm gurusu olduğun beni hiç ilgilendirmez. Bu boş muhabbetleri çok gördüğüm için seviyene inmeyeceğim.

    Eğitim amaçlı rehber hazırlamak yasal. Newbie bir yazılım geliştiriciye nasıl bazı güvenlik açıklarını (sql injection, xss, csrf vb.) örneklerle anlatıyorsan, bu tür konuları da anlatan yüzlerce eğitim videosu ve dökümanı bulabilirsin. Senin burada yazacağın 2 paragraflık yazının 100 katı internette mevcut zaten.

    Örnek:http://tuts4you.com/download.php?list.17 (Lena Reverse Engineering Tuts for Newbs)
    Sadece bu siteden bu video toplam ~1.000.000 defa indirilmiş.

    Yasal olmayan şey, her konuda olduğu gibi, edinilen bilgileri illegal amaçlı kullanmak.



    < Bu mesaj bu kişi tarafından değiştirildi TSF Aristona -- 8 Nisan 2013; 18:36:15 >




  • quote:

    Orijinalden alıntı: Pitho38

    Arkadaslar şu mmorpg tarzı online oyun hileleri nasıl yazılıyor? Mantıgı nedir hangi programlama dilleri gerekiyor? Mesela Assembly, C#, C++ bilsem yapabilir miyim? Bu tür oyunlarda mutlaka bir açık vardır. Ben bu açıktan faydalanarak tersine mühendislik yapmak istiyorum. Bu dilleri öğrenmek için illede PC mühendisi olmayada gerek yok sanırım.


    Sizlerin yönlendirmesiyle bu işe başlıyacağım. Biliyorum emek ve sabır isteyen bir iş. Ama başaracağım. Yardımlarınız için şimdiden teşekkürler.






    Programlama öğrensem yapabilirmiyim yazmışsın. Yani buradan elde var sıfır anlıyorum. Yazdığın şeyler birçok profesyonel programcı için bile mide bulandırıcıdır (zor anlamında). Bir kısmı da gereksiz olduğunu düşünür, ihtiyaç duymaz.

    Başarmayı cidden düşünüyorsan, önünde geceli gündüzlü ÇooooooooooooooooooooooooooooooooooooooooooooooooooooooooK uzun bir yol var.

    Yazdığın şuna benziyor, "tıp fakültelerindeki öğrencilerin kitaplarından alsam, evde çok çalışsam ben de beyin cerrahı olabilir miyim ?"




  • katılıyorum hasan :).
  • güzel konu
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.