Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Werbung & Co » Kleine Änderung benötigt

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
14.01.2008, 00:00 Uhr
AndreasQ



Hallo,

Ich habe keine Ahnung von C++ und bräuchte eine kleine Änderunge (eine zusätzliche Schleife) in einem Open Source-Programm. Es läuft unter Windows (Visual Studio 2005). Alternativ ist es auch mit Linux möglich, dann muss das Programm aber einen zusätzlichen Befehl bekommen (Variable mit dem Inhalt einer Datei füllen).

Ich kann das natürlich bezahlen. Wer kann das machen?

Kontaktaufnahme am liebsten über kontakt06 [at] liegerad-fernweh.de mit dem Wort "Kontakt" im Betreff.

Danke
Andreas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.01.2008, 01:07 Uhr
0xdeadbeef
Gott
(Operator)


-->

Um welches Programm geht es, und welche zusätzliche Funktionalität brauchst du?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.01.2008, 01:50 Uhr
AndreasQ



Hallo,


Zitat von 0xdeadbeef:
Um welches Programm geht es, und welche zusätzliche Funktionalität brauchst du?


Es geht um Truecrypt. Jedes Truecrypt-Volume hat einen 512 Byte großen Header. Eine wild gewordene Software hat mir in diesem Header 4 Bytes verstellt (an Position 01B8 bis 01BB). Dadurch kann Truecrypt das Volume nicht mehr mounten.

Ich möchte nun eine Änderung im Quelltext, dass Truecrypt alle möglichen Varianten (also 00000000 bis FFFFFFFF) an dieser Position durchprobiert, bis das Volume erfolgreich gemountet werden kann. Meiner Meinung nach müsste dies ein moderner PC innerhalb einiger Stunden schaffen.

Anschließend brauche ich noch diese vier Bytes (im Meldungsfenster oder in einer Log-Datei), damit ich den Header reparieren kann.


Gruß
Andreas

Dieser Post wurde am 14.01.2008 um 01:51 Uhr von AndreasQ editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.01.2008, 02:42 Uhr
0xdeadbeef
Gott
(Operator)


Eh, das sind immerhin knapp 4.3 Milliarden Kombinationen. Wenn ich mal schätze, dass der 10 Entschlüsselungsversuche pro Sekunde schafft, dauert das 13 Jahre und etwa 7 Monate, bis du alle durch hast. Möglicherweise weniger, wenn du einen schnellen Rechner hast, aber mit ein paar Stunden kommst du da keinesfalls hin.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 14.01.2008 um 02:44 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.01.2008, 02:47 Uhr
AndreasQ



Hallo,


Zitat von 0xdeadbeef:
Eh, das sind immerhin knapp 4.3 Milliarden Kombinationen. Wenn ich mal schätze, dass der 10 Entschlüsselungsversuche pro Sekunde schafft


Das müsste man sehen, wie schnell das wirklich ist.

Gruß
Andreas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.01.2008, 02:49 Uhr
0xdeadbeef
Gott
(Operator)


*schulterzuck* Lass es 50 sein, und da wird's nun richtig unrealistisch, dann dauert das immer noch an die drei Jahre. Lass jemanden eine geniale Abkürzung finden, die's auf 100 drückt - und dafür suchst du einen Mathematiker, der erst mal ein paar Jahre forschen müsste - dann sind's immer noch anderthalb. Lass es 1000 sein - in einer Fantasiewelt, oder in etwa 20 Jahren - und der Rechner ist immer noch 2 Monate beschäftigt. Es ist stumpf und einfach nicht realistisch.

Das ist ja der Trick an Kryptographie; den Code zu knacken ist verdammt zeitaufwändig. Ich vermute eher, dass meine Schätzung von 10 pro Sekunde noch deutlich zu hoch ist.

Im Übrigen stell ich grad fest, dass die von dir verstellten Bytes mitten in den Master-Keys liegen, das heißt, neben der Veränderung des Schlüssels musst du noch einen Weg finden, überhaupt herauszufinden, dass die Partition richtig entschlüsselt wurde.

Nachtrag:

Möööglicherweise, abhängig davon, wo dein master key genau liegt, schlägt vielleicht nur die Überprüfung der CRC32-Prüfsumme des Schlüsselbereichs fehl, und eigentlich ist der Bereich, der betroffen ist, garnicht wichtig. In dem Fall könntest du versuchen, die Bytes 72-76 des Headers mit der CRC32-Prüfsumme der Bytes 256-511 zu überschreiben, siehe auch www.truecrypt.org/docs/ unter Technical Details -> Volume Format Spec. Du solltest aber, bevor du das tust, mindestens eine Sicherheitskopie des Headers, besser des gesamten Volumes anlegen.

Unter Linux kommst du an den entsprechenden Teil mit

Code:
dd bs=256 skip=1 count=1 if=dein_entschluesselter_volume_header.dat of=masterkeys.dat


Dann mit cksfv oder so die crc32-Prüfsumme ausrechnen, binär in eine Datei schreiben und per

Code:
dd bs=4 seek=1 count=1 if=binaere_pruefsumme.dat of=dein_entschluesselter_volume_header.dat


...und dann mal zu mounten versuchen. Ich übernehme aber keine Garantie für garnichts, also nimm das mit der Sicherheitskopie ernst.

Alternativ könntest du versuchen, in Common/Volumes.c die Zeilen 156-158:

C++:
// Check CRC of the key set
if (mgetLong (input) != crc32 (header + HEADER_DISKKEY, DISKKEY_SIZE))
    continue;


auszukommentieren, das ganze zu kompilieren und zu kucken, ob du so an deine Daten kommst; dann würde ich sie aber sofort auf ein neues truecrypt-Volume übertragen und wieder die richtige Version benutzen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 14.01.2008 um 03:29 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.01.2008, 03:38 Uhr
AndreasQ



Hallo,


Zitat von 0xdeadbeef:
Im Übrigen stell ich grad fest, dass die von dir verstellten Bytes mitten in den Master-Keys liegen, das heißt, neben der Veränderung des Schlüssels musst du noch einen Weg finden, überhaupt herauszufinden, dass die Partition richtig entschlüsselt wurde.


Ja. Als Indiz nehme ich einfach, dass der Laufwerksbuchstabe "ansprechbar" ist. Meiner Meinung nach dürfte nur das richtige Entschlüsseln dazu führen, dass ein Dateisystem erkennbar wird.


Zitat von 0xdeadbeef:
Möööglicherweise, abhängig davon, wo dein master key genau liegt, schlägt vielleicht nur die Überprüfung der CRC32-Prüfsumme des Schlüsselbereichs fehl, und eigentlich ist der Bereich, der betroffen ist, garnicht wichtig. In dem Fall könntest du versuchen, die Bytes 72-76 des Headers mit der CRC32-Prüfsumme der Bytes 256-511 zu überschreiben


Das wird nicht klappen, denn in 72-76 steht die Prüfsumme der ENTSCHLÜSSELTEN Bytes 256-511. Die müsste ich erstmal bekommen, das wird mir ohne Änderungen im Quellcode nicht gelingen. Oder mache ich einen Denkfehler?


Zitat von 0xdeadbeef:
Alternativ könntest du versuchen, in Common/Volumes.c die Zeilen 156-158:

C++:
// Check CRC of the key set
if (mgetLong (input) != crc32 (header + HEADER_DISKKEY, DISKKEY_SIZE))
    continue;


auszukommentieren.


Das ist sicherlich ein Versuch wert! Leider gelingt mir das kompilieren nicht, es treten immer Fehler auf. Insbesondere werden Dateien nicht gefunden. Bei den meisten konnte ich das durch das Erweitern der include-Verzeichnise in den Optionen von Visual Studio beheben. Aber manche Dateien sind tatsächlich nicht auf dem Rechner. Ich muss dazu sagen, dass ich vor ein paar Tagen zum ersten Mal Visual Studio überhaupt installiert habe, ich kenne mich damit leider gar nicht aus, und mit C++ auch nicht.

Gruß
Andreas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
14.01.2008, 03:47 Uhr
0xdeadbeef
Gott
(Operator)


Es liegt eine Readme.txt im Hauptverzeichnis der Quellcode-Distribution, da steht drin, wie man den Compiler dazu kriegt, das zu kompilieren. Und was man dazu braucht.

Um die Bytes 256-511 zu entschlüsseln, brauchst du lediglich dein Passwort und das Salt in den ersten 64 bytes, und du sagst ja, das sei noch intakt.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
14.01.2008, 17:58 Uhr
AndreasQ



Hallo,


Zitat von 0xdeadbeef:
Es liegt eine Readme.txt im Hauptverzeichnis der Quellcode-Distribution, da steht drin, wie man den Compiler dazu kriegt, das zu kompilieren. Und was man dazu braucht.


So, ich habe jetzt mehrere Stunden damit verbracht, das Zeug ans Laufen zu bekommen.

Momentan hänge ich den der fehlenden Datei:
Code:
atlcomcli.h
. Irgendwo habe ich ergoogelt, dass Visual Studio 2005 Express dies nicht unterstützen soll. Jetzt bin ich ratlos. Was kann ich tun?

Es sind ja nur zwei Schrägstriche, die in den Code müssen..



Zitat von 0xdeadbeef:
Um die Bytes 256-511 zu entschlüsseln, brauchst du lediglich dein Passwort und das Salt in den ersten 64 bytes, und du sagst ja, das sei noch intakt.


Ja, ist es. Aber solange der schei...-Compiler nicht richtig läuft, geht gar nichts. Deswegen suche ich ja jemanden mit Erfahrung und Ahnung, der könnte das viel viel schneller machen als ich.

Gruß
Andreas

Dieser Post wurde am 14.01.2008 um 18:06 Uhr von AndreasQ editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
14.01.2008, 19:15 Uhr
0xdeadbeef
Gott
(Operator)


Jaaa, ne, mit Visual Studio Express kommste da nicht weit, da sind die entsprechenden Bibliotheken nicht dabei. Microsoft braucht ja noch irgendeinen Ansporn für die Leute, VS zu kaufen...

Versuch's mal auf deinem Linux-System, da sind die benötigten Bibliotheken alle frei verfügbar.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Werbung & Co ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: