Forum: Mikrocontroller und Digitale Elektronik [Projekt] Online Disassembler


von Maxx (Gast)


Lesenswert?

Hi,

in meinem kleinen Projekt bin ich mittlerweile soweit, dass ich die 
ersten Besucher drauf los lassen kann. Es handelt sich um einen online 
Disassembler.

Zur Zeit werden nur 3 processing Cores unterstützt, jedoch ist geplant 
das zu erweitern.

Dies sind im Moment
- 8080
- MCS-51 (8051,8052, etc)
- z80

Geplant sind PIC, AVR, 8086, ARM, thumb(2) da diese aber teils deutlich 
komplexer sind, steht deren Umsetzung noch aus.

Ihr findet das Projekt unter 
http://desperate-programmers.com/online-disassembler/

Über Feedback freue ich mich.

von Besserwisser (Gast)


Lesenswert?

Hmm, mein erster, intuitiver Versuch klappte prima. Selbst der Z80 DJNZ 
Befehl ( Opcode 0x10 ) wurde richtig verarbeitet und das passende 
Sprunglabel erzeugt. Also erstmal, prima Idee !

von Maxx (Gast)


Lesenswert?

Danke dir :-)

Gerade habe ich in meiner lokalen Installation den AVR abgeschlossen. 
Ein paar Fehler sind sicher noch drin, da es doch ein paar 
Argumentformate in den Opcodes gibt. Ein paar Tests und dann kommt er 
auf der öffentlichen Version dazu :-)

Dabei könnte ich ein wenig Hilfe gebrauchen. Im Moment teste ich anhand 
von ein paar kleinen .hex Files. Die beinhalten nur einen kleinen 
Bruchteil der Opcodes.

Da ich selber bei ARM zuhause bin, würde ich mich freuen, wenn jemand .s 
und .hex files zum Testen und evtl. als Demo für den Disassembler zur 
Verfügung stellen könnte. Gerne auch für die anderen Kerne. Fremde 
Quellen will ich wegen Copyrights nicht nutzen.

von Axel S. (a-za-z0-9)


Lesenswert?

Moin Maxx (Gast),

Maxx schrieb:

> in meinem kleinen Projekt bin ich mittlerweile soweit, dass ich die
> ersten Besucher drauf los lassen kann. Es handelt sich um einen online
> Disassembler.

Ich möchte dir ja deinen Enthusiasmus nicht rauben, aber warum glaubst 
du daß die Welt einen Online Disassembler braucht? Ich meine, 
Disassembler schon, klar. Aber online?

Damit man den Code auch schön in der Welt herumschickt?

Oder baust du ein privates Repository an legacy code auf? }:-)

> Zur Zeit werden nur 3 processing Cores unterstützt

> - 8080
> - MCS-51 (8051,8052, etc)
> - z80

Ja, toll. Genau das, wo es schon je geschätzt hundert 
Offline-Disassembler für gibt.


XL

von Thomas (Gast)


Lesenswert?

> aber warum glaubst du daß die Welt einen Online Disassembler braucht?
Glaubt er das?

> Aber online?
Cloud..., Web 2.0...

> Ja, toll.
Finde ich auch.

> Genau das, wo es schon je geschätzt hundert Offline-Disassembler für gibt.
Ja, aber nur einen Online-Disassembler.

von Hmm (Gast)


Lesenswert?

Egal ob das nun schick ist oder nicht: Ich schicke meinen Code nicht in 
der Welt herum. Im übrigen schreibe ich mir auch meine Disassembler 
selbst. So ein Hexenwerk ist das nun auch nicht.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Hallo Maxx,

ich bin begeistert von Deinem Projekt! Und gleichzeitig darüber 
erschrocken, dass ich nach rund zwanzig Jahren Z80-Abstinenz immer noch 
im Kopf assemblieren kann. Auch die Pinbelegung des Z80 geht mir nicht 
aus dem Kopf.

Leider musste ich feststellen, dass 0xD3 nicht korrekt disassembliert 
wird, d.h. das immediate-Argument für OUT (xx), A fehlt.

von Martin N. (kaktus2)


Lesenswert?

Axel Schwenke schrieb:
> Ja, toll. Genau das, wo es schon je geschätzt hundert
> Offline-Disassembler für gibt.

Axel, du vergisst aber den Sinn einer Onlineplattform! Mittlerweile 
haben wir alle so viele verschiedene Systeme (Mac, Windows, Linux, 
Chromium, Android und was sonst noch kommt) und für jedes brauchen wir 
einen anderen "Offline"-Dissambler wie du sagst... das ist doch Scheisse 
wenn dann auch noch jeder Dissambler eine andere Umgebung hat oder 
anders funktioniert. HTML ist doch gerade das Bindeglied zu allen 
Systemen und es wird einheitlich auch auf allen System auf Anhieb 
unterstützt.

Ich finde das Projekt super und befürworte Projekte die sich auf Cloud- 
oder HTML5-Applikationen richten

von ich (Gast)


Lesenswert?

Ich hab gerade mal einen kleinen Test gemacht:

0000h:            label_100:
       21ffff       ld hl, ffffh
0003h: cd0001       call label_100

Er lokalisiert das label_100 auf die Adresse 0000h.
Der Call auf die 0100h geht dann auf das label_100, und nicht, wie es 
sein soll, auf die Adresse 0100h.

Noch eine kleine Spielerei:

0000h:            label_2000:
       213412       ld hl, 1234h
0003h: cd0040       call label_4000
0006h: c30020       jp label_2000

Hier macht er den Call auf das label_4000, was gar nicht existiert.
Der Jump geht dann auf das label_2000, welches aber wieder auf 0000h 
liegt.

Weiter hab ich noch nicht probiert. Ich denke, das ist erstmal nur ein 
Problem mit dem Setzen der Labels.

Ich finde die Idee gut, mach das ruhig weiter. Es wird immer Leute 
geben, die anderer Meinung sind. Aber es gibt auch genug, die dafür 
sind.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Nächster Fehler:

Erfolgt ein Sprung an eine Adresse, die mitten in einem Mehrbyte-Befehl 
liegt, wird kein Label erzeugt.

von Thomas (Gast)


Lesenswert?

> Ich schicke meinen Code nicht in der Welt herum.
Mal abgesehen davon, dass du paranoid bist wäre das auch gar nicht 
erforderlich, sofern der Disassembler in JavaScript implementiert ist.

von Tim  . (cpldcpu)


Lesenswert?

Super Sache! Ich freue mich schon auf die AVR und ARM Variante, denn mit 
den bisher unterstüzten Prozessoren kann ich nicht viel anfangen.

Bezüglich der Nörger - schaut Euch mal diese Seite an:

http://www.onlinedisassembler.com/odaweb/

So kann das aussehen, wenn es fertig ist. Finde ich ziemlich schick.

von ich (Gast)


Lesenswert?

Tim .  schrieb:
>
> Bezüglich der Nörger - schaut Euch mal diese Seite an:
>

Ich denke, du meintest "Nörgler".

Maxx schrieb:
> Über Feedback freue ich mich.

Und das bekommt er natürlich. Was nützt ihm jemand der sagt "toll 
gemacht" und in Wirklichkeit sind Fehler drin? Das ist ja kein Nörgeln, 
sondern Unterstützung beim Verbessern. Ich denke, Maxx sieht das 
genauso. Sonst hätte er sich doch kein Feedback gewünscht...

von Maxx (Gast)


Lesenswert?

Axel Schwenke schrieb:
> aber warum glaubst
> du daß die Welt einen Online Disassembler braucht? Ich meine,
> Disassembler schon, klar. Aber online?

Hallo Axel,

ich glaube dass, weil ich vor der Situation stand, dass meine bisheriger 
online Disassembler, den man auch bequem auf Rechnern/Tablets nutzen 
kann auf denen man keine Software installieren kann/darf/möchte, ein 
Update erfahren hat der Ihn unbrauchbar macht.

Mein eigener Bedarf reichte mir ;-)

Anforderung für mich war vor allem, dass ich die gleiche Quelle in 
unterschiedlichen Systemen betrachten kann. (Siehe z.B. die ARM/x86 
interop-Weiche im Blog) Das kann ich mit keinem existierenden 
Disassembler ausser vielleicht IDA aber auch da nur mit jeder Menge 
overhead.

Axel Schwenke schrieb:
> Damit man den Code auch schön in der Welt herumschickt?
>
> Oder baust du ein privates Repository an legacy code auf? }:-)

Du kannst dich gerne selbst überzeugen, dass kein einziges Byte deiner 
Probe deinen Rechner verlässt.

Was sollte ich auch damit? Ich kann damit nicht mehr als was ich offline 
mit fremden Quellen auch machen könnte.
Ausser den rechtlichen Problemen wäre das zudem reichlich unpraktisch.

In der Finalversion sollte ich dazu ein bissle was schreiben :-)

Andreas Schweigstill schrieb:
> Leider musste ich feststellen, dass 0xD3 nicht korrekt disassembliert
> wird, d.h. das immediate-Argument für OUT (xx), A fehlt.

Danke Anreas, das schaue ich mir heute Abend an.



Andreas Schweigstill schrieb:
> Erfolgt ein Sprung an eine Adresse, die mitten in einem Mehrbyte-Befehl
> liegt, wird kein Label erzeugt.

Danke, das ist zur Zeit eine bewusste Entscheidung und wird sicher zu 
einem späteren Zeitpunkt nachgeholt an der die grundsätzliche 
Übersetzung stabil ist.
Ohne Einsprungaddressen und der Flußkontrolle folgender Assemblierung 
kann ein solches Label leider immer wieder vorkommen. Es kann sogar 
bewusst genutzt sein, um entsprechend Debugger in die Irre zu führen, da 
ein und die gleiche Bytefolge unterschiedlich abgearbeitet wird, je 
nachdem ob man "dazwischen" startet oder nicht.
Da ich es im Moment nicht auflösen kann wird das label nicht inmitten 
einer Anweisung angezeigt.

Thomas schrieb:
>> Ich schicke meinen Code nicht in der Welt herum.
> Mal abgesehen davon, dass du paranoid bist wäre das auch gar nicht
> erforderlich, sofern der Disassembler in JavaScript implementiert ist.

Genau das ist der Fall.

ich schrieb:
> Er lokalisiert das label_100 auf die Adresse 0000h.
> Der Call auf die 0100h geht dann auf das label_100, und nicht, wie es
> sein soll, auf die Adresse 0100h.

Danke, da habe ich wohl irgendwo ein c&p Fehler übersehen. Wird 
korrigiert.


---

Danke über das Feedback bisher. Ich werd mich bemühen es zeitnah auch im 
Quellcode zu würdigen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

Zum Testen habe ich dir mal ein Paket mit ASM und HEX Files geschnürt, 
in dem alle Befehle der jeweiligen Prozessoren getestet werden, ASM ist 
im Format des Table Driven Assemblers (TASM) von Thomas N. Anderson und 
als Vergleich gedacht.
Sofern vorhanden, werden da auch die erweiterten Befehlssätze getestet.
5 MCs sind bei: 6502, 6800-6811, Z80, 8048 und 8051
Wenn du es brauchst, es gibt auch noch 8085, 8096, TMS32010 und 
TMS32025...

von Maxx (Gast)


Lesenswert?

Vielen lieben Dank Matthias

von Axel S. (a-za-z0-9)


Lesenswert?

Martin N. schrieb:
> Axel, du vergisst aber den Sinn einer Onlineplattform!

Ich vergesse den keineswegs. Ich stelle ihn hingegen in Frage.

Kein Zweifel, es gibt eine Menge Anwendungen, wo "die Cloud" oder halt 
generell eine Online-Variante nützlich sind. Aber bei einem Disassembler 
erschließt sich mir der Sinn so gar nicht (bei Tabellenkalkulation und 
Textverarbeitung übrigens genauso wenig).

Reverse-Engineering ist ja auch nix, was man so nebenbei oder mit dem 
Tablet an der Strandbar macht. Man (ok: ich) pasted da auch keine 
Codeschnipsel in ein Tool, sondern jagt da typisch einen größeren Block 
(lies: alles was man hat) durch. Und dann wird iterativ

- Code von Daten getrennt
- Labels mit sinnträchtigen Namen versehen

Maxx schrieb:
>> aber warum glaubst du daß die Welt einen Online Disassembler braucht?
>
> ich glaube dass, weil ich vor der Situation stand, dass meine bisheriger
> online Disassembler, den man auch bequem auf Rechnern/Tablets nutzen
> kann auf denen man keine Software installieren kann/darf/möchte, ein
> Update erfahren hat der Ihn unbrauchbar macht.

Punkt 2 ok. Aber Punkt 1? Arbeiten auf Tablets? Das geht abseits von 
"Mail lesen" und "irnkwelche Dokumente ansehen" doch sowieso nicht. Und 
wenn ich auf einem Arbeitsrechner die zur Arbeit benötigten Tools nicht 
installieren kann/darf, dann ist ohnehin alles vorbei.

> Anforderung für mich war vor allem, dass ich die gleiche Quelle in
> unterschiedlichen Systemen betrachten kann. (Siehe z.B. die ARM/x86
> interop-Weiche im Blog) Das kann ich mit keinem existierenden
> Disassembler ausser vielleicht IDA aber auch da nur mit jeder Menge
> overhead.

Hmm ja. Ich würde da einen Shell-Einzeiler schreiben, der den Binärcode 
durch eine Handvoll Disassembler jagt. Die eigentliche Arbeit ist ja 
ohnehin, das Ergebnis anzuschauen, ob das irgendeinen Sinn ergibt.

Aber wie schon gesagt, ich will deine Arbeit nicht klein oder schlecht 
reden. Mich interessierte wirklich nur der Grund, warum man sich sowas 
aufhalsen würde.


XL

von Thomas (Gast)


Lesenswert?

Meiner Meinung nach müsste man heute jedes neue Projekt daraufhin 
prüfen, ob eine Implementierung mit HTML5, CSS und JavaScript möglich 
und sinnvoll ist.

Die Vorteile liegen auf der Hand:
* Keine Installation
* Keine Updates
* Zentrale Pflege
* Überall und auf Jeder Plattform verfügbar
* Ohne Änderung trotzdem lokal installierbar

Nicht Umsonst ist in den letzten Jahren ein wahres Wettrüsten der großen 
Browserhersteller um die schnellste JavaScript Engine ausgebrochen.
Apps sind out, das Web ist die Zukunft.

Ein herausragendes Beispiel für eine Webapplikation ist auch 
http://www.mbed.org

Auch genial: http://www.youtube.com/watch?v=H6dLGQw9yFQ
Irgendwo starten, später irgendwo anders einfach weiter arbeiten, 
aufwändigere Berechnungen laufen zwischendurch unbeeindruckt weiter.

Axel schrieb:
> erschließt sich mir der Sinn so gar nicht
> (bei Tabellenkalkulation und Textverarbeitung übrigens genauso wenig).
Dir mangelt es einfach nur an Fantasie und Innovationskraft.
Meine Freundin und ich nutzen Google Drive ja sogar als 
Einkaufszettel...
Richtig schick wird es natürlich erst zur Organisation von z.B. 
Grillpartys inkl. Zu-/Absagen, Aufgabenverteilung, Einkäufe Abrechnung.
Einen Google-Account benötigt dazu übrigens außer dem Organisator 
niemand.

von Web2 (Gast)


Lesenswert?

Thomas schrieb:
> Meine Freundin und ich nutzen Google Drive ja sogar als
> Einkaufszettel...

Und damit seid ihr nicht alleine ;-)


Schönes Projekt, ich finde Online Tools auch extrem praktisch.
Wie schon erwähnt keine Installation, keine Updates, keine 
Abhängigkeiten, im Idealfall unabhängig vom Betriebssystem usw.

Wenn es schon CAD Programme etc. online gibt warum nicht auch sowas?

Ist doch keiner gezwungen es zu nutzen, von daher verstehe ich die 
kritischen Kommentare nicht.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Maxx schrieb:
> Da ich es im Moment nicht auflösen kann wird das label nicht inmitten
> einer Anweisung angezeigt.

Naja, mal völlig unabhängig von irgendwelchen Schweinereien wie
Code mit Byteversatz zweimal abzuarbeiten, was gerade beim Z80 doch
total gang und gäbe war, ist sowas:
1
label1:
2
    ld  hl, 0
3
    ...
4
5
6
    ld  l, low(label1 + 1)
7
    ld  h, high(label1 + 1)
8
    ld  (hl), a     ; Aktualisieren des Operanden bei label1

„Selbstmodifizierender Code“ galt damals als „effiziente 
Programmierung“.

von Hmm (Gast)


Lesenswert?

Die Bestrebungen Anwendungen online anzubieten, schweben ja nicht im 
luftleeren Raum. Vielmehr wird die Entscheidung dafür von gewissen 
Gründen bestimmt (die wir in diesem Fall nicht kennen).
Abgesehen von den Vorteilen die der Anwender davon hat, gibt es auch 
noch die Vorteile des Anbieters.

Bei allen Vorteilen für den Anbieter die ich mir so denken kann fällt 
mir keiner ein, der für mich als Anwender nicht mit einem Nachteil 
verbunden ist.

Wiegen die Vorteile nun die Nachteile auf? Die Antwort hängt sicher 
davon ab was einem wichtig oder unwichtig ist. Zugegeben.

Es mag sein, das ich dem TO Unrecht tue, aber wenn ich mir den Quelltext 
der Seite so anschaue und für gegeben nehme, das es grundsätzlich 
durchaus Anlass zur "Paranoia" gibt, dann bin ich skeptisch.

Warum sollen wir für ihn den Code testen ohne ein Äquivalent zu erhalten 
und ohne zu wissen wie er mit dem Code später verfährt?

von Polente (Gast)


Lesenswert?

Noch einen Tipp an den TO:

- Zufallsdaten erzeugen
- mit bekanntem, funktionierenden Disassembler verarbeiten
- mit deinem Disassembler verarbeiten
- Vergleichen (per Skript, manuell, wie auch immer)

von Maxx (Gast)


Lesenswert?

Hmm schrieb:
> Es mag sein, das ich dem TO Unrecht tue, aber wenn ich mir den Quelltext
> der Seite so anschaue und für gegeben nehme, das es grundsätzlich
> durchaus Anlass zur "Paranoia" gibt, dann bin ich skeptisch.

Welchen Anlass? Dann kann ich das abstellen.
Ich wüsste aber keinen Punkt. Das System ist transparent:
- Wordpress
- JavaScript nur auf Client

kein JSON kein PHP ...

> Warum sollen wir für ihn den Code testen ohne ein Äquivalent zu erhalten
> und ohne zu wissen wie er mit dem Code später verfährt?

Ich bekomme von allem was Ihr eingebt nichts mit. Da existiert kein 
einziges Post Formular abseits der Kommentarfunktion von Wordpress. Noch 
irgendein anderes "nach Hause telefonieren".

Nutz Wireshark wenn du möchtest und überzeuge dich.

Was du davon hast?
Nichts wenn du es nicht nutzen willst.
Aber ein kleines Tool, wenn doch.

von Hmm (Gast)


Lesenswert?

>Welchen Anlass?
Lies mal Zeitung und gucke Nachrichten.

>Nutz Wireshark wenn du möchtest und überzeuge dich.
Nein. Wozu? Entweder Du stellst die Transparenz selbst her oder Du lässt 
es.

Verstehe mich recht: Du bietest das in dieser Form an. Ist ja OK. Mach 
nur. Ich habe keinen Grund zu schreiben, das Du irgendwas Ubles tust 
oder vorhast. Ich stelle nur fest, welche Eigenschaften dieses Angebot 
hat.

von Maxx (Gast)


Lesenswert?

Hmm schrieb:
>>Welchen Anlass?
> Lies mal Zeitung und gucke Nachrichten.

Die betrifft Daten die über das Internet oder Telefon übermittelt 
werden.
Das werden deine Daten nicht.

Die Mittel zur Prüfung stelle ich dir zur Verfügung. Nutzen kannst du 
sie nur selbst.

>>Nutz Wireshark wenn du möchtest und überzeuge dich.
> Nein. Wozu? Entweder Du stellst die Transparenz selbst her oder Du lässt
> es.

Das ist mir gar nciht bis zum Ende möglich. Wenn jemand vor dem Monitor 
sitzt und die Augen zumacht habe ich keine Handhabe.

*Alle Dateien sind ohne Passwort/Referer Magic im Klartext abrufbar. 
Keine der Dateien sind Verschlüsselt oder durch einen Obfuscator 
geschickt.*

Es macht doch auch keinen Sinn, wenn ich mich selber darüber hinaus auf 
den Prüfstand stellen würde, oder? Dann hast du doch noch weniger 
Sicherheit.
Genau das ist doch gerade das Problem was in den Nachrichten auftaucht: 
Die Täter sind die Prüfer. (ND überwachen sich selbst, Verdächtige 
erklären allen Verdacht für ausgeräumt, etc)

Also: Gesunde Paranoia sorgt dafür dass du dich umguckst, nicht dazu, 
dass du anderen Vertraust sich für dich umzuschauen.

von Hmm (Gast)


Lesenswert?

Wiegesagt habe ich keinen konkreten Anlass Dir was zu unterstellen.

Ich benutze aus Sicherheitsgründen einfach keine Online-Services; 
jedenfalls ganz sicher nicht, wenn es eine Offline-Alternative gibt.

Ich fange doch nicht an aufwendig nachzuprüfen ob ein solches Angebot 
sicher ist, wenn es offline-Alternativen gibt. Ein Zweifel bleibt 
nämlich immer, weil ich nicht weiss, was auf dem Server abläuft; den 
kannst Du letzlich nicht ausräumen. Kriege ich z.B. immer den selben 
Script?

>Das ist mir gar nciht bis zum Ende möglich.

Sicher ist das möglich. Poste den Quellcode, falls Du das möchtest.
So könnte den jeder offline benutzen.

Dass Du das in gewisser Form getan hast
>Alle Dateien sind ohne Passwort/Referer Magic im Klartext abrufbar.
>Keine der Dateien sind Verschlüsselt oder durch einen Obfuscator
>geschickt.
finde ich gut.

Dennoch nutze ich keine Online-Programme. Tut mir leid. Ist so. Und die 
Gründe dafür sind nicht absurd oder paranoid. So sehe ich das.

von Maxx (Gast)


Lesenswert?

Polente schrieb im Beitrag #3287662:
> Dafür, dass du so viel von Datenschutz verstehst, wundert mich deine
> Idee des Online-Disasm.

Dann Butter bei die Fische.
Wo genau sind die Bedenken hinsichtlich Datenschutz bei der konkreten 
Seite?

"Online" ist hier nur der Speicherort des Quellcodes.

> Deine Argumente sind an den Haaren herbeigezogen. Skriptsprachen sind
> genauso platformunabhängig wie dein HTML5. Und wenn es denn sein muss
> können selbst gehandicapte Tablet-Smogs sowas benutzen.

HTML5 ist nirgends verwendet.
Es ist in der Tat eine einfache Skriptsprache.

Auf meinem Tablet läuft eine einfache "Speichern unter" Kopie des ganzen 
offline ... kann jeder mit 2 Klicks nachvollziehen.

Nochmals: Ich kann Bedenken nur dann ausräumen, wenn sie konkret 
dargestellt werden. Für latentes Unwohlsein mit dem Begriff "Online" 
habe ich kein Rezept.

von Hmm (Gast)


Lesenswert?

>Also: Gesunde Paranoia sorgt dafür dass du dich umguckst, nicht dazu,
>dass du anderen Vertraust sich für dich umzuschauen.

Im Grunde verdrehst Du damit meine Argumentation, wie ich nachträglich 
feststelle. Es geht nicht darum, dass ich zu faul oder unfähig bin 
festzustellen ob Dein Angebot sicher ist. Auch nicht darum, das mein 
Wunsch nach Sicherheit an DICH dadurch sinnlos ist, dass Du sie 
prinzipiell und im besonderen dadurchnicht herstellen kannst, das Du es 
selbst tust.

1. Ist grundsätzlich die Sicherheit bei online-Angeboten nicht gegeben.
2. Bist Du als Anbieter dazu aufgerufen zumindest "relative" Sicherheit 
sicherzustellen, sofern ich Dich darum ersuche. Keinesfalls ist das 
meine Aufgabe. Nur ersuche ich Dich nicht darum. Ich verwende das 
einfach nicht!

Worum es mir geht, ist klarzustellen, das es sich um
1. ein Angebot auf einem völlig gesättigten Markt handelt da: a) 
Genügend Disassembler vorhanden sind b) das erzeugen eigener 
Disassembler recht einfach und
2. ein potentiell unsicheres Angebot handelt.

von Hmm (Gast)


Lesenswert?

>Nochmals: Ich kann Bedenken nur dann ausräumen, wenn sie konkret
>dargestellt werden. Für latentes Unwohlsein mit dem Begriff "Online"
>habe ich kein Rezept.

Entschuldige, aber das ist Vernebelungstaktik und erregt schlagartig 
mein Misstrauen. Bei einem Laien könntest Du wohl unterstellen, dass ein 
"Unwohlsein" ohne konkreten Hintergrund existiert.

Wir sind hier aber einigermaßen bewandert was Computer, Programmierung 
und Sicherheit betrifft. Das wir unsere Bedenken nicht spezifizieren 
heisst also nicht (oder jedenfalls nicht zwingend) das es nicht möglich 
ist sie zu präzisieren.

von Maxx (Gast)


Lesenswert?

Polente schrieb im Beitrag #3287682:
> Es ist schön, wenn du uns hier im Forum versicherst, dass das Angebot
> datenschutztechnisch sauber ist. Das könntest du auch schreiben, ohne
> das es der Fall ist.

Richtig, daher nutze deine Prüfmöglichkeiten. Das ist was ich seit dem 
ersten Post zu dem Thema predige.

Was kann ich mehr machen?

> Dieser Zweifel spricht immer für den guten alten Offline-Disasm.

Nein. Im Gegenteil!
Dort musst du viel mehr auf die Richtigkeit vertrauen. Ein Offline 
Disasm kommt in der Regel als .exe daher und hat deutlich mehr Rechte 
auf deinem Rechner.
Deine Prüfmöglichkeiten in diesem Fall sind deutlich geringer.

von Maxx (Gast)


Lesenswert?

Hmm schrieb:
> 1. Ist grundsätzlich die Sicherheit bei online-Angeboten nicht gegeben.

???

Du hast den Unterschied von cleint- und serverseitiger Datenverarbeitung 
nicht verstanden.

> 2. Bist Du als Anbieter dazu aufgerufen zumindest "relative" Sicherheit
> sicherzustellen, sofern ich Dich darum ersuche. Keinesfalls ist das
> meine Aufgabe. Nur ersuche ich Dich nicht darum. Ich verwende das
> einfach nicht!

Natürlich. Ich kann dir die Sicherheit doch gar nicht geben!
Ich kann dir nur Prüfmittel geben die Beurteilung musst du selber geben.
Das habe ich getan.


Dann verwende es nicht.
Aber bitte behaupte nicht überprüfbar falsche Dinge.

von Hmm (Gast)


Lesenswert?

>Richtig, daher nutze deine Prüfmöglichkeiten.

Das ist schon wieder Vernebelungstaktik und erledigt für mich das Thema.
Du weisst genau, dass eine hundertprozentige Prüfung prinzipiell nicht 
möglich ist. Oder Du solltest es wenigstens wissen.

Naja. Lassen wir das. Ich wünsche Dir dennoch Erfolg und alles Gute, ob 
auf diesem oder einem anderen Weg.

von Hmm (Gast)


Lesenswert?

>Natürlich. Ich kann dir die Sicherheit doch gar nicht geben!
Das ist ja das was ich die ganze Zeit schreibe!

>Ich kann dir nur Prüfmittel geben die Beurteilung musst du selber geben.
Ich muss garnichts.

Wenn Du willst, das ich oder sonstwert das verwende musst DU die 
Sicherheit gewährleisten. Nicht ich. Entschuldige. Das ist doch wirklich 
trivial.

>Dann verwende es nicht.
Mach ich ja nicht.

>Aber bitte behaupte nicht überprüfbar falsche Dinge.
Welche überprüfbar falschen Dinge habe ich behauptet?

von Maxx (Gast)


Lesenswert?

Hmm schrieb:
> Worum es mir geht, ist klarzustellen, das es sich um
> 1. ein Angebot auf einem völlig gesättigten Markt handelt da: a)
> Genügend Disassembler vorhanden sind b) das erzeugen eigener
> Disassembler recht einfach und
> 2. ein potentiell unsicheres Angebot handelt.

1.) Na und?

Hmm schrieb:
> Wir sind hier aber einigermaßen bewandert was Computer, Programmierung
> und Sicherheit betrifft. Das wir unsere Bedenken nicht spezifizieren
> heisst also nicht (oder jedenfalls nicht zwingend) das es nicht möglich
> ist sie zu präzisieren.

Nein. Jedoch schliesst die Prüfung dies aus.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hmm schrieb:
> Sicher ist das möglich. Poste den Quellcode, falls Du das möchtest.

Der Quelltest ist doch da! Du musst ihn dir nur anschauen, und wenn du 
einen "sicheren Stand" einfrieren möchtest kannst du doch jederzeit 
einfach "Datei->Speichern unter" wählen.... Es läuft doch kein Code auf 
dem Server, also bitte jetzt mal diese sinnloses Diskussion um vertrauen 
und misstrauen mal wieder etwas runterfahren solange man die 
hinterliegende Technik nicht verstanden hat.

von Hmm (Gast)


Lesenswert?

Ich weiss ja nicht welcher Mod das war. Aber Dir ist hoffentlich klar, 
das die Behauptung:

>Nein. Jedoch schliesst die Prüfung dies aus.

schlicht falsch ist.

Und das sollte man auch schreiben dürfen, denke ich.

von Maxx (Gast)


Lesenswert?

Die Aussage wäre in der Tat im Allgemeinen nicht zulässig.

Für primitiv-rekursive Funktionen, wie eine surjektive Abbildung einer 
Reihe aus einer statischen Menge in eine andere ist jedoch 
verifizierbar. Das Halteprblem ist über der Menge der 
primitiv-rekursiven Funktionen berechenbar.

Ein Disassembler ist nichts weiter als die Implementierung einer 
rechtsvollständigen Abbildung über eine Reihe. Dieses spezielle Problem 
lässt sich daher mit einer regulären Sprache nach unerwünschten 
Zuständen über die finite Laufzeit untersuchen.

von Peter D. (peda)


Lesenswert?

Ich habe einmal einen Disassembler benutzt.
Ich wollte herauskriegen, warum die C51 Divisions-Lib schneller und 
kleiner ist als meine mühsam optimierte Assembler-Lib. Hut ab, was der 
Herr Keil da programmiert hat.

Aber ich wüßte keine reale Anwendung für einen Disassembler.

Ehe ich mich da durch Code ohne aussagefähige Funktions-, Variablennamen 
und Kommentare durchwühle, habe ich die Aufgabe schneller in C 
nachprogrammiert.

Es mag vielleicht einige Hacker geben, die mit einem Disassembler nicht 
offengelegte Protokolle knacken wollen, aber dazu gehöre ich nicht.

von Peter D. (peda)


Lesenswert?

Ich stelle es mir nicht einfach vor, wie ein Disassembler Code und Daten 
auseinander halten soll.
Er kennt ja nicht mehr die Formate, ob nun char, int16, int32 usw.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter Dannegger schrieb:
> Ich stelle es mir nicht einfach vor, wie ein Disassembler Code und Daten
> auseinander halten soll.

Ich kenne keinen, der das 100%ig allein schaffen würde.  Sowie man
mit Code aus dem richtigen Leben ankommt, muss man ihm da auf die
Sprünge helfen, indem man ihn parametriert.

von Maxx (Gast)


Lesenswert?

Zum Beispiel
Z.B. https://www.blackhat.com/us-13/archives.html#Cesare

Peter Dannegger schrieb:
> Er kennt ja nicht mehr die Formate, ob nun char, int16, int32 usw.

Korrekt.
Ein Disassembler kann die Übersetzung nicht rückgängig machen, sondern 
bietet lediglich eine mögliche Übersetzung in die gegenläufige Richtung. 
Mnemonik<->Opcode ist meist nicht bijektiv.

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.