- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Anfänger Frage: Realisation eines Software-Dongles

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    17.02.2007
    Ort
    Duisburg
    Alter
    58
    Beiträge
    7

    Anfänger Frage: Realisation eines Software-Dongles

    Anzeige

    Powerstation Test
    Hallo,
    ersteinmal muß ich dieses Forum loben =D>

    Da ich in Punkto Bascom AVR noch blutiger Anfänger bin, benötige ich eine kleine Starthilfe!

    Zu meiner Problem:
    Da ich mich mehr im Software-Bereich bewege und Visual Basic mein Steckenpferd ist, Suche ich eine einfache Möglichkeit meine Software über ein Dongle an der seriellen Schnittstelle zu schützen. Hardwaretechnisch soll ein ATtiny2313 über einen MAX232 mit der seriellen Schnittstelle verbunden werden. Der ATtiny soll das vom PC gesendete Zeichen lesen, intern aus einer Tabelle diesem Zeichen einen anderen Wert zuordnen und diesen dann wieder zum PC zurückschicken. Die SW kennt die selbe Tabelle und schaltet alle Funktionen frei.

    Hab zwar mit Bascom AVR schon "rumgespielt" aber irgendwie kom ich noch nicht mit allen Funktionen klar....

    Über jede hilfreich Antwort oder einem Beispiel würde ich mich sehr freun'

    Gruß
    Ralf

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.09.2006
    Alter
    34
    Beiträge
    841
    Blog-Einträge
    1
    hi ich bin zwar auch noch ein relativer anfänger aber ich denke ich kann zumindest ein paar theoretische denkanstöße geben....

    aber erst musst du ein paar infos geben zb unter welchen betriebssystem läuft dein VB programm? da man unter xp anscheinen nicht mehr sauber daten über die schnittstellen schicken kann( das multitasking system funkt dazwischen....)

    ich würde als grund prinzip folgendes nehmen:

    einfach:

    der pc also das VB programm sendet ein bestimmtes signal über die verschiedenen anschlüsse der schnittstelle....der µC erkennt diese und sendet ein anderes signal zurück. dein VB programm erkennt diese folge und weiß "ich darf hier laufen"

    zb: du hast 3 leitungen zum senden und die erste ist 3 sek an die 2. nach 1 sek. eine sek lang an und die 3. leitung geht aller halbe sekunde an und aus....

    nachteil: lässt sich einfach aufzeichen und knacken

    schwer(zumindest für meine begriffe):

    du entwickelst einen algorythmus uns sendest jedes mal eine zahl verschlüsselt über die 3 leitungen ......der µC sendet eine verschlüsselte zahl zurück und dein programm weiß "ich bin echt und darf laufen"

    zb: programm sendet eine zahl ......der µC kann die daten entschlüsseln und kann zb die zahl "x5" rechnen und diese zurücksenden ....dein programm rechnet diese zahl nun zurück auf die ursprungszahl vergleicht beid und wenn sie gleich sind läuft alles.....(ist ein sehr einfaches beispiel wie ichs machen würde....

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    a man unter xp anscheinen nicht mehr sauber daten über die schnittstellen schicken kann
    Klar kann man auch unter XP sauber auf die serielle Schnittstelle zugreifen. Was nicht geht ist direkt Hardwaremäßig auf die RS232 zuzugreifen, aber über diverse Apis geht das Softwaremäßig wunderbar.

    @MALIBOO
    Wo hängt es in Bascom. Werte empfangen über die serielle oder mit der Tabelle?

    Schaue dir mal die LookUp-Funktion an.

    MfG

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    17.02.2007
    Ort
    Duisburg
    Alter
    58
    Beiträge
    7
    hmm...
    also die Daten mit VB auf XP stellen kein Problem dar. Alles was ich sende kommt auch an. Sonst soll es ganz einfach geh'n.
    Daten rein -> umwandeln -> Daten zurück an PC.
    Was ich wissen möchte, könnte man nicht das Beispiel aus Bascom serin_out.bas entsprechend abändern?

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.09.2006
    Alter
    34
    Beiträge
    841
    Blog-Einträge
    1
    bei xp gibt es aber das problem, dass das betriebssystem manschmal die übertragung unterbricht...selbst was sendet( zb überprüft ob ein drucke an der schnittstelle hängt) und dann weitersendet.....das stört den ganen datenverkehr...

    serin_out.bas???
    poste das bitte noch mal in einem code fenster....(den code selbst)

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    37
    Beiträge
    674
    bei xp gibt es aber das problem, dass das betriebssystem manschmal die übertragung unterbricht...selbst was sendet( zb überprüft ob ein drucke an der schnittstelle hängt) und dann weitersendet.....das stört den ganen datenverkehr...
    Bist du dir da sicher? Ich hab davon noch nie was gehört und noch nie Probleme damit gehabt. Gibt es Drucker für die serielle Schnittstelle? Ich hab bisher nur welche für den Parallelport und halt das moderne Zeugs wie USB gesehen.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    17.02.2007
    Ort
    Duisburg
    Alter
    58
    Beiträge
    7
    Ich hab's etwas abgeändert, nur, das hier die gesendeten Daten nicht verändert werden.

    Code:
    ' 10MHz Quarz
    $crystal = 10000000
    
    $regfile = "ATtiny2313.dat"
    
    'Variable
    Dim S As String * 10
    Dim Mybaud As Long
    
    Mybaud = 9600
    
    Do
      'Daten empfangen
      Serin S , 0 , D , 2 , Mybaud , 1 , 8 , 1
    
      'Daten senden
      Serout S , 0 , D , 3 , Mybaud , 1 , 8 , 1
    
      Wait 1
    Loop
    
    End
    Geht das vom Prinzip?

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    @dremler
    Wenn ich die Schnittstelle mit meinem Programm geöffnet habe kann da kein anderes Programm (auch ned XP) was machen.


    @MALIBOO
    das Dta müßte dann natürlich größer werden
    Code:
    If Ucsra.rxc = 1 Then                                     'Falls ein Byte im UART-Puffer...
      Empfang = Udr                                            'Byte einlesen
      Senden = Lookup(Empfang , Dta)                 'Byte zum Senden aus Tabelle lesen
    Udr=Senden
    
                                                     
    End If
    
    Dta:
    
    Data 1 , 2 , 3 , 4 , 5

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    37
    Beiträge
    674
    Ist diese Variante mit einer look-Tabelle nicht ziemlich unsicher? Den Datenverkehr kann man ja einfach abhören und dann müsste man das Programm nur oft genug senden lassen, sodass man möglichst alle Schlüsselpaare bekommt und schon kann man den dongle nachbauen.
    Allerdings weiß ich nicht, wie realistisch das Szenario ist. Wie oft würde der dongle zum Einsatz kommen? Bei jedem Programmstart? Wie viele Schlüsselpaare willst du verwenden?

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    17.02.2007
    Ort
    Duisburg
    Alter
    58
    Beiträge
    7
    Der Dongle soll kein 100% Schutz sein. Sicher kann man den ausspionieren, aber so interessant sind die Programme dann auch wieder nicht, das sich der Aufwand lohnt. Der Dongle soll nur billig zu realisieren sein.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test