Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...

DaTaTrx

Uzaklaştırılmış
  • İçerik sayısı

    118
  • Katılım

  • Son ziyaret

  • Günün Kazananı

    5
  • Puan

    3,963 [ Bağış Yap ]

DaTaTrx kullanıcısının paylaşımları

  1. editör ile değiştirebilirsin upgrade editör
  2. merhaba hocam. ben map editörde map üzerine çalışmak istiyorum ama daha en başta takıldım :D editten detail textureyi ayarlıyorum yazdığınız gibi ama edit mode'da detail textureyi sectigimde hiç bir şey olmuyor,yer kaplaması gelmiyor. yardımcı olabilir misiniz

  3. hayırlı olsun :)
  4. teşekkürler
  5. DaTaTrx

    2167 verisyon dc hk

    2125 src de uzerınde cok oynadım sexyko nun socketleri falan aktardım
  6. DaTaTrx

    2167 verisyon dc hk

    https://www.kodevelopers.com/unpack-exe-paylasimlari/1413-2167-knightonlineexe-decrypt-amp-unpack-amp-bypass.html bu exeyi kullanın ilk önce veriyordu o hatayı @özkanözdemir çözdü exeyi güncelledi tekrar indirin eğer düzelmezse tekrar kontrol edin src taraflı bir hata yapmıs olabilirsiniz sorunsuz calısıyor bende dc problemi yaşamadim.
  7. DaTaTrx

    21xx Gate Tıklaması Hk.

    db deki KWARPİNFO tablosu ile karşılaştır o ile tbl arasında yanlıslık olabilir.
  8. DaTaTrx

    21xx Gate Tıklaması Hk.

    warpinfo.tbl baktın mı emre
  9. DaTaTrx

    Panel taslağı

    teşekkürler gayet güzel görünüyor
  10. teşekkürler
  11. bakalım teşekkürler
  12. DaTaTrx

    MAP hatası

    olabılır de sorunu anlamaya calısıyorum bunlar ekliyse o hatayı vermesi tuhaf -- mesaja ek olarak -- ah güzel kardeşim orda battle2_0722 var battle7_0722 yok :D bunuda ekle
  13. DaTaTrx

    MAP hatası

    şuna bir bak o zaman databasede zones tablosunda battle7_0722.smd Bu Doğru olan yoksa battle7_0722 bu yanlış olan eğer böyleyse .smd ekle sonuna
  14. DaTaTrx

    SexyKO Files Premium Sistemi Hk

    başlangıçta 30 günlük premium vermiş sanırım.
  15. DaTaTrx

    Yeni Lua Yapımı Hakkında

    RobItem(UID, itemid, adet) -- peki üstad bu kısımda itemid,itemid1,itemid2 şeklindemi gitmeliyim yoksa RobItem(UID, itemid, adet) -- alıcagı item RobItem(UID, itemid1, adet) -- alıcagı item
  16. S.a Arkadaşlar bildiğiniz üzere uskodaki harf kırdırma etkinliği vardı.hepsini ekledim fakat kırdırılma şeklide değilde lua taraflı yapmak istiyorum açıkçası lua yazımı konusunda pek bir bilgim yok arkadaşların ve forumdaki mevcut konulara bakarak denedim fakat başaramadım. KNİGHT şeklinde harfleri ekledim bunları luaya okutup cümle tamam ise karsılıgında cash veya np vermesini istiyorum.
  17. DaTaTrx

    MAP hatası

    database içinde eklimi zones tablosuna bakarmısın
  18. DaTaTrx

    MAP hatası

    kullandığın sürüme battle7_0722.smd isimde map eklenmiş demektir. Map Klasörü içerisinde herhangi bir smd dosyasını kopyalayıp ismini bu şekilde yaparsan sorunun çözülebilir. Not : zones dosyaları yok ise o mapa giremeyebilir yada girip hata alabilirsin.
  19. DaTaTrx

    [ISTIRAP] Clientless Source 21xx VB6

    teşekkürler bakalım :)
  20. DaTaTrx

    Debug Modda Aldığım Hata Hk.

    bu şekilde bende alıyorum araştırmıştım ama çözüm bulamadım ama pek bir skıntı yaratacagını dusunmuyorum anladıgım kadarıyla bu maradondaki skill deneme yerleri ve kaulların olduğu yerle alakalı muhtemelen onların hareketli olmalarını sağlıyor gibi birşey olabilir varsayım :)
  21. DaTaTrx

    ASM in C++ Dll Cağırma Hk.

    zamanında böyle bir konu vardı arşivlemiştim işine yararmı bilmem. Evet arkadaşlar, bugün birçok kişinin aklında soru işareti olan bir konuyu daha aydınlatmaya çalışacağım. İşe en basit kavramlardan başlayalım ve mantığını iyice anlayalım. Bir compiler tarafından derlenmiş olan herhangi bir çalıştırılabilir dosya(.exe) veya Dynamic Load Library(.dll) işlemcinin anlayacağı dilin bir üst seviyesine yani ASM diline dönüştürülür. ASM dilinde kod satırları programın açılış anından itibaren sırayla ve tek tek yürütülür. Programın açılışındaki ilk ASM koduna entry point yani giriş noktası ismini veriyoruz. Her programlama dlinde olduğu gibi ASM dilinde de operatörlerimiz mevcut. Şimdilik ihtiyacımız olanlara bir göz atalım; MOV komutu : Kopyalama ve Değer atamada kullanılır. Örnek : MOV EAX,ECX (EAX değişkenine ECX'te tutulan değeri atadık.) ADD komutu : Adından da anlaşılabileceği üzere toplama işleminde kullanılan komuttur. Örnek : ADD AL,2 (AL değişkenine 2(hex) değerini ekler) SUB komutu : Çıkartma işlemi yapmak için kullanılır. Örnek : SUB AX,2 (AX değişkeninden 2 çıkartır) INC komutu : Değeri bir arttırmaya yarar. Örnek : INC AX (AX registerindeki değeri bir arttırır) JMP komutu : Belirli bir satıra atlamayı sağlar. Örnek : JMP 00768080 (768080 satırına atlar.) CALL komutu : Bir alt program parçacığını başlatır. Örnek : CALL 0046A080 (46A080'deki program parçacığı başlar) NOP komutu : NO OPERAND anlamına gelir. İşlemci bu satırı pas geçer. Bu kısımları programa ek işlemler yaptırmak için düzenleyebiliriz.(İleride değinicem.) Şimdilik bu kadarını bilmeniz yeterli. Daha detaylı bilgi için ASM derslerini izleyebilirsiniz. Evet, gelelim ihtiyacımız olan programlara. Eğer yamayı uygulayacağımız exe bir packer tarafından packlenmişse, ilk önce unpack etmemiz gerekiyor. Exenin packli olup olmadığını Peid programı ile analiz edebilirsiniz. Ve tabiki de piyasanın en sağlam debuggeri olan OllyDbg'ye ihtiyacımız var. Sıradaki adımlara geçmeden önce Packing ve Unpacking kavramlarından bahsedicem. Packing(yani paketleme) çalıştırılabilir bir dosyayı veya dll'yi, boyutunu küçültmek veya koruma amaçlı olarak 3. parti bir yazılım ile işlemektir. Yazılım dünyasında kullanılan popüler packer programlarına UPX, ASPack/ASProtect, Molebox, Themida v.b örnek gösterilebilir. Packerlar yazmış olduğunuz programı debug programlarına, cracking işlemlerine vs. korumalı hale getirme amacındadır. Mantığı sıkıştırma ve EP(Entry Point) değiştirme işlemine dayanmaktadır. Unpackerlar ise packerlar vasıtasıyla paketlenmiş uygulamaları orjinal yani korumasız hallerine getirmek üzere yazılmış Reverse Engineering programlarıdır. Genellikle crackerlar tarafından kodlanırlar. Bunların mantığında da programın orjinal giriş noktasını bulup korumalı kısımdan ayıklamak yatar. Peid ile exemizi analiz ettik, benim EXE'm ASProtect ile koruma altına alınmış. USKO'nun tüm sürümlerinde bu koruma mevcut. Gelelim bu korumayı nasıl aşacağımıza. Yukarıda verdiğim Stripper paketini indirin ve bir klasöre çıkartın. Klasörde 3 adet Stripper sürümü mevcut, biz 2.07'yi kullanacağız. Aşağıdaki adımları sırasıyla izleyin. (DN : Eğer exeniz packli değilse bu adımları atlayın.) Stripper 2.07'yi başlatın ve ardından Open tuşuna basın. Gelen pencereden Packli olan usko exenizi seçin. Ve ardından sağ taraftaki unpacking butonuna basın. Exemiz sorunsuz bir şekilde unpacklenirse resimdeki gibi successfull yazısını göreceksiniz. KnightOnLine.exe'mizin packsiz hali _KnightOnLine.exe adıyla clientimizin bulundugu klasöre kaydedildi. Artık önümüzde hiçbir engel kalmadığına göre, işimize dönebiliriz Anlatıma geçmeden önce biraz daha ASM'den bahsetmek istiyorum. Konunun başında da bahsettiğim gibi, ASM kod satırları sırasıyla ve teker teker işlenir. Bu kod satırlarının işlemeye başladığı yere Entry Point yani giriş noktası denir. Bizim amacımız oyun exesi açılmadan önce DLL'mizi yüklemek olduğuna göre yapacağımız işlem entry point'ten önce bir kod yordamı ile dll'mizin yüklenmesini sağlamak olacaktır. Gelelim bunu nasıl yapacağımıza. İlk iş olarak indirmiş olduğumuz OllyDbg programımızı bir klasöre çıkartıp açalım. Karşımıza 3 kısımdan oluşan boş bir pencere geldi, bu pencerenin adı CPU penceresi. Şimdi unpacklemiş olduğumuz _KnightOnLine.exe'yi(veya zaten unpackli exeye sahip olanlar için KnightOnLine.exe) Ollydbg ekranına sürükleyelim. Ben bu örnekte 1483 unpackli exe kullandım.(daha önceden xtrap'ını vs.temizlemiştim.) KnightOnLine.exe'mizin debug edilmiş hali olly ekranında göründü. Şimdi ne yapacağız? İlk iş olarak daha önceden bahsetmiş olduğum EP'yi bulmamız lazım. Bunu yapmak içinse olly penceresine sağ tıklayın ve Search For -> All intermodular calls yolunu takip edin. Bu kısımda gördükleriniz windows API'lerine atılan çağrı komutlarıdır. Bu pencerede aramamız gereken API kernel32.GlobalMemoryStatus. Oyun ekranımız açılmadan önce kernel32.GlobalMemoryStatus API'si kullanılarak bellek ile ilgili bazı işlemler yürütülür.(boş ram durumu vs.) Eğer bu API'ye giden CALL'ın adresini bulursak, exemizin giriş noktasını da bulmuş oluruz. Intermodular calls penceremizde kernel32.GlobalMemoryStatus'ü bulduk.Resimde gördüğünüz gibi, benim kernel32.GlobalMemoryStatus call'ım 76ED45 adresindeymiş. Şimdi bu adrese çift tıklayarak debug penceresinde yerini buluyoruz. Resimde gördüğünüz gibi CALL'ımız burda. Scroll bar'ı biraz daha yukarıya kaydırıyoruz taa ki NOP'larla dolu bir boşluk bulana kadar. Evet, bahsettiğim yere geldik. Benim exemde PUSH -1 satırı yani 76EC30 adresi giriş noktası. Bulduğunuz adresi bir kenara not edin, ileride ihtiyacımız olacak. Giriş noktamızı bulduk, şimdi ne yapmalıyız? Biraz önce bahsetmiştim, dll'mizi yüklemek için giriş noktamızdan önce ufak kod değişiklikleri yapmamız lazım diye. Önce dllmizi yüklemek için ihtiyacımız olan kod bloguna bir göz atalım. Kod: PUSHAD PUSH "dll adının tutulduğu adres" CALL DWORD PTR DS:[kernel32.loadlibrarya fonksiyonu adresi] POPAD JMP "exe giriş noktası adresi" ASCII "loader.dll" Şimdi, gördüğünüz üzere yukardaki kod blogu, giriş noktamızın üzerindeki nop'ların bellek alanına sığabilecek küçüklükte değil. O yüzden bu kod bloğu için daha geniş NOP veya DB00'ların bulunduğu uygun bir yer bulmalıyız. Bu uygun yere biz Code Cave adını veriyoruz. Code cave'mizi bulmadan önce DLL'mizi yükleyecek olan Kernel32.LoadLibraryA fonksiyonunun adresini bulmamız lazım. Bi bakalım nerdeymiş .. Bunu yapmak için de ilk başta yaptığımız gibi Sağ Tık -> Search for -> All intermodular calls diyoruz ve çıkan sonuçlardan herhangi bir Kernel32.LoadLibraryA API'sini seçip çift tıklıyoruz ve seçili gelen adrese sağ tıklayıp assemble diyoruz. Resimde seçili olarak gösterdiğim kısım kernel32.loadlibraryA api'sinin adresi, bunu bir köşeye not ediyoruz. Scrollbar'ı exe'nin son kısımlarına doğru kaydırıyoruz ve uygun boyutta bir DB00 yığını buluyoruz. Şimdi herhangi bir adresi seçip kodlarımızı yerleştirmeye başlayalım. Ben 7E4FAF adresinden itibaren kodları yerleştirmeye başlıyorum. İlk önce DLL adımızı içeren ASCII değerini Code Cave'mize yazalım. Uygun boyutta bir DB00 bloğunu seçili hale getirin ve sağ tık -> Binary -> Edit yolunu izleyin. Gelen pencerede ASCII kısmına yükleyeceğimiz DLL'nin adını gireceğiz. Ben loader.dll koydum, siz istediğiniz adı verebilirsiniz. Dll adımızı yazdıktan sonra ok'a basıyoruz. DB00 larımız Resimde kırmızıyla görünen kısım gibi karman çorman bir hali alacaktır, ASCII kodumuzun düzgünce görünmesi için exemizi yeniden analiz etmemiz gerekiyor, bunun içinse ctrl-a tuşuna basmanız yeterli. Eğer herşey yolunda gittiyse ASCII değerimiz resimdeki gibi sorunsuz bir şekilde görüntülenecektir. ASCII değerimizi adresimize yerleştirdik, sırada dll'mizi yükleyecek olan kod blogunu yerleştirmek var. Kod: PUSHAD PUSH "dll adının tutulduğu adres" CALL DWORD PTR DS:[kernel32.loadlibrarya fonksiyonu adresi] POPAD JMP "exe giriş noktası adresi" Bunun için yine boş bir DB00 adresini seçili hale getirin ve sağ tık -> assemble yolunu izleyin. Kod bloğumuz PUSHAD komutu ile başlıyor, gelen Assemble kutusuna PUSHAD yazın ve Assemble tuşuna basın. PUSHAD komutu adrese işlenecektir ve imleç otomatikman bir satır alta kayacaktır. Bir sonraki komutumuz PUSH "dll adının tutulduğu adres" ti. Daha demin ASCII kodunu girdiğimiz bellek adresini hatırlayalım. Benimki 7E4FAF'ydi. O zaman komutumuz şu şekilde olacak : PUSH 7E4FAF. Bu komutumuzu da yerleştirdikten sonra bir sonraki komutumuz dll'mizi yükleyecek olan LoadLibrary apisini çağıracak satırımız -> CALL DWORD PTR DS:[kernel32.loadlibrarya fonksiyonu adresi] , daha önceden bulmuş olduğumuz kernel32.loadlibrarya adresini köşeli parantezlerin arasına yazıyoruz.Kodumu CALL DWORD PTR DS:[7E5218] olarak düzenliyorum ve Assemble tuşuna basıyorum. Eveet. DLL'miz artık yüklendi, ama bir problemimiz var. ASM satırı olarak exe'nin sonlarındayız. DLL'mizi yüklediğimize göre artık giriş noktamıza geri dönebiliriz. Bunun içinse JMP komutunu kullanacağız. En başta not ettiğimiz giriş noktası adresimizi JMP kodumuzun yanına yazıp Assemble tuşuna basıyoruz. Benim giriş nokta adresim 76EC30 olduğuna göre komutum da JMP 76EC30 olmalı. Eğer herşeyi doğru bir şekilde yaptıysanız Code Cavemiz şu şekilde görünmeli ; Evet. Exemize ASM yamamızı uyguladık. Son bir işimiz kaldı, oyunumuza girmeden önce exe'mizi hazırladığımız code cave'ye yönlendirmemiz lazım. Code cave'mizin başlangıç adresini yani PUSHAD komutunun bulunduğu adresi bir kenara not edin. Daha sonra Ctrl-g tuşuna basarak exenizin giriş noktasının adresini girin ve ok tuşuna basın. Giriş noktamıza geldik, Burada da ufak bir nop blogu vardı hatırlıyorsanız, bu nop blogundan herhangi bir adresi seçin ve assemble tuşuna tıklayın. Gelen kutucuga JMP PUSHADADRESİ şeklinde ASM kodunuzu girin. Benim Code Cave'min başladığı adres 7E4FBD, o halde yazmam gereken ASM kodu JMP 7E4FBD. ASM ile işimiz bitti, yaptığımız değişiklikleri kaydetmemiz lazım. Bunun içinse Sağ tık-> Copy to Executable - > All Modifications yolunu izliyoruz. Gelen pencereden Copy All'ı seçiyoruz ve Karşımıza bir pencere daha geliyor. Bu pencerede de sağ tık yaparak Save File diyoruz ve dosyamızın yeni adını yazarak kaydediyoruz. ALINTIDIR
×
×
  • Yeni Oluştur...