NETWORKTAN PROGRAMIM ÇALIŞMASIN
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
NETWORKTAN PROGRAMIM ÇALIŞMASIN
Merhaba,
Yazdığım programlara makinenin Bios, Mac adresi ve Bios tan aldığım bilgilerle belirli bir algoritma ile şifrelediğim bir seri no koruması ekledim. Böylece programlarım sadece ben seri nosunu aktifleştirince çalışabiliyor. aksi halde program o bilgisayarda çalışmıyor.
Yalnız sorun şu ki: ağ ortamındaki 10 bilgisayardan 1 tanesi için seri no alıp, diğer makineler programı ağ üzerinden kullanabiliyorlar.
Daha önce böyle birşey hiç aklıma gelmemişti, bunu nasıl önleyebilirim. Kullanım yetkisi almış bilgisayardaki EXE, networkten diğer bilgisayarlardan çalıştırılmak istendiğinde bunu nasıl engelleyebilirim.
Yardımlarınız için teşekür ederim
Yazdığım programlara makinenin Bios, Mac adresi ve Bios tan aldığım bilgilerle belirli bir algoritma ile şifrelediğim bir seri no koruması ekledim. Böylece programlarım sadece ben seri nosunu aktifleştirince çalışabiliyor. aksi halde program o bilgisayarda çalışmıyor.
Yalnız sorun şu ki: ağ ortamındaki 10 bilgisayardan 1 tanesi için seri no alıp, diğer makineler programı ağ üzerinden kullanabiliyorlar.
Daha önce böyle birşey hiç aklıma gelmemişti, bunu nasıl önleyebilirim. Kullanım yetkisi almış bilgisayardaki EXE, networkten diğer bilgisayarlardan çalıştırılmak istendiğinde bunu nasıl engelleyebilirim.
Yardımlarınız için teşekür ederim
Selamlar,
Eğer yazdıklarınızı yanlış anlamadıysam, zaten BIOS, MacAddress gibi bilgiler Networkte her makina için ayrı olmalı ve bahsettiğiniz sorunun ortaya çıkmaması gerekiyor !...
Yani EXE'yi çalıştıran makinanın MacAddressi (Network Kartının) ayrıca BIOS'u her makinada farklı olmalı.
Bence bir daha deneyin !... Mümkünse programı bir makina için Şifreleyin ve başka bir makinadan (server'daki exe'yi) çalıştırın, size okuduğu MacAdr ve BIOS Bilgilerini versin.
Kolay Gelsin
Eğer yazdıklarınızı yanlış anlamadıysam, zaten BIOS, MacAddress gibi bilgiler Networkte her makina için ayrı olmalı ve bahsettiğiniz sorunun ortaya çıkmaması gerekiyor !...
Yani EXE'yi çalıştıran makinanın MacAddressi (Network Kartının) ayrıca BIOS'u her makinada farklı olmalı.
Bence bir daha deneyin !... Mümkünse programı bir makina için Şifreleyin ve başka bir makinadan (server'daki exe'yi) çalıştırın, size okuduğu MacAdr ve BIOS Bilgilerini versin.
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
merhaba,
zannedersem ,siz bahsettiğiniz makina özelliklerini sadece seri numarası girilme aşamasında kontrol ediyorsunuz. eğer girilen karşılı kod doğruysa lisanslama ile ilgili bir noktaya bilgi yazıyor ve daha sonra her açılışta o bilgiyi okuyarak programın lisanslı olup olmadıoğını kontrol ediyorsunuz. eğer algoritmanız bu şekilde bir yapıya benziyorsa , önerim her açılışta lisasn bilgisine göre değerleri kontrol edip lisanslama algortimasını tekrar çaıştırmalısınız. örneğin seri no girilme aşamasında doğru olduğu taktirde ilgili makina bilgilerine de dosyaya yazdırmalı diğer açılışlarda bunları kontrol etmelisiniz.
iyi çalışmalar.
zannedersem ,siz bahsettiğiniz makina özelliklerini sadece seri numarası girilme aşamasında kontrol ediyorsunuz. eğer girilen karşılı kod doğruysa lisanslama ile ilgili bir noktaya bilgi yazıyor ve daha sonra her açılışta o bilgiyi okuyarak programın lisanslı olup olmadıoğını kontrol ediyorsunuz. eğer algoritmanız bu şekilde bir yapıya benziyorsa , önerim her açılışta lisasn bilgisine göre değerleri kontrol edip lisanslama algortimasını tekrar çaıştırmalısınız. örneğin seri no girilme aşamasında doğru olduğu taktirde ilgili makina bilgilerine de dosyaya yazdırmalı diğer açılışlarda bunları kontrol etmelisiniz.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
- serkan1634
- Üye
- Mesajlar: 17
- Kayıt: 13 Nis 2005 10:37
register
bence program çalıştığında registerı okuyarak çalışsın algoritmanı register üzerine adapte et....ama diğer arkadaşlarada katılıyorum bios numarası falan aldıysan çalışmamalı bence program bunu registere yazsın ve her açılışta bunu kontrol etsin eğer registerda yoksa çalışmasın
her şey yaratana dönüşten ibarettir
- serkan1634
- Üye
- Mesajlar: 17
- Kayıt: 13 Nis 2005 10:37
register
bence program çalıştığında registerı okuyarak çalışsın algoritmanı register üzerine adapte et....ama diğer arkadaşlarada katılıyorum bios numarası falan aldıysan çalışmamalı bence program bunu registere yazsın ve her açılışta bunu kontrol etsin eğer registerda yoksa çalışmasın
her şey yaratana dönüşten ibarettir
İlginiz için teşekürler arkadaşlar.
çalıştırma mantığım tam olarak şöyle:
Program çalıştığında, bilgisayarın: Harddisk Serinosonu, Mac Adresini ve Bios tarhini alır: elde ettiği bilgileri bir formül eşliğinde anlamlı sayılara çevirir. Öyle bir formül ki bu, ilgili sayı yalnızca, bu üç bilgi yine yanyana gelirse elde edilebiliyor. HD, anakart yada ethernet değiştiğinde üretilen seri no da değişiyor.
Elde edilen bu seri noyu Müşteri lisans satın aldıktan sonra bize göderiyor. Biz gönderilen seri numarasını internetteki Veritabanımıza kaydediyoruz. Program zaten internet ortamında çalışacak şekilde yazıldı. Her çalıştırılışında ilgili seri noyu tekrar üretiyor ve internet yoluyla veritabanımızdan serino yu kontrol ediyor. Şayet tanımlı değilse çalıştırma izni vermiyor. Program çalışırken de zaman zaman bu testi Thread açarak yaptırıyoruz.
Sorun şu ki, bazı kişilerin network üzerinde uzak masa üstü yada başka bi yolla bizden erişim izni almış bir bilgisayardan programı çalıştırabildiklerini öğrendik. Sıkıntımız, hiç birşekilde uzaktaki masaüstü dahi olsa erişim izni olmayan bir bilgisayardan programımız çalıştırılamasın. Kısacası 1 lisans prası ödeyip ağdan istedikleri adet sayıda makinede çalıştırabiliyolar. Benim için çözmem gereken ciddi bir sorun bu şu anda.
Fikirlerinizi bekliyorum
Sağolun
çalıştırma mantığım tam olarak şöyle:
Program çalıştığında, bilgisayarın: Harddisk Serinosonu, Mac Adresini ve Bios tarhini alır: elde ettiği bilgileri bir formül eşliğinde anlamlı sayılara çevirir. Öyle bir formül ki bu, ilgili sayı yalnızca, bu üç bilgi yine yanyana gelirse elde edilebiliyor. HD, anakart yada ethernet değiştiğinde üretilen seri no da değişiyor.
Elde edilen bu seri noyu Müşteri lisans satın aldıktan sonra bize göderiyor. Biz gönderilen seri numarasını internetteki Veritabanımıza kaydediyoruz. Program zaten internet ortamında çalışacak şekilde yazıldı. Her çalıştırılışında ilgili seri noyu tekrar üretiyor ve internet yoluyla veritabanımızdan serino yu kontrol ediyor. Şayet tanımlı değilse çalıştırma izni vermiyor. Program çalışırken de zaman zaman bu testi Thread açarak yaptırıyoruz.
Sorun şu ki, bazı kişilerin network üzerinde uzak masa üstü yada başka bi yolla bizden erişim izni almış bir bilgisayardan programı çalıştırabildiklerini öğrendik. Sıkıntımız, hiç birşekilde uzaktaki masaüstü dahi olsa erişim izni olmayan bir bilgisayardan programımız çalıştırılamasın. Kısacası 1 lisans prası ödeyip ağdan istedikleri adet sayıda makinede çalıştırabiliyolar. Benim için çözmem gereken ciddi bir sorun bu şu anda.
Fikirlerinizi bekliyorum
Sağolun
Aslında haklı olabilirsin, bununla birlikte ethernet kartının değişmesi çok rastlanan bir durum değil gibi görünüyor. değişsse ve seri nosu farklı bir değer olsa bile destek servisimiz, seri no değişim işlemlerini ücretisiz yapıyor. Yani, müşterilerin mağduriyeti sözkonusu değil.
Yurtdışında birçok yazılım evinin menzer uygulamayla işlerini yürüttüğünü müşahade etmiştik, o sebeple benzer uygulayamı bizde yazılımlarımıza ekledik, ancak ilk başta bahsettiğim sorunla karşılaştık
fikirlerinizi bekliyorum arkadaşlar
sağolasınız
Yurtdışında birçok yazılım evinin menzer uygulamayla işlerini yürüttüğünü müşahade etmiştik, o sebeple benzer uygulayamı bizde yazılımlarımıza ekledik, ancak ilk başta bahsettiğim sorunla karşılaştık
fikirlerinizi bekliyorum arkadaşlar
sağolasınız
Merhaba.
- MAC adresi almak için IP'yi sabit mi verdin ? Öncelikle mevcut makinenin IP numarasını öğrenen bir procedure yazıp, MAC adresi okuduğun fonksiyonun parametresi olarak dinamik olacak bu IP öğrenme fonksiyonunu ekle.
- Mesela Ana makinenin IP'si olsun. Fonksiyonun da olsun
- Bu durumda programa eklemek durumunda olduğun kod gibi değil şeklinde olmalı ki, program hangi makineden çalıştırılıyorsa o makinenin MacID'sini görsün.
- Sonra Server'deki ürettiğin kod ve sadece çalışmasını istediğin makineler için ürettiğin kod(ları) bir veritabanında veya en güzeli benim hep yaptığım programa DLL şeklinde istediğin zaman güncelleyebileceğin halde ekli tutar, hariç makine varsa çalışmasını engellersin...

- MAC adresi almak için IP'yi sabit mi verdin ? Öncelikle mevcut makinenin IP numarasını öğrenen bir procedure yazıp, MAC adresi okuduğun fonksiyonun parametresi olarak dinamik olacak bu IP öğrenme fonksiyonunu ekle.
- Mesela Ana makinenin IP'si
Kod: Tümünü seç
192.168.2.2
Kod: Tümünü seç
MacIDOgren(IP:String):String;
- Bu durumda programa eklemek durumunda olduğun kod
Kod: Tümünü seç
MacID = MacIDOgren('192.168.2.2');
Kod: Tümünü seç
MacId = MacIDOgren(LocalIPOgren);
- Sonra Server'deki ürettiğin kod ve sadece çalışmasını istediğin makineler için ürettiğin kod(ları) bir veritabanında veya en güzeli benim hep yaptığım programa DLL şeklinde istediğin zaman güncelleyebileceğin halde ekli tutar, hariç makine varsa çalışmasını engellersin...

Mac adresi almak için IP yi sabit vermedim. Diyelimki 10 bilgisayarlı bir ağ var ve bizim program bu 10 bilgisayarda da çalışıyor. "İnternet" de sabit IP li bir Veritabanı sunucumuz var. Bu 10 bilgisayarlı network yapısı, türkiyede çeşitli illerdeki 8 şubede mevcut. İstanbul, izmir, antalya, kayseri vs... Herşubede hemen hemen 10 bilgisayar var ve tüm bilgisayarlarda bizim uygulama çalışıyor. Ofislerde bir istemci sunucu mantığı yok. bizim yazılım, internet yoluyla direk Sabit IP li, ve internete 7/24 bağlı bir sunucuya erişerek işlemlerini yapıyor. Her bir ofis de Sabit IP li ADSL hattı var.
Sunucu sistemde, bizim müşterilerde çalışan yazılımla entegre çalışan bir XML arayüzü yazdık. Bu arayüz direk sunucunun içerisinde çalışan bir uygulama, ve veritabını ile işlem yapma yetkisi sadece sunucuda çalışan bu uygulamada var. Böylece, Müşterilere verdiğimiz programda aslında veritabanı erişim yetkisi yok. Kısacası veritabanımıza dışardan erişim yok. Geliştirdiğimiz, XML web arayüzüne pogramımız sorguyu gönderir. Giden sorgunun sonuçlarını SSL ile şifreleyip, müşteride çalışan uygulamamıza gönderir. XML arayüzümüz, programımızın ihtiyaçlarına göre yine bizim tarafımızdan güncelleştirilenbilen bir PHP yazılımları ailesidir. Dolayısıyla, Programın ihtiyaç duyacağı özel sorgu yada işlem natıklarının bir benzeri php de de yazıyor. Bu yaklaşım bizim iş yükümüzü artırsa bile, Veritabanın da oluşturulan bir kullanıcıya internetten erişim yetkisi verilmesinden daha Güvenli olduğunu düşündüğümden böyle bir yol seçtik. Ve, bazı yazılım evlerininde buna bnzer bir yaklaşım sergilediğini biliyoruz.
Konumuza dönersem, Şubelerde ADSL modemlerde DHCP aktif. Bilgisayarların herhangi bir sabit IP yi almasını zorunlu tutmuyoruz. İnternete çıkında nasıl çıkarsanız çıkın diyoruz. olyısıla, her müşterinin ofisinde aynı IP dağıtım mantığı olmayabiliyor.
Biz, hangi çalışma koşulunda olursa olsun, programın gerçekte hangi makinede çalıştığını tespit etmek durumundayız. Mesela, dün XP Uzak Desktop ıyla, diğer makineden çalıştırabilidim. gerçi çok sağlıklı bir çalışma olmadı, diğer makine kilitlendiş ama her ne olursa olsun program gerçekte hangi makinede çalıştığını bilebilmeli. Henüz bizim keşfedemediğimiz, [[mekan problemi: bu işi yapan müşterinin antalya da olduğunu öğrendik. gbidip gömem gerekir nasıl yaptıklarını ama istanbuldan gitmek helede böyle yoğun zamanlarda zor bir iş. gerçi yaz olsaydı düşünürdüm gitmeyi!!
) ]] bir yolla bu işi nadir de olsa yapanların olduğunu öğrendik.
Evet arkadaşlar, bu sektörde ayakta kalabilmek için paraya ihtiyacımız var. Ve birşekilde yaptıklarımızdan para kazanmalıyızki daha iyi eğitimler alıp, yurtdışına gitme imkanı yakalayıp, yurtdışında bu iş nasıl yapılıyor u öğrenmeye şansımız olsun. Programlama işi hobi değişdir bence. Çok ciddi bir iş ve bu işde başarılı olmak için ayakta kalmak için paraya ihtyaç var. Uyanık müşeteriler para vermemek için uğraşa dursun biz de daha ii uygulamalarla hakkımızı almalıyız diye düşünüyorum
Hayalim, Hindistan yazılım endüstrisinden çok daha güçlü bir türk yazılım endüstrisinin geliştiğini görmek.
Saygılar
Sunucu sistemde, bizim müşterilerde çalışan yazılımla entegre çalışan bir XML arayüzü yazdık. Bu arayüz direk sunucunun içerisinde çalışan bir uygulama, ve veritabını ile işlem yapma yetkisi sadece sunucuda çalışan bu uygulamada var. Böylece, Müşterilere verdiğimiz programda aslında veritabanı erişim yetkisi yok. Kısacası veritabanımıza dışardan erişim yok. Geliştirdiğimiz, XML web arayüzüne pogramımız sorguyu gönderir. Giden sorgunun sonuçlarını SSL ile şifreleyip, müşteride çalışan uygulamamıza gönderir. XML arayüzümüz, programımızın ihtiyaçlarına göre yine bizim tarafımızdan güncelleştirilenbilen bir PHP yazılımları ailesidir. Dolayısıyla, Programın ihtiyaç duyacağı özel sorgu yada işlem natıklarının bir benzeri php de de yazıyor. Bu yaklaşım bizim iş yükümüzü artırsa bile, Veritabanın da oluşturulan bir kullanıcıya internetten erişim yetkisi verilmesinden daha Güvenli olduğunu düşündüğümden böyle bir yol seçtik. Ve, bazı yazılım evlerininde buna bnzer bir yaklaşım sergilediğini biliyoruz.
Konumuza dönersem, Şubelerde ADSL modemlerde DHCP aktif. Bilgisayarların herhangi bir sabit IP yi almasını zorunlu tutmuyoruz. İnternete çıkında nasıl çıkarsanız çıkın diyoruz. olyısıla, her müşterinin ofisinde aynı IP dağıtım mantığı olmayabiliyor.
Biz, hangi çalışma koşulunda olursa olsun, programın gerçekte hangi makinede çalıştığını tespit etmek durumundayız. Mesela, dün XP Uzak Desktop ıyla, diğer makineden çalıştırabilidim. gerçi çok sağlıklı bir çalışma olmadı, diğer makine kilitlendiş ama her ne olursa olsun program gerçekte hangi makinede çalıştığını bilebilmeli. Henüz bizim keşfedemediğimiz, [[mekan problemi: bu işi yapan müşterinin antalya da olduğunu öğrendik. gbidip gömem gerekir nasıl yaptıklarını ama istanbuldan gitmek helede böyle yoğun zamanlarda zor bir iş. gerçi yaz olsaydı düşünürdüm gitmeyi!!

Evet arkadaşlar, bu sektörde ayakta kalabilmek için paraya ihtiyacımız var. Ve birşekilde yaptıklarımızdan para kazanmalıyızki daha iyi eğitimler alıp, yurtdışına gitme imkanı yakalayıp, yurtdışında bu iş nasıl yapılıyor u öğrenmeye şansımız olsun. Programlama işi hobi değişdir bence. Çok ciddi bir iş ve bu işde başarılı olmak için ayakta kalmak için paraya ihtyaç var. Uyanık müşeteriler para vermemek için uğraşa dursun biz de daha ii uygulamalarla hakkımızı almalıyız diye düşünüyorum

Hayalim, Hindistan yazılım endüstrisinden çok daha güçlü bir türk yazılım endüstrisinin geliştiğini görmek.
Saygılar