firex gene yaptın yapacagını firex o bir dunya markası:) ANDY // Entelkoylu. Com Burası mezopotamya, küresel oyunun bumerang cehennemi. Tanrı bile dünya düzeni için peygamberlerini hep buraya gndermiş. Çünkü burası aslında yeryüzü cennetiymiş. Daha Fazla Bilgi İçin Profilimi İnceleyiniz...

Reverse Engineering de bir dünya markası = FireX :) Süper doc yine bunuda arşive kodum. Ellerine sağlık.

Reverse Engineering yazısını grünce aklıma hemen sen geliyosun firex =)yine süper bi dküman olmuş eline sağlık.. zgürlüğü anladıkça ona daha az sahip olursun.

Hani şu crackingde yapılan cracklar patchlar byle extra kodlar esas çalıştırıcıya enjekte ediliyor sanırım?Doğrumu düşünüyorum? :)

RudeboY bunu yazdı: Hani şu crackingde yapılan cracklar patchlar byle extra kodlar esas çalıştırıcıya enjekte ediliyor sanırım?Doğrumu düşünüyorum? Kısmen, bazı programlarda zıplama noktasında veya bazı kodlarda değişiklik yapmak yeterli oluyor. Kod ekleme kilit noktada boş alan bulamadığımız zaman gerçekleştirilen bir olay. Bir programda onlarca kontrol noktası, zıplama noktası varsa bu program register edilmişmi diye bütün zıplama noktalarını kaldırmakla uğraşılmaz. Mesela ax registeri 0 ise register edilmemiş 1 ise register edilmiş diyelim. Programın register edilip edilmediğinin kontrol edildiği yerde sonuca gre registere değer yükleniyor ve hafızada saklanıyor. Yeri geldiğinde o hafıza noktasına erişilip kontrol ediliyor. Bizde kaynağına inip register edildi edilmedi diye değeri registera yükleyen yeri buluyoruz ve orada ona 1 değerini veriyoruzki register edildiğini sansın. Fakat bazen buna yer yetmeyebiliyor. Eğer üstüne yazarsak dosyayıda bozarız. Bizde dosyada boş bir alan arayıp oraya ekstra kodumuzu ekleyip program akışını oraya ynlendiriyoruz işlem tamamlandığında tekrar eski yerine ynlendirerek normal halinde programı akışına bırakıyoruz.

bir firex klasiği : ) . ona buna eyv saol demeden de paylaşım yapılabiliyor demek ki ; ) saol firex süper olmuş. dkmanlara eklenmş zaten

: Kısmen, bazı programlarda zıplama noktasında veya bazı kodlarda değişiklik yapmak yeterli oluyor. Kod ekleme kilit noktada boş alan bulamadığımız zaman gerçekleştirilen bir olay. Bir programda onlarca kontrol noktası, zıplama noktası varsa bu program register edilmişmi diye bütün zıplama noktalarını kaldırmakla uğraşılmaz. Mesela ax registeri 0 ise register edilmemiş 1 ise register edilmiş diyelim. Programın register edilip edilmediğinin kontrol edildiği yerde sonuca gre registere değer yükleniyor ve hafızada saklanıyor. Yeri geldiğinde o hafıza noktasına erişilip kontrol ediliyor. Bizde kaynağına inip register edildi edilmedi diye değeri registera yükleyen yeri buluyoruz ve orada ona 1 değerini veriyoruzki register edildiğini sansın. Fakat bazen buna yer yetmeyebiliyor. Eğer üstüne yazarsak dosyayıda bozarız. Bizde dosyada boş bir alan arayıp oraya ekstra kodumuzu ekleyip program akışını oraya ynlendiriyoruz işlem tamamlandığında tekrar eski yerine ynlendirerek normal halinde programı akışına bırakıyoruz. Yani şu "made backup" seçeneği o yüzden konuyor patchlere. Sorun olursa geri alabilmek için :) süper yararlı bir dküman daha :) bir bu, birde şu 0lar 1ler çok işe yarar crackingde :) sağolasın :) :)

Merhaba arkadaşlar bu yazımda sizlere herhangi bir programa nasıl kod enjekte edebileceğimizi gstereceğim. Gerekenler Ollydbg LordPE Benim deneme amaçlı yazdığım, sadece formdan oluşan hedef aldığımız programı burdan indirebilirisiniz. Programa basit olması açısından mesaj penceresi ekleyeceğiz. Farklı apileri kullanarak daha birçok şey ekleyebilir. Programa birçok şekilde hükmedebilir, yeni fonksiyonlar kazandırabiliriz. İlk olarak messagebox apisini inceleyelim. int MessageBox ; Grdüğünüz üzere bu şekilde. Aslında soldan sağa doğru işlem yapmamız gerekirken normalde byledir. Assemblyde stack'a yolladığımız için tersten yapmak zorundayız. Çünkü stack mantığında son giren ilk çıkar. Aşağıya bakınca olay daha net hale gelecek. push 0 //Mesaj penceresinin türüpush xxxxxx // Mesaj penceresinin başlığı push xxxxxx // Mesaj penceresindeki yazıpush 0 // Sahiplenen pencerenin handle değericall xxxx // Messagebox apisini çağırGrdüğünüz üzere tersten verileri stacka yolladık. Mesaj penceresinin türünü 0 olarak belirledik. Çünkü default olarak MB_OK değerini alıyor. Yani tek buton var tıklıyoruz kapanıyor. Evet hayırlı versiyonları falanda var vs. Mesaj penceresinin başlığı ve yazısındaki xxxxxler adres oluyor. Oralardan ascii değerleri çağıracağız. Mesaj penceresi bağımsız olacağından handle değerini 0 yapıyoruz ve en sonda messagebox apisini çağıracağız. ncelikle ollydbgda programı açıyoruz ve kendimize veri yazabileceğimiz boş yerler arıyoruz. Dosyaların sonunda yeterince alan oluyor. Resimde grebilirsiniz. Yeterince alan bulduktan sonra kendimize herhangi bir yer seçip üstteki assembly kodlarını yazıyoruz. Kodu yazıp assemble dedikten sonra nop çıkarsa nemsemeden üstüne tıklayarak kodu yazmaya devam edin. Nop hiçbirşey yapmadan program akışına devam etmeyi sağlar. Aşamaları resimde grebilirsiniz. String değerleri girmeyi aşağıda gstereceğim. Alttaki resimde gzüken adresler onların çağrıldığı yerler. Messagebox apisini çağırmak için adresini bulmamız gerek adresini bulmamız için Ctrl+N tuşuna basıyoruz ve karşımıza apilerin olduğu pencere geliyor. Orada messagebox yazıyoruz ve MessageBoxA apisi geliyor. Ona sağ tıklayıp "Find references to import" diyoruz. Karşımıza çıkan pencerede jmp dword ptr... olarak giden yerin adresini alıyoruz ve call'un yanına bu adresi yazıp assembly tuşuna basıyoruz. Eğer doğru adresi girdiysek olly apiyi gsteriyor. Şimdi messagebox'ın caption ve text kısmına yazacağımız string ifadeleri yazalım. Alt taraftaki boş alanlardan herhangi bir yer belirleyip çoklu alan alan seçiyoruz ve sağ tıklayıp binary->edit diyoruz. Ne kadar çok alan seçerseniz o kadar uzunlukta yazı yazmaya yeriniz olacak. Edit'e bastıktan sonra çıkan pencerede ascii kısmını doldurarak yazımızı yazıyoruz ve onaylıyoruz. Biraz boşluk bıraktıktan sonra yine aynısını yaparak bir string ifade daha giriyoruz. Birisi caption diğeri text olacak. Yazıları girip onayladıktan sonra garip assembly komutları gzükecektir bunlara aldırmayınız. Şimdi en nemli kısıma gelirsek boş alanı nerden seçmeye başladıysak oranın adresini alıyoruz. rneğin 0044CB1E adresinden seçmeye başladık ve aşağıya doğru indik yazımızı yazdık ve onayladık. O kapladığı alan kadarı dolduracaktır. Bizim için başlangıç adresi nemli. Girdiğimiz iki string ifadeninde başlangıç adresini aldıktan sonra yukarıda belirttiğim push xxxxx olan yerleri dolduruyoruz. Hangisini text hangisini caption yapmak istiyorsanız orası size kalmış. İşlemleri doğru yapıp yapmadığınızı kontrol etmek amacıyla sağ tıklayıp analysis analyse code derseniz messagebox penceresinde hangisi title hangisi caption hOwner vs hepsini greceksiniz. Şimdi yapacağımız bir işlem daha var. Her programın bir giriş noktası vardır. İşletim sisteminin loaderı bu değeri PE Headerdan okur ve ona gre programın akışının başlayacağı adresi belirler. Biz program açılır açılmaz mesaj penceresi gzüksün istiyoruz. O yüzden programın giriş noktasını mesaj penceresini gstermek için yazdığımız kodların başlangıcı yaparsak mesaj penceresi gsterilir ve asıl programın akışına devam edilir. Bizim burada yapacağımız programın giriş noktasını değiştirip mesaj penceresi yazdığımız kodların olduğu blümden başlatıp oradan itibaren program akışını devam ettirmek. Mesaj penceresini gsterdikten sonrada nceki değiştirdiğimiz orjinal giriş noktasına zıplayarak devam etmek. ncelikle yaptığımız değişiklikleri kaydedilim ve ondan sonra giriş noktasını değiştirelim. Kodların arasında herhangi bir yer seçip sağ tıklayın copy to executable->all modifications->copy all Çıkan pencerede tekrar sağ tıkayıp save file diyoruz ve kaydediyoruz. Şimdi giriş noktasını değiştirmeye gelirsek;Giriş noktasını ollydbg ile değiştirebiliriz. Fakat olayı daha basit yoldan çzmek için lordPE isimli programı kullanıyoruz. Entry point'i Olly ile değiştirecekler;Üstteki menüden M harfinin olduğu tuşa basın. Hemen altta PE Header greceksiniz ona tıklayın. Aşağıya inin "AdressofEntryPoint" greceksiniz. Adresini alın ve hexdumpta oraya gidin Gittiğiniz adreste entry pointi greceksiniz. Yeni enrty pointi aynı formatta tersten yazın. rneğin 44 CA FD ise FD CA 44 yazacaksınız Daha sonrada değişiklik yaptığınız yeri seçerek sağ tıklayıp copy to executable dedikten sonra save file diyoruz. LordPE ile değiştirecekler;Programı açtıktan sonra PE Editor butonuna tıklıyoruz ve kaydettiğimiz programımızı seçiyoruz. Karşınıza çıkan pencerede Entry Point blümünü greceksiniz. Oraya yeni giriş noktasını yazıp save tuşuna basıyoruz okleyip programı kapatıyoruz ve programımızı test ediyoruz. Dikkat: Ollyde grdüğünüz RVA cinsinden değeridir. Image base değeri 400000 olduğu için toplamı cinsinden gzükmektedir. Ollyde 44CA98 iken LordPE ile açtığınızda 04CA98 olarak greceksiniz. Sizde adresi yazarken 400000 eksiğini yazacaksınız yani entry point yapmak istediğiniz yer 44CAEA ise 04CAEA olarak yazacaksınız. Bu konuda anlatacaklarım bu kadar. Bu yazı, program ve ekstra dkümanlar tamamen FireX tarafından hazırlanmıştır. Kopyalayanlar emeğe saygı duysunlar. Saygılarımla..-anonimleştirildi-

Eklendi.. Süper hoca... Sanıyorum kendi ataszümü yaptım, kaynak belirterek kullanabilirsiniz. 10.05.2013 tarihli google arama sonucu : Aradığınız - "herşeyin hayırlısı rampanın bayırlısı" - ile ilgili hiçbir arama sonucu mevcut değil. Not : Syleyeni belli olduğu için ataszü değil, zlüsz oluyormuş, dolayısı ile kendi zlüszümü yapmış oldum :)