Aktivacia softweru   zodpovězená otázka

VB6/VBA

Vedel by mi niekdo poradit ako by som mohol spravit aktivaciu softweru.Nemusi to byt niejake zlozite ale aby kazdy uzivatel nemam ideticky kluc na aktivaciu.Dakujem

nahlásit spamnahlásit spam 0 odpovědětodpovědět

pouzivam Visual basic 6

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ve VB6 neuděláte nic. Nepodporuje věci jako RSA, XML a podobně, které jsou k tomu potřeba. Zahoďte tu relikvii a začněte dělat ve VB.NET.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tak ja som to nezahodil.Pohladal som na nete niejake prispevky a narazil som natoto + mala uprava moja.Precita to seriove cislo hdd a k tomu cislu by som potreboval pripocitat ,vydeli,kratit tak aby mi vyslo vecie cislo ktore by bolo pouzite pri registracii.Lenze moj problem nastane ked chcem k tomu cislu vobec nieco priratat.V takom pripade okno text3 je prazdne.Poradte ako s timto cislom pracovat?Cislo je v tvare

6E51066023D0C980

Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
Dim List, Msg, Object
   
   On Error Resume Next
   
   Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_LogicalDisk")
   For Each Object In List
      Msg = Msg & Object.VolumeSerialNumber & vbCrLf
     
   Next
    Text3.Text = CInt(Msg) + CInt(1000)
 
   End Sub


nahlásit spamnahlásit spam 0 odpovědětodpovědět

Takhle:

For Each Object In List

Msg = Msg & Object.VolumeSerialNumber

Next

Text3.Text = Trim(Msg)

No a cokoliv se za to bude přidávat musíte přidat jako řetězec, ne číslo , tedy Msg & "123456..."

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dakujem za radu ale moja predstava bola ze to napr vynasoby,vydeli,pripocita alebo odpocita.Toto riesenie len prida za moje cislo dalsie cisla.Co je 6E51066023D0C980123456

Text3.Text = Trim(Msg)& "123456"

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Algoritmy pre tvorbu a kontrolu aktivačného kľúča musia byť zložitejšie.Pre ľudí zaoberajúcich sa výrobou crackov a keygenov je vynasobiť,vydeliť,pripočítať,odpočítať a pod. hračka.Používa sa pritom skôr nejaká kryptografia. Napríklad taká debilina, že by sa zapísalo zadané meno a email vedľa seba, z toho SHA512 hash a jeho časťami by sa zašifrovalo ID užívateľa z centralizovanej databázy, kam dáte aj meno a email.Na šifrovanie by sa dalo využiť AES.Na výsledok Base64 a máte aktivačný kľúč.Kontrolou by bolo zase zahashovať meno a email, skúsiť na aktivačný kľúč opak Base64, dešifrovať hashom a porovnať výsledok, meno a email z údajmi v databázi.Ale je to čisto ukážka, pravdepodobne nejaká debilina, aj keď stále je to zložitejšie, ako to vaše násobenie, delenie, sčítavanie a odčítanie.

Base64 je v triede System.Convert , SHA512 a AES v namespace System.Security.Cryptography .

AES Kľúč a IV z SHA512 hashu môžete získať napríklad aj tak, že SHA512 hash má 64 bajtov, AES kľúč 32 bajtov a AES IV 16 bajtov, tak prvých 32 bajtov hashu bude kľúč a ďalších 16 bude IV.Zvyšných 16 nepoužijete na nič.

Ešte musíte vymyslieť, kde uložíte aktivačný kľúč.V žiadnom prípade sa nepokúšajte proste uložiť, že už je aktivované, pretože by to ktokoľvek mohol zmeniť.Uložte kľúč, meno a email na niekoľko miest(Register, zašifrované súbory a všetko ostatné, čo vás napadne.Hlavne tým súborom dávajte také mená, kde by ste nikdy ten kľúč nehľadali.). Pri každom jednom spustení vyberiete údaje zo všetkých miest, porovnáte, počkáte zopár sekund, ak niekde máte nezhodu, tak aplikáciu násilne ukončíte(napríklad chybovou hláškou "Data file is corrupted." preloženou do jazyka uživateľského rozhrania aplikácie).Ak sú všetky zhodné, urobíte kontrolu(popísaneé vyššie), opäťť počkáte pár sekund a v prípade neplatnej kombinácie opäť vyhodíte nejakú hlášku, ale takú, aby to nebolo podozrivé.

Nikomu neprezrádzajte vaše algoritmy, ani tomu, ktorý by vám mohol pomôcť odhaliť v ňom chyby a ani ľuďom, ktorým dôverujete.A oplatí sa pred vypustením aplikácie "na svet" ju poriadne obfuskovať.Dobrý obfuskátor dokáže také veci, že v Reflectore a iných podobných programoch bude namiesto názvu procedúr štvorec alebo bodka a že pri dekompilácii sa bude Reflector sťažovať na neplatné IL kódy a podobné veci, ktoré vedia veľmi sťažiť pokus o odhalenie algoritmu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dakujem za velku snahu vysvetlit ako chranit program.vytvaram aplikaciu pre auta opel a nechcem ju predavat.Chcem len niejaku malu ochranu.Viem ze ak to nebude poriadna ochrana tak to nemam vyznam ale naprogramovat niejaky zloziti algoritmus je nad moje schopnosty.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Znovu som zapatral na nete.nasiel som toto ale neviem prist nato ako to sprovoznit.vedel by mi niekdo pomoct a posalt na [email protected]

Public Function XORDecryption(CodeKey As String, DataIn As String) As String
    
    Dim lonDataPtr As Long
    Dim strDataOut As String
    Dim intXOrValue1 As Integer
    Dim intXOrValue2 As Integer
    

    For lonDataPtr = 1 To (Len(DataIn) / 2)
        'The first value to be XOr-ed comes from the data to be encrypted
        intXOrValue1 = Val("&H" & (Mid$(DataIn, (2 * lonDataPtr) - 1, 2)))
        'The second value comes from the code key
        intXOrValue2 = Asc(Mid$(CodeKey, ((lonDataPtr Mod Len(CodeKey)) + 1), 1))
        
        strDataOut = strDataOut + Chr(intXOrValue1 Xor intXOrValue2)
    Next lonDataPtr
   XORDecryption = strDataOut
End Function


Public Function XOREncryption(CodeKey As String, DataIn As String) As String
    
    Dim lonDataPtr As Long
    Dim strDataOut As String
    Dim temp As Integer
    Dim tempstring As String
    Dim intXOrValue1 As Integer
    Dim intXOrValue2 As Integer
    

    For lonDataPtr = 1 To Len(DataIn)
        'The first value to be XOr-ed comes from the data to be encrypted
        intXOrValue1 = Asc(Mid$(DataIn, lonDataPtr, 1))
        'The second value comes from the code key
        intXOrValue2 = Asc(Mid$(CodeKey, ((lonDataPtr Mod Len(CodeKey)) + 1), 1))
        
        temp = (intXOrValue1 Xor intXOrValue2)
        tempstring = Hex(temp)
        If Len(tempstring) = 1 Then tempstring = "0" & tempstring
        
        strDataOut = strDataOut + tempstring
    Next lonDataPtr
   XOREncryption = strDataOut
End Function

'USAGE
'Private Sub cmdEncryptdecrypt_Click()
'    Dim strCodeKey As String
'    strCodeKey = InputBox("Please enter your password", "XOr Encryption")
'    txtSource.Text = XOREncryption(strCodeKey, txtSource.Text)
'End Sub
'
'Private Sub cmdDecryptdecrypt_Click()
'    Dim strCodeKey As String
'    strCodeKey = InputBox("Please enter your password", "XOr Decryption")
'    txtSource.Text = XORDecryption(strCodeKey, txtSource.Text)
'End Sub

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Skúsil by som namiesto Mid$ dať Mid a tiež namiesto Next lonDataPtr dať iba Next.Vo VB 6 som nerobil, takže možno to tak má byť, ale čítal som o Visual Basicu knihu.

A ešte čo to znamená sprovoznit? Neviete použitie tých funkcií, hádže vám to chyby pri preklade resp. za behu ? Musíte to konkretizovať, inak sa vám nedá pomôcť.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud je to aplikace pro větší firmu, tak bych se nebál koupit na tohle již nějakou hotovou knihovnu třetí strany. Její autoři velmi pravděpodobně strávili spoustu času vymýšlením, jak na to, mají to otestované a funkční.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback