Forum: Mikrocontroller und Digitale Elektronik Dokumentation mit Revese Engeneering?


von nobody0 (Gast)


Lesenswert?

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.

von BAB (Gast)


Lesenswert?

musst nur genug zeit und ahnung haben dann geht alles...

von Peter D. (peda)


Lesenswert?

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

von nobody0 (Gast)


Lesenswert?

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.

von mikki merten (Gast)


Lesenswert?

@peter
Bitte nicht so einfach Beispiele
wie lower 4 Bit to ASCII.

von BAB (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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

von thkaiser (Gast)


Lesenswert?

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.

von nobody0 (Gast)


Lesenswert?

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.

von Rainer (Gast)


Lesenswert?

@BAB und Peter: tut zwar eigentlich nichts zur Sache, aber zwischen 
Hacken und Cracken gibts auch nen kleinen Unterschied :)

von BAB (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.