sha256 Test pro ZahnOK für neuronales Netzwerk

Liebe Kolleginnen und Kollegen.
Ich habe meine alten Reverse-Samples gefunden, leider nicht die neueste Version.

Ich erinnere mich nicht sehr genau an alle Details. Das Experiment wurde 2012 durchgeführt, aber wenn sie in den Code eingraben, werden sie deutlicher angezeigt.

Warnung: Weiterer Code wird aus dem Kontext genommen, eine Beschreibung seiner Funktionsweise wird aus dem Speicher erstellt und kann Fehler enthalten. Er wird nur zu Bildungszwecken bereitgestellt.


Auf diese Weise wurden die Daten für das Training und Testen des neuronalen Netzwerks vorbereitet. Zunächst wurden Zeichenfolgen dieser Art generiert, die das gewünschte Ergebnis darstellen:

spins : 0; server code word : 74b0dc5166334873643c9869327b23c6 spins : 1; server code word : 46e87ccd238e1f29625558ec2ae8944a spins : 2; server code word : 79e2a9e341b71efb2eb141f2507ed7ab spins : 3; server code word : 4db127f8122008545bd062c2515f007c spins : 4; server code word : 140e0f7666ef438d1190cde71f16e9e8 


Dann stellte sich so etwas als Hashes heraus, um das neuronale Netzwerk zu trainieren.

 FILE *fp; sha256_context stx; int ss,zz,yy,ii,jj,zzi; unsigned long int pdata; fp = fopen("data_src", "rb"); if(!fp) return 1; // bail out if file not found while(fgets(str,sizeof(str),fp) != NULL) { zz=0; // strip trailing '\n' if it exists int len = strlen(str)-1; if(str[len] == '\n') str[len] = 0; sha256_starts( &stx ); sha256_update( &stx, (uint8 *) str, strlen( str ) ); sha256_finish( &stx, sha256sum ); zz=stx.zzz; 

Was der Ausgabe ungefähr Folgendes gab:

 d34453f3c04552ee19cb6734ab71ad124710cfc98401570f73f65cb8cfa2a64d 6cc8ca5b918d1a22d5141494ad08b76a6c67cd5f649744f80d2fad4916b2b6d9 f89e9fd9609099b22924a77a5c8122c06118608c4287fca1cdafe5827249bce7 35280fd1e2289488828004682679452a070ccd90c12072fcb904529ab18e3f9d 1112c4cffb617c835874446f13c4d7d29fa091ba7ac996b776998f89dedffcc1 02e0521aae2d4ecdeb4482bda545bb222e1280ec1f580d5d23e29fb719252f70 

Dann entfaltete sich das alles Stück für Stück:

 // printf("\n\n\nSUM="); //    sha256   printf ("%d 512 512",zz); zf(str1); for( j = 0; j < 32; j++ ) { sprintf(str1,"%s%s",str1, ui2bin(sha256sum[j])); } //   512  while(strlen(str1)<512) { sprintf(str1,"%s%s",str1,"0"); } //printf("%s\n",str1); jj=0; ii=0; //    sha256     while(str2[jj]=str1[ii]) { ii++; jj=jj+2; str2[jj-1]=*" "; } printf("%s",str2); // str2 -  sha2    // printf("\n"); // 

Das Ergebnis der Arbeit in solchen:

 855 1408 1408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...] 

Dateien wurden als Trainings- und Testprobe in das neuronale Netzwerk eingespeist.
nutzte die FANN-Bibliothek, probierte verschiedene Neuronen aus.
Das Ergebnis war sicherlich, war aber gemischt. Der ursprüngliche Text konnte nicht vollständig wiederhergestellt werden.
Manchmal rutschten jedoch Fragmente eines Teils der Linien ziemlich genau restauriert durch.
Ich denke, dieses Problem hat eine Lösung, nur um es zu finden, müssen Sie sich noch anstrengen.
Beispielsweise ist es sinnvoll, während des Trainings alle internen Variablen des Hashing-Algorithmus dem Netzwerkeingang zuzuführen. Es ist auch sinnvoll, wettbewerbsfähige Netzwerke einzurichten und einem anderen Netzwerk beizubringen, das Ergebnis der Konsultation zu erkennen.
Diese merkwürdigen Experimente können jetzt viel einfacher als 2012 durchgeführt werden.
Mit dem Aufkommen von Tools wie Python mit Tensorflow, sklearn numpy, scipy und einer Repository-Schatzkammer ist all dies viel einfacher zu überprüfen.

Source: https://habr.com/ru/post/de423839/


All Articles