DLL uzerinden mesaj vermek

Başlatan bunalmis, 26 Mayıs 2004, 01:16:57

z

Yazdigim bir DLL 'i isteyenler internet sayfamdan yukleyip DLL icindeki
fonksiyonlari kendi yazacaklari program icinden gerektikce cagirip kullanabilecekler.

Bu DLL 'i bedava veriyor olsam da karsiliginda, programin ilk acilisinda yarim  saniyelik  zaman boyunca  kimseyi rahatsiz etmeden DLL araciligiyla cok kisa bir reklam yapmak istiyorum.

Programi yazan kisi verilen DLL 'den herhangi bir fonksiyonu programin ilk basinda cagirmadigi surece reklam, program calistiktan sonra DLL'e ilk muracat esnasinda cikacagindan gecikmeli reklami tercih etmiyorum.

Program tiklandiginda ana form acilir acilmaz hemen reklam isi olsun bitsin istiyorum.

Kendi programini yazacak buna karsilik benim DLL'imi kullanacak kisinin
ana forumun ilk acilisinda DLL'imi kullanmaya nasil zorlarim.

Yada alternatif cozumunuz varmi?

Onerilerinizi bekliyorum.

(Delphi kullaniyorum)
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ASPExpert

Selamlar,

DLL de kullanacağın tüm metodların başında kendi "nag" dediğimiz reklam bilgini üreten metodunu yazarsın. diğer developer senin metodlarından birini çağırdığında sende reklam metodunu çağırırsın.  Ha bu arada bazı sorunlar cıkabilir. AYnı anda 3 metodunu cağırırsa? 3 farklı nag gelir kaşısına. O yüzden ilk nag da bir flag atayarak (mesela boolean tipinde bi değişken)  ilk açıldığında bu flagın değerini kontrol ettirir ona göre nag çıkartırsın,

Yada sen yazdığın dll in init ine (sub main yada sub load) gibi biryerde bu nag metodunu çağırırsın..

Ama tabi herzaman güzel birşey değil bu :) Bu yüzden bide lisans kodu yazki bu nagscreen i kaldırsınlar.

Bu konda mailleşelim ;)
Gerçek ilerleme ilerici olmaktan degil, ilerliyor olmaktan meydana gelir... --------------------------------------- http://www.aspexpert.cjb.net http://blogs.wwwcoder.com/aspexpert

cozturk

Hocam madem nag yapacaksın. bunu kaldırmak için anlatılanlara da bir bak istersen. sağlam vir nag olsun:
Toolz Required:
hIEW...............A good Cracking Web Site.
Brain..............Ummm....Head maybe??
Computer...........You're on one now!

Cracking Tutorial #3 By SiONiDE

Hi fellow Crackers. I write these tutorials in short amounts of time. Therefore I apologise
for any grammatical  errors in this essay. Enjoy the Tut!

Removing NAG Screens Using only A Hex Editor:

Difficulty Level: 	Easy [X] Medium [ ] Hard [ ] Expert [ ]

Toolz Required:
hIEW...............A good Cracking Web Site.
Brain..............Ummm....Head maybe??
Computer...........You're on one now! 

Step 1:

Lets find a target, something easy that has an annoying nag when you run the program.
First lets have a look at it, run the program and note down a few words from the NAG
screen. E.G "You can purchase this software....blah blah blah". Now open target.exe
with the Hex Editor (hIEW) which is the most common for crackers. Load it up and 
press "ENTER" once to put it in HEX mode. Now you press "F7" to do a search, type in
the ASCII value for one of the words, E.G purchase, but you "MUST" put a double zero 
between each number. 

E.G.

230075007200630068006100730065
|   |   |   |   |   |   |   |
P   u   r   c   h   a   s   e


You should then come to something that looks like the below:

0000 0E00 0000 0000 0000 0000 2300 7500   ............P.u.--------> The code you searched for.
7200 6300 6800 6100 7300 6500 0000 0000   r.c.h.a.s.e.....
0000 0000 0100 0000 0100 0250 0700 0700   ................
0000 0000 0000 0000 0000 0000 0000 0000   ................          
0000 0000 0000 0000 0000 0000 0000 0000   ................--------> This part will be replaced 
0000 0000 0000 0000 0000 0000 0000 0000   ................--------> with the rest of the NAG
0000 0000 0000 0000 0000 0000 0000 0000   ................          Message. I've just used full
0000 0000 0000 0000 0000 0000 0000 0000   ................          stops. I'm Lazy. :) 

Step 2:

Once you have found the message. You will need to search for a HEX value of "FFFF82", so
press "F7" and click in the HEX box, type in the value. As said in ACiD_BuRN's NAG tutorial, 
we have no idea why to search for this value, but should always work!!! Once you have found 
it, you will need to replace the 82 with 7E, so FFFF82 becomes FFFF7E. Press F3 to edit,
make sure that read-only is switched off in the properties and enter the new HEX value.
Press F9 to update/save the file. Exit and run the program, walla No More NAG Screen!!!

Step 3:

If you want to make a patch of this routine, d/l a byte matcher and compare the NAG-Free file
with the oiginal. Then make sure you pack your patch before you upload it, this will make it
harder for "fake" crackers to still your work then HEX out your name and fill in theirs!
One more thing..... Before you distibute a patch on the internet, make sure it works, if there
is one thing I hated when I couldn't crack was downloading a crack that doesn't work. Now I save
myself the trouble, and you should too.

ASPExpert

Tekrar selam,
Yanlız şöyle bir sorunsal var sevgili cozturk,
HEX kod la nag silme özellikle ASP componentlerine kullanılan bir metoddur ve başarılıdır. ilgili reklam ile ilgili herşeyi 00 ile değişince o reklam cıkmıyor. Fakat form componentlerinde bu gecerli değil. Nag ı call ettiğin metodun cağrılması her şekilde o form ekranını açar. Ha yazı cıkmaz (cunku hex le sildik) başka.

Onun yerine assembler gibi daha lowlevel de o metodu bypass gecen bazı işlemler yapılıyor. Yinede kırılmaz değil tabi ama sadece hexle 00 atarak nag kaldırılmıyor.
Gerçek ilerleme ilerici olmaktan degil, ilerliyor olmaktan meydana gelir... --------------------------------------- http://www.aspexpert.cjb.net http://blogs.wwwcoder.com/aspexpert

z

Eper DLL den bir foksiyon çağrıldığında reklam yaparsam, reklamın ne zaman çıkacağı tamamen programı yazanın DLL deki fonksiyonları  ne zaman çağıracağına bağlı olacak. (Zaten reklam bir kere olacağından birden fazla çağrılar dert değil reklam vermeme işini halederim)

Aklıma şu geliyor. Programcıya bu DLL'i kullanmak istiyorsan form create
aşamasında bu DLL de şu fonksiyonu çağıracaksın diye şart koşsam.

DLL içindeki fonksiyon nasıl anlar bilmiyorum ama kendinin form create aşamasında çağrılıp çağrılmadığını test edip anlasa eğer evet burdan çağrıldı ise reklamını yapsa, yok başka bir yerden çağrıldı ise bir flağı set edip bu ve daha sonraki DLL çağrılarında hata döndürse diyorum.

Tabi nasıl yaparım bilemiyorum.

Bu arada hex silmeden bahsettiniz. Reklamı engellemek için
gerçi önereceğim metodun da kırılması mümkün ama biraz daha uğraştırıcı olacak. DLL sizin sözünü ettiğiniz alanı okuyup reklam silinip silinmemişmi anlayamazmı? Silinmiş ise yürütmeyi durdurabilir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ASPExpert

ok.
"NAG Screen" dediğim şey deneme sürüm olan bir componenti program içinde kullanmak istediğinde çıkan bir ekran vardır hani "14 günlük deneme sürümü." şeklinde. Bu ekrana nag screen denir. componentin ticari kullanımını engellemek için yapılır. Senin ihtiyacındaki gibi.. Bunu kaldırmak icinde genel olarak lisanslama kullanılır. Yada componentin retail versiyonları çıkartılır ki internetde dağıtılan versiyonlarıda genelde budur.  Basit bir seri numarası yada daha komplex 64 bitlik enc. edilmiş bir lisans dosyası ile bunu çözebilirsin.
Gelelim diğer soruna;

basit olarak basic de anlatayım.
ilk olarak bir formun var bu senin nag screen ini oluşturuyıor. Bunun adı form_1 olsun.
senin componentininde adı PicProje ve class adın da matematik olsun,

class Matematik   'class ı yarattım 
    Sub Main()     'bu class icin init 
        form1.visible=true   'nag screen i gösterdim
    End Sub
    Function Topla(sayi1...........
....
...
...
     End Function
End Class


Şimdi bu nezaman çalışacak? dersen

senin componentini componentini kullanacak olan adam kodunun içine mutlaka

Dim DeneCom as new PicProje.Matematik

yazmak zorundadır,
programı derleyip çalıştırdığında ise bu satıra gelince bizim componentimizin içinde yazdığımız "sub new" metodu çalışacak ve form_1 ekrana gelecektir. Bu durumda ekranın ortasında kocaman bi reklam olacak :)

*kodlar gerçekten böyle yazınca calışmaz. mantık doğru ama anlatmak için birçok detayı yazmadım.. sonra çalışmadı diye mahkemeye vermeyin  :P .
Gerçek ilerleme ilerici olmaktan degil, ilerliyor olmaktan meydana gelir... --------------------------------------- http://www.aspexpert.cjb.net http://blogs.wwwcoder.com/aspexpert

asm_Coder

bunalmış belki biliyorsundur ama ben yinede vereyim şu siteye bir bak ben buradan çok şey öğrendim.

www.delphiturk.com

üye olman gerekiyor.
y=f(x);

Erkan Gench

konu dışı olacak ama cozturk un gönderdiği yazıda bişey dikkatimi çekti

Alıntı YapExit and run the program, walla No More NAG Screen!!!

acaba yazan bir türkmü merak ettim.  :D belkide 'voila' yazmak istemiştir.  :)
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.

cozturk