C# Keygen Algoritma Hack Sorunu ?
-
Papaz olunan bir müşteriyle yaşananlar sonucu gelişen bir soru. Hatta iddaya girildi. 2 gün süre verildi.
Aşağıdaki basit bir demo key validator program yazdım. Sadece girdiğiniz keylerin doğru/yanlış olduğunu söylüyor ve clientlara dağıtılacak. C# ile yazdım ve herhangi bir kod gizleme, karıştırma(obfuscation) yok. Yalın C# kodları, offline tek çalışan basit bir exe dosya.Müşteri bunun büyük bir güvenlik açığı doğuracağına inanıyor.
- Şimdi bu programı reverse engine ile algoritmayı kırarak kendi keylerinizi yaratabilir misiniz?
- Bunu engellemek için nasıl bir algoritma kullanırsınız.
Not: Amaç bilgi paylaşımıdır. Ben yaptım oldu değil. iddalı olan varsa dosyayı gönderebilirim.Kod ve binary : https://drive.google.com/drive/folders/1UrOnKoGcqWqYe2MdI3z67HWdV0sXK7eb?usp=sharing
-
cukurova bunu yazdı
Papaz olunan bir müşteriyle yaşananlar sonucu gelişen bir soru. Hatta iddaya girildi. 2 gün süre verildi.
Aşağıdaki basit bir demo key validator program yazdım. Sadece girdiğiniz keylerin doğru/yanlış olduğunu söylüyor ve clientlara dağıtılacak. C# ile yazdım ve herhangi bir kod gizleme, karıştırma(obfuscation) yok. Yalın C# kodları, offline tek çalışan basit bir exe dosya.Müşteri bunun büyük bir güvenlik açığı doğuracağına inanıyor.
- Şimdi bu programı reverse engine ile algoritmayı kırarak kendi keylerinizi yaratabilir misiniz?
- Bunu engellemek için nasıl bir algoritma kullanırsınız.
Not: Amaç bilgi paylaşımıdır. Ben yaptım oldu değil. iddalı olan varsa dosyayı gönderebilirim.kodları incelemek lazım hocam ama mantıken şu belki zaafiyet olabilir; hani md5'te çarpışmalar vardır ya belki o olur da baya zor hocam.
-
Herhangi bir obfuscation yoksa direkt login ekranını bypass ederük?
Yine obfuscation yoksa algoritmayı çıkartabiliriz bence.
Obfuscation şart bence.
-
Bruteforce ile kırılır gibi mesela
-
cukurova bunu yazdı
Papaz olunan bir müşteriyle yaşananlar sonucu gelişen bir soru. Hatta iddaya girildi. 2 gün süre verildi.
Aşağıdaki basit bir demo key validator program yazdım. Sadece girdiğiniz keylerin doğru/yanlış olduğunu söylüyor ve clientlara dağıtılacak. C# ile yazdım ve herhangi bir kod gizleme, karıştırma(obfuscation) yok. Yalın C# kodları, offline tek çalışan basit bir exe dosya.Müşteri bunun büyük bir güvenlik açığı doğuracağına inanıyor.
- Şimdi bu programı reverse engine ile algoritmayı kırarak kendi keylerinizi yaratabilir misiniz?
- Bunu engellemek için nasıl bir algoritma kullanırsınız.
Not: Amaç bilgi paylaşımıdır. Ben yaptım oldu değil. iddalı olan varsa dosyayı gönderebilirim.Demek ki algoritmanı implement ettiğin kod da o exenin içinde. Üstelik bir obfuscation da yok diyorsun.
Müşterin haklı hocam, büyük bir güvenlik açığı doğurur bu yöntem.
.net mimarisinin nasıl çalıştığını anlamak lazım bunun hakkında konuşabilmek için. Şu linkte Türkçe bir doküman var; IL, MSIL, CIL, CLR, CIT gibi kavramları yüzeysel de olsa anlatıyor birazcık: shorturl.at/qDEHW
dotPeek ve .net Reflector gibi araçlar sayesinde .exe ve .dll gibi dosyaları (.net assembly) IL ya da C# koduna geri dönüştürebilirsin basitçe. Hatta arada IL olduğu için Vb.net ile yazılan kodun exe'sinden C# koduna bile ulaşabilirsin.
Obfuscation olsa ulaşılmaz mı? Yine ulaşılabilir. Sadece kodu okuyan insanın anlaması biraz daha zorlaşır o kadar.Yazdığın kod tahmin ediyorum ki en fazla 1-2 class, 3-5 tane method'dan oluşuyordur. Obfucaste etsen bile nasıl çalıştığının anlaşılması çok uzun zaman almaz bence.
-
Oraya ne yazarsan yaz. "Geçersiz Key" yerine "Doğru" dedirtebiliriz büyük ihtimal, bu kolay olur.
Algoritmaya ulasip gerçekten doğru Key yaratmak falan gibi durumlarda biraz derinlesiyor konu, ama c# decompile sanirim çok zor değil. Kodlarida karistirmadiysan yani problem, evet.
Ha ne yapılmalı dersen, bilmem. Trilyonlarca liralık 100 lerce kisinin yazdığı kodlar, oyunlar misal, kirilmiyor mu ?
Kırılıyor.
-
JPriest bunu yazdıcukurova bunu yazdı
Papaz olunan bir müşteriyle yaşananlar sonucu gelişen bir soru. Hatta iddaya girildi. 2 gün süre verildi.
Aşağıdaki basit bir demo key validator program yazdım. Sadece girdiğiniz keylerin doğru/yanlış olduğunu söylüyor ve clientlara dağıtılacak. C# ile yazdım ve herhangi bir kod gizleme, karıştırma(obfuscation) yok. Yalın C# kodları, offline tek çalışan basit bir exe dosya.Müşteri bunun büyük bir güvenlik açığı doğuracağına inanıyor.
- Şimdi bu programı reverse engine ile algoritmayı kırarak kendi keylerinizi yaratabilir misiniz?
- Bunu engellemek için nasıl bir algoritma kullanırsınız.
Not: Amaç bilgi paylaşımıdır. Ben yaptım oldu değil. iddalı olan varsa dosyayı gönderebilirim.Demek ki algoritmanı implement ettiğin kod da o exenin içinde. Üstelik bir obfuscation da yok diyorsun.
Müşterin haklı hocam, büyük bir güvenlik açığı doğurur bu yöntem.
.net mimarisinin nasıl çalıştığını anlamak lazım bunun hakkında konuşabilmek için. Şu linkte Türkçe bir doküman var; IL, MSIL, CIL, CLR, CIT gibi kavramları yüzeysel de olsa anlatıyor birazcık: shorturl.at/qDEHW
dotPeek ve .net Reflector gibi araçlar sayesinde .exe ve .dll gibi dosyaları (.net assembly) IL ya da C# koduna geri dönüştürebilirsin basitçe. Hatta arada IL olduğu için Vb.net ile yazılan kodun exe'sinden C# koduna bile ulaşabilirsin.
Obfuscation olsa ulaşılmaz mı? Yine ulaşılabilir. Sadece kodu okuyan insanın anlaması biraz daha zorlaşır o kadar.Yazdığın kod tahmin ediyorum ki en fazla 1-2 class, 3-5 tane method'dan oluşuyordur. Obfucaste etsen bile nasıl çalıştığının anlaşılması çok uzun zaman almaz bence.
jpriestin yazdıklarını yazmaya gelmiştim. .net mimarisinden ötürü çok basit bir şekilde reverse enginerringle iş halledilebilir.
Yazdığın kodu oop yazıp. bu classları obfuscate edip, çeşitli packleme yazılımlarıyla bu işi biraz daha zorlaştırabilirsin.
tabi olay sadece if kontrolünden ibaretse adam assembler seviyesinde açıp yapacağı işlem bir tane JMP koymak olacaktır.
-
kodları şifrelenemen en güzeli kırılır mı kırılır ama şifrelersen çok acemi crackeri es geçersin açık kaynak şifreleme araçlarını modlarsan es geçer çoğu kişi yada en gücel şifreleme araçlarını kullan misal crack araçlarının orjinal captionlarını uygulama içerşisine göm gördüğünde uyglama çöksün basit bir koruma olur yine belli kişileri es geçmiş olursun vs vs
-
Şöyle birsey buldum ama paralı. Biraz araştır dilersen. Adres : https://www.red-gate.com/products/dotnet-development/smartassembly/
-
yolla dosyayo bakalim hocam
-
Güzel cevaplar geldi teşekkürler ama doğru tahmin gelmedi :)
Öncelikle şunu belirteyim bu kodlar auth. için rfid kartlar içinde olacak, program sadece doğruluğu kontrol ediyor. Yani dönen değeri true olarak değiştirip programda "key geçerli" yazdırmak bir çözüm değil.
Dosyayı paylaşıyorum, devasa kod blokları yok. Tamamı 30-50 satır satırı birşey.
Link : https://drive.google.com/drive/folders/1UrOnKoGcqWqYe2MdI3z67HWdV0sXK7eb?usp=sharing
Örnek id/key ciftleride paylaşayım :
ID: CUKUROVA KEY: 41905C69422BE4BBF4E64505F2842FF554AEE9BD3341D3C62A3D41B6EB2724C9674A74B492D46CF4
ID: CUKUROVA KEY: 86A0150918A5C0552E7DA9E292081D630B2D95160A2D078895A9C41EA2CBF45C020EC0A87F18A8A9
ID: CUKUROVA KEY: 535EB414EBFBDA6AFC787C7C1E258D0C21BAE2D86C7483FE40219BCD051384BBE4C1B79CEDA457F1ID: AHMET KEY: 68757ED3D42724C692EEBF0489C8DC58D83AB8B40845F981B9A48064ECAE4D6E8DBDD5A34922374F
ID: AHMET KEY: 38A81A633FE28C2478B2F26629FA4A42D6B4C20B4A03D6800F2A1E154DCAE35FCDEFA8CBACDA2319
ID: AHMET KEY: 21443AC54E32CF777276A87ED00825C74F83E82B62FD66A7BD308CC6B9E38960FBFC369AB97A20ADEğer decompiler edemeyen olursa doğrudan kaynak kodları da gönderebilirim.
cukurova tarafından 09/Oca/21 14:07 tarihinde düzenlenmiştir