Gibt es Revese Engeneers die aus Source Code mit sehr wenigen Kommentaren aber kompletter Hardware-Dokumentation eine komplette Dokumentation erstellen können, also zu jeder Zeile Code (mit einer Anweisung) angeben können wofür die ist? Ich meine das geht zumindest ab einigen hundert Anweisungen (und insbesondere über 100 Funktionen) nicht mehr, weil das hinter dem Code stehende Konzept meist nicht erkennbar ist, aber dafür habe ich keinen formalen Beweis und vielleicht gibt's ja auch andere Meinungen.
Das geht schon bei einer einzigen Zeile nicht. Oder kannst Du Gedanken lesen, was der ürsprüngiche Entwickler sich dabei gedacht hat ? Entweder der Entwickler kommentiert direkt beim Schreiben des Programms oder es wird nie passieren. Das ist auch der Grund, warum Software beim Weiterentwickeln tonnenweise alte Leichen enthält oder komplett neugeschrieben wird. Hier mal ein Beispiel: add a, #90h da a addc a, #40h da a Wenn Du rauskriegst, wozu das gut ist, bist Du ein Genie. Peter
Ok,ich habe mir sowas schon bei den Programmen vom IOCCC gedacht, aber es wäre ja prinzipiell möglich, das es Genies gibt, die ein IOCCC-Programm ( http://www.ioccc.org/ ) wie #include <stdio.h> #include <math.h> double l;main(_,o,O){return putchar((_--+22&&_+44&&main(_,-43,_),_&&o)?(main(-43,++o,O),((l=(o+21)/s qrt(3-O*22-O*O),l*l<4&&(fabs(((time(0)-607728)%2551443)/405859.-4.7+acos (l/2))<1.57))[" #"])):10);} ganz einfach finden und sofort den Output hinschreiben können. Mit Hardware ist es schwieriger, aber wenn man die auswendig kennt, wäre das ja kaum komplizierter.
@peter Bitte nicht so einfach Beispiele wie lower 4 Bit to ASCII.
hi peter, sagt dir softice was? damit kann man ganz toll windows programme debuggen und hacken. was sich der programmierer dabei gedacht hat ist mir egal..hauptsache ich verstehe den code..also sag nicht das geht nicht.
Hi BAB, zwischen Hacken und Verstehen ist ein himmelweiter Unterschied. Ein Hacker analysiert nur einen kleinen Teil oder modifiziert was und beobachtet, was sich anders verhält. Er kratzt sozusagen nur an der Oberfläche und dringt nicht in die Tiefe vor. Bis Du das Programm wirklich in allen Details verstanden hast, benötigst Du weitaus mehr Zeit, als wenn Du es komplett neu geschrieben hättest. Reengineering lohnt sich nur, um geheime Algorithmen anderer zu extrahieren. Selbst, wenn man eigenen Code nach Jahren wieder betrachtet, braucht man einige Zeit, um ihn wieder zu verstehen. Oftmals kommen einem dann einige Anweisungen überflüssig vor oder scheinen zu fehlen, dem ist aber nicht so. Peter
Jep, geht mir auch so... Wenn ich mal alten Code nach einem Jahr oder so wieder rauskrame, bin ich auch immer ganz baff, welches Genie da am Arbeiten war... Spaß beiseite: Man macht sich zum Zeitpunkt der Programmentwicklung so seine Gedanken, wie die Aufgabe optimal zu lösen ist. Neben Standard-0815-Geschichten wie z.B. RS232 gibt es dann eben auch komplizierte Gedankengänge, die einige Zeit in der Ideenschmiede "gereift" sind (mir kommen die besten Ideen aufm Klo). Einen Code Zeile für Zeile zu übersetzen, das ist von einem Disassembler noch zu leisten. Aber dann entsprechende Kommentare... Es besteht schon ein Unterschied, ob da steht "Ausgabe von R16 auf PORTD" oder "Gib das Ergebnis der Prüfsummenberechnung auf PORTD aus". Dieser Unterschied ist für einen Disassembler mit Sicherheit nicht erkennbar.
Tja, ich habe das Prooblem nun ein Projekt mit über 100 Funktionen und nur sehr wenig Dokumentation zu haben, und muss auch zum Debugen nachvollziehen was wo passiert. Also muss der Autor noch verraten wie er es gemacht hat. Das viele Optimierungen drinn sind, ist zwar zu erkennen, aber welche Konzepte/Modelle verwendet wurden sieht man man Source Code leider nicht an.
@BAB und Peter: tut zwar eigentlich nichts zur Sache, aber zwischen Hacken und Cracken gibts auch nen kleinen Unterschied :)
ich meine ja nur das es im prinzip möglich wäre... ich sagte ja auch wenn du GANZ VIEL zeit hast..:D
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.