Menü
Bedava
kayıt
ev  /  Tavsiye/ Exe program kodunu açın. Kaynak düzenleyicide .dll veya .EXE dosyası nasıl açılır

Exe program kodunu açın. Kaynak düzenleyicide .dll veya .EXE dosyası nasıl açılır

*** TÜM YAZILI KULLANIM SADECE EĞİTİM AMAÇLIDIR! ***

-Aletler-
OLLYDBG
Kodumuzu ekleyeceğimiz uygulama.
Bu irade NOTPAD.EXE.
Dosyanın bir kopyasını almanız önerilir.
hepsi bu

-Başlangıç-
Amacımız kodumuzu Notepad.EXE içine yapıştırmaktır.
Basit bir yapıştıracağız Mesaj Kutusuçalıştırmak not defteri.
Hadi koşalım Not defteri ve iyi başladığından emin olun.

Bunun orijinal olduğundan eminseniz not defteri.exe, aç Olly.
Sıradaki pencere açılacak:

Kodumuzu ekleyebilmemiz için program kodunda bunun için bir yere ihtiyacımız var.
Exe dosyalarında birçok KodMağaraları... Bunlar bayt ( DB 00).
Program kodunu başlangıcın biraz altına kaydırmanız yeterlidir; Kod Mağarası:


Kırmızı dikdörtgenli bir parça vurgulanır. Kod Mağarası"amy?
Buraya herhangi bir kod girebilirsiniz ve programınız iyileştirilmeyecektir.
Çağrılacak API işlevini biliyorsanız Mesaj Kutusu sadece bu satırları atla.

***** WIN32 PROGRAMCI KILAVUZUNDAN BAŞLAYIN

MessageBox işlevi, bir mesaj kutusu oluşturur, görüntüler ve çalıştırır.
Mesaj kutusu, uygulama tanımlı bir mesaj ve başlık içerir,
artı önceden tanımlanmış simgeler ve basma düğmelerinin herhangi bir kombinasyonu.

Int Mesaj Kutusu (
HWND hWnd, // sahip penceresinin tanıtıcısı
LPCTSTR lpText, // mesaj kutusundaki metnin adresi
LPCTSTR lpCaption, // mesaj kutusunun başlığının adresi
UINT uType // mesaj kutusunun stili
);

***** WIN32 PROGRAMCI KILAVUZUNDAN SON ALTI

Genişletmek için tıklayın...

hakkında bilinmesi gereken tek şey bu Mesaj Kutusu.
ile bir şeyler yapalım KodMağaraları.
kullanmak için Mesaj Kutusu, çıktısını alacağımız metni oluşturmamız gerekiyor
Mesaj Kutusu... Bir sonraki resimde, birkaç satırın altını çizdim. KodMağaraları ve
menüyü gösterdi İkiliDüzenle sizin için (bizim için faydalı olacaktır).


bastıysanız İkili => Düzenle veya (CTRL + E) aşağıdaki pencereyi göreceksiniz.
Sadece üstteki alanı benim yaptığım gibi doldurun.
Tamam'a tıklayın ve değiştirilen kodu göreceksiniz (kırmızı ile vurgulanmıştır):
Şimdi kodu yeniden ayrıştırmak için CTRL + A tuşlarına basın.
TAMAM! Şimdi, mesajın başlığını farklı yapmak istiyorsanız, bu satırı kopyalayın.
(bu, prosedür çağrısının ikinci parametresi gibidir).

-Biraz montajcı-

Zamanı ASM a
İşte iyi bir örnek!

BASIN 0; DÜĞMELER =<ТОЛЬКО КНОПКА OK>
PUSH 1008751; CAPTION = ADRESİMİZ "ENJEKTİLEN NOT TAKIMI"
PUSH 1008751; MESAJ = AYNI.
BASIN 0; İKON =<БЕЗ ИКОНКИ>
ÇAĞRI MessageBoxA; Belirtilen parametrelerle MessageBoxA çağrılıyor.

Genişletmek için tıklayın...

tanıtılan bu satırlar Ollieşöyle görünecek:

Oku görüyor musun?! BU ÇOK ÖNEMLİ!
Sonuçta, programı çalıştırırsak hiçbir şey olmaz. Niye ya?
Çünkü küçük prosedürümüz henüz hiçbir yere çağrılmadı!
Başlangıcının adresini yazmanız gerekir, yani. adres " PUSH 0", çünkü bir sıçrama yapmamız gerekiyor
prosedürümüze ve geri dönün
İyi. Şimdi programın başına geri dönün ( C düğmesi araç çubuğunda Ollie veya resimdeki gibi).

Şimdi idam edilecek ilk satırdayız.
Amacımızın kendi kodunuzu eklemek olduğunu hala hatırlıyor musunuz?
Sonra devam edeceğiz!
Baştan birkaç satır seçin ve bunları panoya kopyalayın.


Bunları herhangi bir metin reaktörüne yapıştırın - yine işimize yarayacaklar.
Programın başına geri dönün.
(Yukarıdaki resimde PUSH 70).
Bu satıra çift tıklamak bize aşağıdaki pencereyi gösterecektir.
İçine girmen gerekiyor" JMP<адрес PUSH 0, который мы записывали ранее> "
Birleştir düğmesine basın ve program kodu tekrar değişecektir, yani. değişiklikler kırmızıyla vurgulanır.

Kırmızı dikdörtgene bakın! Kodumuzu tamamladıktan sonra bu adrese atlamamız gerekiyor.
Ama enjeksiyondan sonra buraya atlarsak, program onsuzmuş gibi yürütülecektir.
Öyleyse yapılacak bir şey daha var!
Programın yeni başlangıcını, bir metin düzenleyiciye kopyaladığımız eskisiyle karşılaştırın.
İki satırın yeniden yazıldığını göreceksiniz! Ama normal çalışma için onlara ihtiyacımız var.
hatasız programlar. Üzerine yazılan satırları bulun.
Benim durumumda, aşağıdaki koddu:

PUSH 70
NOTPAD'E BASIN.01001898

Genişletmek için tıklayın...

İlk kod satırına tıklayın (bizim JMP) ve bas GİRMEK.
Girilen MessageBox arama koduna yönlendirileceksiniz!
Sonrasında ÇAĞRI Mesaj KutusuA bu iki satırı eklememiz ve geri atlamamız gerekecek!


BU KADAR!
(Atlamanın doğru çalışıp çalışmadığını kontrol etmek kolaydır - Üzerine tıklayın GİRMEK!)
"Değiştirilmiş" Not Defterimizi kaydetmek için resimdeki gibi adımları izleyin:
sonra tıklayın Hepsini kopyala... Görünen pencerede sağ tıklamanız gerekir,
menü öğesini seç Dosyayı kaydet ve yeni bir adla kaydedin. Dosyayı çalıştırın:

Eklenen işlev, makalede yazıldığı gibi doğrudan değil, biraz farklı bir şekilde çağrılmalıdır.

Öncelikle ithalata prosedürü ekledikten sonra bilmeniz gerekiyor. FT (FirstThunk "IAT")... Burada görüntülenir:

Bunu hatırlamak!(adını vereceğim GerçekAdres)​


Şimdi kodumuzu yazacağımız yere geçelim ( kod mağaraları).
Şimdi fonksiyonumuza doğru çağrıyı ekleyelim Mesaj KutusuA... Bunu yapmak için şunu yazın:

JMP [[B] TrueAdres]

Eğer Olly prosedür çağrısı olarak yeni kodu otomatik olarak algılar - çok, çok iyi! Bu, daha kolay olacağı anlamına gelir. Değilse, içe aktarma adresini yanlış hesapladınız. Tekrar kontrol et!
bunun adresini yaz JMP(adını vereceğim TrueCall).

Şimdi her şeyi makaledeki gibi yapıyoruz (satır ekleme, PUSH vb.), ancak bunun yerine:

Çağrı MessageBoxA

yazmanız gerekiyor:

[B] TrueCall'ı arayın

Gerisi aynı kalır.

Genişletmek için tıklayın...


Bazen, CODE.EXE ve diğer EXE sistem hataları, Windows kayıt defterindeki sorunlarla ilişkili olabilir. Birkaç program, aynı CODE.EXE dosyasını paylaşabilir; ancak bu programlar kaldırıldığında ya da değiştirildiğinde bazen artık (geçersiz) EXE kayıt defteri girdileri geride kalabilir.

Temel olarak bu, dosyanın gerçek yolu değişmiş olsa da yanlış eski konumunun Windows kayıt defterine kaydedildiği anlamına gelir. Windows bu hatalı dosya başvurularını ararken (bilgisayarınızdaki dosya konumları), CODE.EXE hataları oluşabilir. Ayrıca, kötü amaçlı yazılım bulaşması, Game Cracker ile ilgili kayıt defteri girdilerini bozmuş olabilir. Bu nedenle, sorunun asıl nedenini çözümlemek için bu geçersiz EXE kayıt defteri girdileri onarılmalıdır.

Geçersiz CODE.EXE anahtarlarını kaldırmak için Windows kayıt defterini el ile düzenlemeniz, bilgisayar servis profesyoneli olmadığınız sürece önerilmez. Kayıt defterini düzenlerken yapılan hatalar, bilgisayarınızın arızalanmasına ve işletim sisteminizde onarılamaz hasarlara neden olabilir. Aslında, yanlış yerde tek bir virgül bile bilgisayarınızın açılmasını engelleyebilir!

Bu risk nedeniyle, CODE.EXE ile ilgili kayıt defteri sorunlarını taramak ve onarmak için %% product %% (Microsoft Gold Certified Partner tarafından geliştirilmiştir) gibi güvenilir bir kayıt defteri temizleyici kullanmanızı önemle tavsiye ederiz. Kayıt defteri temizleyicisi kullanmak, geçersiz kayıt defteri girdilerini, eksik dosya referanslarını (CODE.EXE hatanıza neden olan gibi) ve kayıt defterindeki bozuk bağlantıları bulma işlemini otomatikleştirir. Her taramadan önce, otomatik olarak bir yedek oluşturulur ve bu, değişiklikleri tek bir tıklamayla geri almanıza olanak tanır ve sizi bilgisayarınızda olası hasarlardan korur. En iyi yanı, kayıt defteri hatalarını düzeltmenin sistem hızını ve performansını önemli ölçüde artırabilmesidir.


Bir uyarı: Deneyimli bir PC kullanıcısı değilseniz, Windows Kayıt Defterini manuel olarak düzenlemenizi ÖNERMİYORUZ. Kayıt Defteri Düzenleyicisi'nin yanlış kullanımı ciddi sorunlara yol açabilir ve Windows'u yeniden yüklemenizi gerektirebilir. Kayıt Defteri Düzenleyicisi'nin yanlış kullanımından kaynaklanan sorunların düzeltilebileceğini garanti etmiyoruz. Kayıt Defteri Düzenleyicisini kullanımınızın riski size aittir.

Windos kayıt defterinizi el ile onarmak isterseniz, önce kayıt defterinin CODE.EXE (örn.Game Cracker) ile ilişkili bir bölümünü dışa aktararak bir yedek oluşturmanız gerekir:

  1. düğmesine tıklayın Başlamak.
  2. Girmek " emretmek"v arama çubuğu ... HENÜZ BASMAYIN GİRMEK!
  3. Tuşları tutmak CTRL-Üst Karakter klavyede, tuşuna basın GİRMEK.
  4. Erişim için bir iletişim kutusu görüntülenecektir.
  5. Tıklamak Evet.
  6. Kara kutu, yanıp sönen bir imleçle açılır.
  7. Girmek " regedit" ve bas GİRMEK.
  8. Kayıt Defteri Düzenleyicisinde, yedeklemek istediğiniz CODE.EXE ile ilişkili anahtarı seçin (örn.Game Cracker).
  9. Menüde Dosya Seç İhracat.
  10. Listede Şuraya kaydet Game Cracker yedek anahtarını kaydetmek istediğiniz klasörü seçin.
  11. alanında Dosya adı yedekleme dosyanız için "Game Cracker Backup" gibi bir ad yazın.
  12. kutuda olduğundan emin olun İhracat aralığı değer seçildi Seçilen şube.
  13. Tıklamak Kaydetmek.
  14. Dosya kaydedilecek .reg uzantısıyla.
  15. Artık, CODE.EXE ile ilişkili kayıt defteri girdisinin yedeğine sahipsiniz.

Kayıt defterini manuel olarak düzenlemeye yönelik sonraki adımlar, büyük olasılıkla sisteminize zarar verebileceklerinden bu makalede anlatılmayacaktır. Kayıt defterini manuel olarak düzenleme hakkında daha fazla bilgi istiyorsanız, lütfen aşağıdaki bağlantılara bakın.

yardım ile Kaynak Ayarlayıcı.EXE, .DLL, .OCX, ekran koruyucular (.SCR) ve çok daha fazlası gibi yürütülebilir dosyaları açabilirsiniz. Dosyayı açtığınızda, dosyanın kaynaklarına erişirsiniz ve simgeleri, imleçleri ve çeşitli biçimlerdeki grafikleri değiştirebilir, menülerdeki, iletişim kutularındaki ve diğer kullanıcı arabirimi öğelerindeki dizeleri değiştirebilirsiniz.

Ancak, yürütülebilir dosyadaki kaynakların program kodundan ayrıldığı ve program arayüzünü değiştirerek program koduna erişemeyeceğiniz unutulmamalıdır. Kaynak düzenleyiciyi kullanarak programın kontrol öğelerini değiştirebilirsiniz. Kaynak düzenleyiciyi kullanarak program kodunu değiştiremezsiniz.

Daha ciddi değişiklikler için (ancak bu, Windows için programlama uygulamaları konusunda yeterli deneyim olmadan iyi bir şeye yol açmayacaktır), PE Explorer (PE dosyalarının yapısı için düzenleyici) veya FlexHex (ikili dosyalar için onaltılık düzenleyici) kullanmanızı öneririz.

Resource Tuner'da bir EXE veya DLL dosyasını açma

Dosyaları açmanın birkaç yolunu destekler. Dosyayı görüntülemek ve düzenlemek üzere açmak için düğmesine tıklayın. Açık dosya araç çubuğunda veya komutu seçin Dosya > Açık menüden. Araç çubuğundaki düğmenin yanındaki açılır menü, en son açılan dosyaların listesine hızlı erişim sağlar. Aynı liste komutla da elde edilebilir. Dosya > Son Dosyalar program menüsünden Listedeki dosya sayısı iletişim kutusunda yapılandırılır. Özelleştirme.


Ayrıca, dosyayı sağ tıklayıp seçerek doğrudan Windows Gezgini'nden Resource Tuner ile bir dosyayı açabilirsiniz. Kaynak Ayarlayıcı ile Aç bağlam menüsünden.

Veya dosya simgesini Windows Gezgini'nden masaüstündeki Resource Tuner simgesine veya Resource Tuner penceresine sürükleyip bırakabilirsiniz.

Dosyayı komut satırından da açabilirsiniz.
Örneğin: restuner.exe dosyaadı.exe

Bir dosyayı açarken, Kaynak Ayarlayıcı birkaç otomatik işlem gerçekleştirir: UPX kullanılarak paketlendiğini algılarsa dosyayı açar, ardından dosyanın yapısını ve kaynaklarını olası hatalara karşı kontrol eder ve son olarak hasarlı kaynakları aşağıdakilere uygun olarak yeniden oluşturur. yürütülebilir dosya biçiminin belirtimi.

Dosya açarken oluşan hatalar

Bir dosya açılırken bir hata oluşursa, büyük olasılıkla üç nedenden dolayıdır: dosya korumalıdır, dosya 16 bittir veya yürütülebilir bir dosya değildir.

1. Hata: Dosya hasar görmüş, bir paketleyici tarafından sıkıştırılmış veya bir koruyucu tarafından korunuyor.

Dosyanın boyutunu küçültmek için sıkıştırılmış olma olasılığı yüksektir. Yürütülebilir dosyalar için düzinelerce paketleyici ve koruyucu vardır ve her zaman yenileri ortaya çıkar. Resource Tuner, yalnızca bir paketin açılmasını destekler, ancak en yaygın paketleyici - UPX. Paketleyicilerin geri kalanı desteklenmez ve dosyayı görüntülemek veya düzenlemek için açmadan önce dosyayı kendiniz açmanız gerekir.

Bu durum bir program hatası olarak değerlendirilmez. Diğer program yazarlarının yarattıklarını bilgisayar korsanlığından koruma girişimleriyle mücadele etmeyeceğiz veya aralarında hem ticari ürünler hem de ev yapımı ürünler bulunan birkaç düzine farklı paketleyicinin paketlerinin açılmasını desteklemeyeceğiz.

2. Hata: Dosya, 16-bit NE Yürütülebilir Dosyası olarak tanımlandı. Bu biçim desteklenmiyor!

Programlarımız yalnızca 32 ve 64 bit PE dosyalarıyla çalışır. NE biçimi ("Yeni Yürütülebilir Dosya"nın kısaltması), Windows 3.xx'in eski sürümlerinden devralınan 16 bitlik bir uygulama biçimidir. Windows 95'in ortaya çıkmasıyla birlikte, bu biçim, Microsoft'tan modern platformlarda yürütülebilmesine rağmen, eski ve kullanılmaz olarak kabul edilir. 16 bit dosyaları desteklemiyoruz ve desteklemeyi de düşünmüyoruz.

3. Hata: Dosya bir EXE veya DLL dosyası değil. Genel olarak!

Kaynak Ayarlayıcı, uzantıya göre olmayan bir dosyayı algılar. Yürütülebilir dosyanın uzantısını yeniden adlandırırsanız, örneğin .EXE'yi .TXT olarak düzeltirseniz veya uzantıyı tamamen kaldırırsanız, Kaynak Ayarlayıcı buna aldanamaz: program bir dosyayı açarken dosyanın içindeki dosya başlığını analiz eder, ancak uzantıda hiç.

Bu nedenle, Kaynak Ayarlayıcı size dosyanın yürütülebilir olmadığını söylerse, öyledir. Herhangi bir nedenle birisi oyunda .DLL uzantılı bir metin dosyası sağladıysa, dosya bir metin dosyası olmaktan çıkmaz ve dinamik bir kitaplık haline gelmez. Dosya uzantısına aldanmayın.

Kaynak düzenleyicide hangi dosyaların açılması mantıklı değil

Resource Tuner, herhangi bir 32- / 64-bit yürütülebilir dosyayı açmak ve düzenlemek için tasarlanmış olmasına rağmen, kaynakların pratikte bulunmadığı bazı EXE dosyası türleri vardır.

1. Visual Basic ile oluşturulan dosyalar.

Bu tür dosyalarda kaynaklar bölümünde ikon ve sürüm bilgisi dışında hiçbir şey yoktur. BASIC görselinde yazılan programlardaki satırlar ve diyaloglar kendi kapalı formatlarında saklanır ve bunlarda standart kaynak bölümü kullanılmaz.

2. Files.EXE gigabayt veya daha fazla.

Resource Tuner 32-bit bir program olduğundan, ilk gigabayt içinde sanal belleğe açılan bir dosyanın görüntüsünü yerleştirmek için doğal sınırlamalar vardır. Bir gigabayt veya daha fazla dosya oraya sığmaz.

3. EXE dosyaları biçiminde kendi kendine açılan arşivler.

Bu tür dosyalarda, kaynaklarda simge ve sürüm bilgisi dışında hiçbir şey yoktur veya olmayabilir. Aslında bu, paketin açılması için bir alt programla sağlanan arşivlenmiş verilerdir.

4. Diğer programların yükleyicileri.

Bu tür dosyalarda ikon ve sürüm bilgisi dışında kaynaklarda hiçbir şey yoktur. 3. maddeye çok benziyorlar. Yükleyici dosyası, sıkıştırılmış biçimde başka bir .EXE dosyası ve onu çıkarmak için bir alt yordam içeren bir kapsayıcı olarak düşünülebilir. Ek olarak, yükleyici oluşturmaya yönelik programlar, arşivlenmiş verileri kendi içlerinde depolamak için farklı algoritmalar kullanır.

Ücretsiz deneme sürümünüzü indirin!


Kaynak Ayarlayıcı'da çalışıyor tüm Windows sürümleri
2000 ve XP'den 8 ve 10'a.

Minimum sistem gereksinimleri:
Intel Pentium® veya AMD K5 166 MHz işlemci
16 MB RAM

Bunun için güvenliği sağlamaya çalıştıysak (özellikle tescilli bir şeyse) kaynak kodunu açmamız imkansızdır.

Ancak kodu tamamen veya kısmen ortaya çıkarmanın yolları vardır.

  • IDA Pro en iyi ücretsiz bilgisayar korsanıdır, bazı makrolar kodu tersine çevirmenize izin verebilir. Ama her zaman değil. Borland ürünleri özellikle iyi açılıyor.
  • Hiew.Exe, kodunuzu montaj dilinde düzenlemenize izin veren çok küçük ücretsiz bir yardımcı programdır. Metin ve tamsayı sabitlerini düzenleyebilirsiniz. Programı başka bir dile "çevirmek", şirketin adını silmek vb. için bile kullanabilirsiniz.
  • Bir PDB dosyası varsa veya dosyaya hata ayıklama bilgisi eklenmişse, kod geliştirme ortamında elde edilebilir (eğer hata ayıklama bilgisi tamamlandıysa) nadiren kullanılabilir. Kaynak kodunu alamazsınız, ancak "satır numaraları ve kaynak adları" ile tüm sabitlerin adlarını / değerlerini, yerel değişkenleri alabilir, "fonksiyonların parçalanmasından" kaçınabilir ve ayrıca sınıf doldurma (neredeyse) ile sınıflar alabilirsiniz. programın anlaşılmasını büyük ölçüde kolaylaştıracak program metni dışındaki tüm yapılar). Bazı kitaplıklar (dll) için pdb dosyaları ayrı olarak indirilebilir. Kendine saygısı olan bir şirketin değerli ürününün pdb'sini sızdırması pek olası değildir.
  • Hata ayıklama bilgisi, exe içine gömülü DebugInfo bilgisi var. Böyle bir bilgi varsa ve ilgili yardımcı program (örneğin, Borland Delphi derlenmiş ve mevcutsa), önceki noktaya benzer bir şey yapabilirsiniz. Ancak kendine saygısı olan bir şirketin böyle "aptalca" bir hata yapması pek olası değildir (pdb'ye benzer).
  • Dosya C# ile yazılmışsa, disSharp kullanan kodlarda neredeyse tamamen görüntülenebilir (bu tür programlar içe aktarma tablosuna yalnızca mscorlib'i "içerir" ve bu kadar). DisSharp, programın bazı bölümlerini yetersiz bir şekilde demonte eder, ancak ücretli sürümü veya benzer yardımcı programların ücretli sürümü kodu daha iyi ortaya çıkarabilir.
  • Dosya FoxPro, clipper ve diğer benzer bayt kodu dillerinde yazılmışsa, özel yardımcı programlar (örneğin Refox) tarafından genişletilir.
  • exescope.exe ResourceHacker.exe yardımcı programı ve benzer yardımcı programları, başlığı, bağlı kitaplıkları görüntülemenize izin verir (bunları kullanarak şunları yapabilirsiniz: anlamak programın ne yazdığı) ve program kaynaklarını düzenleyin (delphi, simgeler, resimler, kaynak satırları tabloları dahil kaynak formları).
  • Kodun nasıl oluşturulduğunu biliyorsanız, onu açabilecek özel yardımcı programlar olduğunu düşünüyorum (ücretli ve erişilemezler).

Yine, bu, kod paketleyici (o zaman önce bir paket açıcı uygulamanız gerekir), bir şifreleyici / kendi kendini değiştiren kod olmaması koşuluyla yapılır. Bir obfuscator tarafından kırılmadıysa, çözmeyin. Kod ne kadar büyük olursa, onu anlamak o kadar zor olur.

not Şahsen benim görüşüm, her şey açığa çıkar ve saldırıya uğrar, ancak bu çok, çok zaman alır. Belki bir yıl veya daha fazla (deneyime ve araçlara bağlıdır, kamuya açık alanda iyi araçlar yoktur).