Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Seriennummer erzeugen

Empfohlene Antworten

Veröffentlicht

Also, gleich zum Beginn ich möchte KEINEN Generator haben, damit ich irgendein Programm Cracken kann.

Mein Problem ist ehr umgekehrt, ich und mein Kollege entwickeln zur Zeit kleiner Tools für den PDA, diese sollen demnächst in die Pilotphase gehen.

Um das ganze zu schützen, möchten wir eine Seriennummer generieren. Nun bin ich auf der Such nach einen Passenden algorythmus, den wir evtl. anpassen können um damit unsere Nummer zu generieren.

Was auch super wäre, wenn jemand ein Adresse kennt, wo man sich einen freeware Seriennummer generator runterladen kann, um die ganze Logik besser zu verstehen(optimal wäre dann, wenn der Code in C bzw C++ wär, da wir beide in dieser Sprache fitter sind als in anderen)

Ich bin auch für jeden Link dankbar der mir bei den Thema weiterhilft.

P.S. Bin mer net sicher ob des in des Forum hier reinpasst wenn net bitte verschieben:OD

Moin erstmal! :)

Keine endgültige Lösung, aber man kann darauf aufbauen.

Doku habe ich leider nicht da, lag halt "as is" auf meiner Platte rum.

Jedem BN hat damit eine feste SN und umgekehrt ;)

Hoffe ich konnte euch damit helfen.

MFG

EAngel

// Binary 2 Text

#include <stdio.h>

#include <stdlib.h>

// byte structure for struct nbyte

{

int bit[8];

}nbyte;

int main(int argc, char *argv[])

{

FILE *f1,*f2;

int a,b,c,d,j,k,r,n[8];

struct nbyte bt[256];

struct nbyte tb[4];

j = 0;

for(n[0]=0;n[0]<=1;n[0]++)

for(n[1]=0;n[1]<=1;n[1]++)

for(n[2]=0;n[2]<=1;n[2]++)

for(n[3]=0;n[3]<=1;n[3]++)

for(n[4]=0;n[4]<=1;n[4]++)

for(n[5]=0;n[5]<=1;n[5]++)

for(n[6]=0;n[6]<=1;n[6]++)

for(n[7]=0;n[7]<=1;n[7]++)

{

for(k=0;k<8;k++)

bt[j].bit[k]=n[k];

j++;

}

if(argc < 2)

{

printf("Encode data to Text \n");

printf("Decode Text to data \n");

exit(0);

}

// argv 1 = in 2 = out

if(*(argv[1]+0) == 'e')

{

f1 = fopen( argv[2] , "rb" );

f2 = fopen(argv[3], "wb" );

if(f1 == 0 || f2 == 0) return 0;

while(!feof(f1))

{

a = fgetc(f1);

b = fgetc(f1);

c = fgetc(f1);

tb[0].bit[0] = 0;

tb[0].bit[1] = 0;

tb[0].bit[2] = bt[a].bit[0];

tb[0].bit[3] = bt[a].bit[1];

tb[0].bit[4] = bt[a].bit[2];

tb[0].bit[5] = bt[a].bit[3];

tb[0].bit[6] = bt[a].bit[4];

tb[0].bit[7] = bt[a].bit[5];

tb[1].bit[0] = 0;

tb[1].bit[1] = 0;

tb[1].bit[2] = bt[a].bit[6];

tb[1].bit[3] = bt[a].bit[7];

tb[1].bit[4] = bt.bit[0];

tb[1].bit[5] = bt.bit[1];

tb[1].bit[6] = bt.bit[2];

tb[1].bit[7] = bt.bit[3];

tb[2].bit[0] = 0;

tb[2].bit[1] = 0;

tb[2].bit[2] = bt.bit[4];

tb[2].bit[3] = bt.bit[5];

tb[2].bit[4] = bt.bit[6];

tb[2].bit[5] = bt.bit[7];

tb[2].bit[6] = bt[c].bit[0];

tb[2].bit[7] = bt[c].bit[1];

tb[3].bit[0] = 0;

tb[3].bit[1] = 0;

tb[3].bit[2] = bt[c].bit[2];

tb[3].bit[3] = bt[c].bit[3];

tb[3].bit[4] = bt[c].bit[4];

tb[3].bit[5] = bt[c].bit[5];

tb[3].bit[6] = bt[c].bit[6];

tb[3].bit[7] = bt[c].bit[7];

a = 0;

for(r=0;r<4;r++)

for(j=0;j<64;j++)

{

a = 0;

for(k=0;k<8;k++)

if(tb[r].bit[k] != bt[j].bit[k])a=1;

if(a == 0)

{

if(j >= 0 && j < 26 ) fprintf(f2,"%c",'A'+j);

if(j >= 26 && j < 52 )fprintf(f2,"%c",'a'+j-26);

if(j >= 52 && j < 62 )fprintf(f2,"%c",'0'+j-52);

if(j == 62 )fprintf(f2,"+");

if(j == 63 )fprintf(f2,"-");

// fprintf(f2,"%c",j);

}

}

}

fclose(f2);

fclose(f1);

}

if(*(argv[1]+0) == 'd')

{

f1 = fopen( argv[2] , "rb" );

f2 = fopen(argv[3], "wb" );

if(f1 == 0 || f2 == 0) return 0;

while(!feof(f1))

{

a = fgetc(f1);

b = fgetc(f1);

c = fgetc(f1);

d = fgetc(f1);

if(a >= 'A' && a <= 'Z') a = a-'A';

else if(a >= 'a' && a <= 'z') a = a-'a'+26;

else if(a >= '0' && a <= '9') a = a-'0'+52;

else if(a == '+') a = 62;

else if(a == '-') a = 63;

if(b >= 'A' && b <= 'Z') b = b-'A';

else if(b >= 'a' && b <= 'z') b = b-'a'+26;

else if(b >= '0' && b <= '9') b = b-'0'+52;

else if(b == '+') b = 62;

else if(b == '-') b = 63;

if(c >= 'A' && c <= 'Z') c = c-'A';

else if(c >= 'a' && c <= 'z') c = c-'a'+26;

else if(c >= '0' && c <= '9') c = c-'0'+52;

else if(c == '+') c = 62;

else if(c == '-') c = 63;

if(d >= 'A' && d <= 'Z') d = d-'A';

else if(d >= 'a' && d <= 'z') d = d-'a'+26;

else if(d >= '0' && d <= '9') d = d-'0'+52;

else if(d == '+') d = 62;

else if(d == '-') d = 63;

tb[0].bit[0] = bt[a].bit[2];

tb[0].bit[1] = bt[a].bit[3];

tb[0].bit[2] = bt[a].bit[4];

tb[0].bit[3] = bt[a].bit[5];

tb[0].bit[4] = bt[a].bit[6];

tb[0].bit[5] = bt[a].bit[7];

tb[0].bit[6] = bt.bit[2];

tb[0].bit[7] = bt.bit[3];

tb[1].bit[0] = bt.bit[4];

tb[1].bit[1] = bt.bit[5];

tb[1].bit[2] = bt.bit[6];

tb[1].bit[3] = bt.bit[7];

tb[1].bit[4] = bt[c].bit[2];

tb[1].bit[5] = bt[c].bit[3];

tb[1].bit[6] = bt[c].bit[4];

tb[1].bit[7] = bt[c].bit[5];

tb[2].bit[0] = bt[c].bit[6];

tb[2].bit[1] = bt[c].bit[7];

tb[2].bit[2] = bt[d].bit[2];

tb[2].bit[3] = bt[d].bit[3];

tb[2].bit[4] = bt[d].bit[4];

tb[2].bit[5] = bt[d].bit[5];

tb[2].bit[6] = bt[d].bit[6];

tb[2].bit[7] = bt[d].bit[7];

a = 0;

for(r=0;r<3;r++)

for(j=0;j<256;j++)

{

a = 0;

for(k=0;k<8;k++)

if(tb[r].bit[k] != bt[j].bit[k])a=1;

if(a == 0)

{

fprintf(f2,"%c",j);

}

}

}

fclose(f2);

fclose(f1);

}

return 0;

}

werd ich gleich mal ausprobieren:D :D

habe den Code soweit auch zum laufen gebracht....er ist leider nicht ganz das was ich gesucht habe, da das Programm zum Encodieren und Decodieren ausgelegt ist und nicht zum Erzeugen von Seriennummern.:(

Trotzdem danke, ich werd jetzt mal gucken ob ich den Code zumindest in Teilen oder Modifiziert anwenden kann.:cool:

Falls doch noch jemand irgendwelche interessantie infos hat, ich bin für alles offen:D :WD :OD

Hi

Soll das Programm auf jedem PDA laufen oder nur für einen bestimmten PDA registriert werden ?

Sollte es nach dem 2ten Schema verlaufen dann benutze doch die Palm-ID und mach irgend eine dumme Berechnung mit dieser ID :D

Erbeere

Also es ist so: Durch diese Funktion soll eine Seriennummer erzeugt werden. Diese soll abhängig sein von verschiedenen Parametern.......diese Seriennummer geben wir den kunden, wenn er sich das Programm kauft. Wenn dann das Programm auf den PDA aufgespielt wird, muss er diese Seriennummer eingeben, diese wird dann durch eine Routine von uns gegengechekt wenn ok = Programm läuft!

Serienummer unterschiedlich = Programm wird sofort beendent...

Da wir verschiedene spezifische Parameter eines jeden PDA's einbauen, soll so verhindert werden, das die software nicht einfach auf einen zweiten PDA aufgespielt werden kann

Es soll also praktisch als ein art kopierschutz funktionieren.

Das heisst aber auch, dass Der Kunde Euch bevor er die Seriennummer erhaelt kontaktieren muss, um sich zu registrieren und dabei einige Daten des PDAs von Euch abgefragt werden, die mit in die Seriennummer einfliessen? Ihr solltet dabei unbedingt bedenken, dass die "feste Kennung" von Windows CE nicht so fest ist, wie sie es gerne waere, da sie bei jedem Reset (wie er beispielsweise bei iPAQs gerne auftritt wenn diese zu lange ohne Strom sind) neu generiert wird.

Nic

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.