Reverse Engineering (RE)

Größe: px
Ab Seite anzeigen:

Download "Reverse Engineering (RE)"

Transkript

1 Reverse Engineering (RE) Team 3 Jan Gossens & Martin Morawetz Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

2 1 Einführung 2 Vorgehensweisen von Reverse Engineering Statische Analyse Dynamische Analyse Decompiler 3 Live Demo 4 Abwehr von Reverse Engineering 5 Tools Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

3 Einführung Was ist Reverse Engineering? Rekonstrukion des Zustandes vor dem Kompilieren Binary zu Assembler oder Source Code Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

4 Einführung Anwendung von RE Analyse von Malware Verlust von Source Code Fehlersuche Neugier Sicherheitsanalyse Entschlüsselung von Ransomware Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

5 Vorgehensweisen von Reverse Engineering Begriffserklärungen Disassembler vs. Decompiler Disassembler, Maschinen- zu Assembler-Code Decompiler, Maschinen- zu Source oder Pseudo-Code Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

6 Vorgehensweisen von Reverse Engineering Begriffserklärungen Statisch vs. Dynamisch Statische Analyse, Analyse ohne Ausführung sehr allgemein Register- / Speicherwerte zur Laufzeit nicht vorhanden Tools: objdump, strings Dynamische Analyse, Analyse mit / während Ausführung Analyse für speziellen Programmablauf sehr detailliert, manipulierbar oft nur auf VM möglich Tools: Debugger, ltrace, strace Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

7 Vorgehensweisen von Reverse Engineering Statische Analyse Strings Statische Methode zum Finden von ASCII Strings Durchsucht Binärdateien Nützlich um schnellen Überblick zu erhalten Zeigt nur Strings mit mindestens 4 Zeichen an Manchmal findet man so auch das gesuchte Passwort Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

8 Vorgehensweisen von Reverse Engineering Statische Analyse Objdump Statischer Disassembler objdump -d: diassembled eine Binärdatei objdump -f: Zeigt Header an example1 : f i l e format e l f 6 4 x86 64 a r c h i t e c t u r e : i : x86 64, f l a g s 0 x : HAS SYMS, DYNAMIC, D PAGED s t a r t a d d r e s s 0 x Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

9 Vorgehensweisen von Reverse Engineering Dynamische Analyse ltrace & strace ltrace Zeigt Library Calls zur Laufzeit an strace Zeigt System Calls zur Laufzeit an Gut um Schadsoftware zu erkennen Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

10 Vorgehensweisen von Reverse Engineering Dynamische Analyse gdb gdb - GNU Debugger Dynamische Programmanalyse und -veränderung Nützlich um Programmfehler zu finden und Schwachstellen zu finden Sehr hardwarenah Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

11 Vorgehensweisen von Reverse Engineering Dynamische Analyse gdb - PEDA PEDA - Python Exploit Development Assistance for GDB Nützliche, schlanke Erweiterung für GDB Zeigt zu jeder Zeit Register und Stack an Zusätzliche Features und Befehle zb ropgadget/ropsearch für ROP Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

12 Vorgehensweisen von Reverse Engineering Dynamische Analyse gdb - PEDA Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

13 Vorgehensweisen von Reverse Engineering Dynamische Analyse gdb - Wichtige Befehle Teil 1 Binary starten: run/r nimmt Argumente Breakpoints setzen: break/b main/*0x fe entweder Funktionsname oder Pointer auf Speicheradresse Breakpoints auflisten: info breakpoints/b Breakpoints entfernen: del <n> n ist Index des Breakpoints Step into: si Step over: ni Ausführen bis zum Ende der Funktion: finish Ausführen bis zum nächsten Breakpoint: continue/c Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

14 Vorgehensweisen von Reverse Engineering Dynamische Analyse gdb - Wichtige Befehle Teil 2 Register anzeigen lassen: info registers mit PEDA nicht nötig Funktionen anzeigen lassen: info functions Disassemble: disassemble/disas main/*0x fe Vergangene Funktionsaufrufe: backtrace Strings anzeigen lassen: print (char*)0x fe Speicher verändern: set *0x7fffffffe3e4 = <newvalue> Pointer auf Speicheradresse 1 Byte wird per default geändert n Byte per Array: set {char[n+1]} 0x... = StringOfLengthN Section Adressen anzeigen: info file Zeig auch Start Adresse(Entry Point) an Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

15 Vorgehensweisen von Reverse Engineering Dynamische Analyse gdb - Wichtige Befehle Teil 3.1 E x amine memory: x/<anzahl><art><ausgabe> x/32wx $esp: 32 words in Hexadezimal an Speicher auf den $esp zeigt x/32wx *0x7fffffffe3e4: 32 words in Hexadezimal an expliz. Speicher-Adresse Mögliche Ausgaben: x - Integer in Hexadezimal d - signed Integer u - unsigned Integer o - Integer in Oktal t - Integer in Binär a - Speicheradresse f - Floating Point c - Character Constant i - Assembler/Maschineninstruktionen s - Strings Default ist x Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

16 Vorgehensweisen von Reverse Engineering Dynamische Analyse gdb - Wichtige Befehle Teil 3.2 Mögliche Arten: b - Bytes h - halfwords (2 Byte) w - words (4 Byte) g - giant words (8 Byte) Bei Strings als Ausgabe ist die Art automatisch b Bei Maschineninstruktionen der Ausgabe i wird die Art ignoriert Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

17 Vorgehensweisen von Reverse Engineering Decompiler IDA IDA - Interactive Disassembler Entwickelt von Hex-Rays Mächtigstes Tool für Reverse Engineering Kann aus Binärdateien C ähnlichen Pseudo Code rekonstruieren Üblicherweise nur selbe Semantik wie ursprünglicher Code Kompilieren ist verlustbehaftet fehlende Kommentare + Variablennamen Optimierungen Sehr beliebt um Kopierschutz zu umgehen Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

18 Vorgehensweisen von Reverse Engineering Decompiler IDA - Assembler View Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

19 Vorgehensweisen von Reverse Engineering Decompiler IDA - Hex View Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

20 Vorgehensweisen von Reverse Engineering Decompiler IDA - Proximity View Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

21 Vorgehensweisen von Reverse Engineering Decompiler IDA - Graph View Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

22 Vorgehensweisen von Reverse Engineering Decompiler IDA - Pseudo Code Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

23 Vorgehensweisen von Reverse Engineering Decompiler IDA - Possible Views Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

24 Live Demo Demo Programm #i n c l u d e <s t d i o. h> #i n c l u d e <s t d l i b. h> #i n c l u d e <s t r i n g. h> i n t main ( i n t argc, char a r g v [ ] ) { char input ; i n p u t = ( char ) c a l l o c ( 1, ) ; p r i n t f ( Welcome to our l i t t l e password g u e s s i n g game. Give i t a t r y :\ n ) ; s c a n f ( %s, i n p u t ) ; } i f ( c h e c k p a s s w o r d ( i n p u t )){ p r i n t f ( You won! : ) \ n ) ; } e l s e { p r i n t f ( You l o s t : ( \ n ) ; } r e t u r n 0 ; Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

25 Live Demo gdb - Beispiel Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

26 Live Demo IDA - Beispiel Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

27 Live Demo IDA - Beispiel Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

28 Live Demo IDA - Beispiel Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

29 Live Demo IDA - Beispiel Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

30 Live Demo IDA - Beispiel Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

31 Abwehr von Reverse Engineering Methoden gegen Reverse Engineering Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

32 Abwehr von Reverse Engineering Methoden gegen Reverse Engineering Stripped Binaries Binärdateien ohne Debug Symbole Unter anderem Funktionsnamen gehen verloren Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

33 Abwehr von Reverse Engineering Methoden gegen Reverse Engineering Stripped Binaries Binärdateien ohne Debug Symbole Unter anderem Funktionsnamen gehen verloren Code Obfuscation Code möglichst kompliziert und unverständlich gestalten Aladdin HASP HL Pro Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

34 Abwehr von Reverse Engineering Methoden gegen Reverse Engineering Stripped Binaries Binärdateien ohne Debug Symbole Unter anderem Funktionsnamen gehen verloren Code Obfuscation Code möglichst kompliziert und unverständlich gestalten Aladdin HASP HL Pro USB Dongle um Software zu verifizieren Envelope Protection Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

35 Abwehr von Reverse Engineering Methoden gegen Reverse Engineering Stripped Binaries Binärdateien ohne Debug Symbole Unter anderem Funktionsnamen gehen verloren Code Obfuscation Code möglichst kompliziert und unverständlich gestalten Aladdin HASP HL Pro USB Dongle um Software zu verifizieren Envelope Protection Verschlüsselter Code Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

36 Abwehr von Reverse Engineering Methoden gegen Reverse Engineering Stripped Binaries Binärdateien ohne Debug Symbole Unter anderem Funktionsnamen gehen verloren Code Obfuscation Code möglichst kompliziert und unverständlich gestalten Aladdin HASP HL Pro USB Dongle um Software zu verifizieren Envelope Protection Verschlüsselter Code Cloud-Based-Software Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

37 Abwehr von Reverse Engineering Tools gegen Reverse Engineering I Themida Software Protector umschließt die eigentliche, verschlüsselte Anwendung Bevor der Protector die Anwendung entschlüsselt stellt er sicher, dass keinerlei Cracking Software aktiv ist Themida behauptet alle gängigen Tools erfolgreich erkennen zu können Kann Probleme mit Antiviren Software hervorrufen Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

38 Abwehr von Reverse Engineering Tools gegen Reverse Engineering II Code Virtualizer Programm beinhaltet eine virtuelle CPU auf der es ausgeführt wird Eigentlicher Code besteht aus Maschinen-Code der nur von der virtuellen CPU verstanden wird Jede virtuelle CPU kennt unterschiedliche Befehle, das selbe Programm sieht bei jedem Kunden anders aus Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

39 Tools Tool Sammlung Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

40 Tools Tool Sammlung edb GUI für gdb Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

41 Tools Tool Sammlung edb GUI für gdb Radare2 Commandline Reverse Enigeering Framework Sowohl statische als auch dynamische Analyse Komplexe Bedienung Schöne Tree-View und gute Gesamtübersicht Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

42 Tools Tool Sammlung edb GUI für gdb Radare2 Commandline Reverse Enigeering Framework Sowohl statische als auch dynamische Analyse Komplexe Bedienung Schöne Tree-View und gute Gesamtübersicht Hopper IDA s kleiner Bruder Kann Pseudo Code aus Binärdateien erstellen Bei weitem nicht so gut wie IDA 30 Minuten gratis Demo verfügbar Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

43 Tools Vielen Dank für eure Aufmerksamkeit! Jan Gossens, Martin Morawetz Reverse Engineering (RE) / 35

Exploit-Entwicklung mit Python

Exploit-Entwicklung mit Python Penetration Testing III Bachelor in Computer Science (BCS) 6. Semester Exploit-Entwicklung mit Python von Daniel Baier und Demian Rosenkranz 1 / 20 Gliederung Grundlagen Sicherheitslücken Prozess- und

Mehr

Kompilierung eines Programmes. Mnemonics, ld, GCC, AS

Kompilierung eines Programmes. Mnemonics, ld, GCC, AS Assembler-Crashkurs Kompilierung eines Programmes Mnemonics, ld, GCC, AS Wie entsteht eine Binary? 1. Wir schreiben Source-Code 2. Wir Kompilieren diesen Source-Code ( es entsteht Object-Code/Assembler)

Mehr

Maschinencode Dateiformat und Stackframes

Maschinencode Dateiformat und Stackframes Maschinencode Dateiformat und Stackframes Proseminar C-Programmierung - Grundlagen und Konzepte Julian M. Kunkel julian.martin.kunkel@informatik.uni-hamburg.de Wissenschaftliches Rechnen Fachbereich Informatik

Mehr

Teil I Debuggen mit gdb

Teil I Debuggen mit gdb Teil I Debuggen mit gdb Wer kennt das nicht? $./a.out Segmentation fault Was tun dagegen? printf()s in den Code einfügen? Besser (und professioneller): Einen Debugger verwenden Wer kennt das nicht? $./a.out

Mehr

C/C++ Debugging mit CDT unter Eclipse

C/C++ Debugging mit CDT unter Eclipse C/C++ Debugging mit CDT unter Eclipse Bevor Sie mit dem Debuggen beginnen können, müssen Sie eine compilierbare Applikation erstellen, also eine Applikation, die keine Syntaxfehler mehr enthält. Sie können

Mehr

Mapra: C++ Teil 2. Felix Gruber, Sven Groß. 2. Mai 2017 IGPM. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai / 11

Mapra: C++ Teil 2. Felix Gruber, Sven Groß. 2. Mai 2017 IGPM. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai / 11 Mapra: C++ Teil 2 Felix Gruber, Sven Groß IGPM 2. Mai 2017 Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai 2017 1 / 11 Themen vom letzten Mal Kontrollstrukturen Funktionen const Referenzen Zeiger

Mehr

Virtuelles CodeMoving mit Translocated Execution

Virtuelles CodeMoving mit Translocated Execution 06.09.2017 WIBU-SYSTEMS AG 2017 - Virtuelles CodeMoving mit Translocated Execution 1 Virtuelles CodeMoving mit Translocated Execution Alvaro Forero Security Expert alvaro.forero@wibu.com Ruediger Kuegler

Mehr

Code Composer Studio 4.x

Code Composer Studio 4.x Code Composer Studio 4.x Hands-on Session Sebastian Meisner, sebastian.meisner@upb.de Fachgebiet Technische Informatik 1 Inhalt der Hands-on Sesion Präsentation Code Composer Studio (CCS) Aufgaben 2 Einleitung

Mehr

Debugging mit ddd (Data Display Debugger)

Debugging mit ddd (Data Display Debugger) Debugging mit ddd (Data Display Debugger) 1 Testprogramm installieren und ausführen Laden Sie sich das Fortran Programm sample.f90 und das Makefile herunter und speichern Sie sie in einem Verzeichnis.

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Framework für Assignment A2 1 Übersicht Framework für Assignment A2 WH: Aufgabenstellung Klassen und Methoden Getting started Erste Instruktion aus Testdaten dekodieren 2 Aufgabenstellung Instruction-Set

Mehr

Hydroinformatik 1 Integrated development environments IDEs

Hydroinformatik 1 Integrated development environments IDEs Hydroinformatik 1 Integrated development environments IDEs Bisher C++, Qt, Datentypen, Klassen I/O, strings Folie 2 Heute IDEs Definition, Aufgaben, Funktionen (Anwendungsübung) Folie 3 Vorbereitung Download

Mehr

HYDROINFORMATIK. Integrated development environments IDEs. JProf. Dr. rer. nat. Marc Walther

HYDROINFORMATIK. Integrated development environments IDEs. JProf. Dr. rer. nat. Marc Walther HYDROINFORMATIK Integrated development environments IDEs JProf. Dr. rer. nat. Marc Walther Dresden, 20. Oktober 2017 LETZTES MAL Einführung in Veranstaltung, Organisatorisches Überblick Anwendungen HI

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 2 Arrays und Pointer Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät statische Arrays Deklaration (eindimensional): /* 40

Mehr

The Dark Side of LLDB

The Dark Side of LLDB The Dark Side of LLDB Reverse Engineering Cocoa Applications Selber Schuld! Selber Schuld! Selber Schuld! Selber Schuld! NSXPCInterface *mycookieinterface = [NSXPCInterface interfacewithprotocol: @protocol(feedmeacookie)];

Mehr

Debugging mit GDB Albrecht Oster Proseminar C - Grundlagen und Konzepte

Debugging mit GDB Albrecht Oster Proseminar C - Grundlagen und Konzepte Debugging mit GDB Albrecht Oster Proseminar C - Grundlagen und Konzepte Inhaltsverzeichnis 1 Was ist Debugging? 2 1.1 Fallbeispiel 3 1.2 Mögliche Vorgehensweise zur Ursachenfindung 4 2 Was ist GDB? 5 2.1

Mehr

ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen

ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen Aufgabenstellung: - das beigefügte Assembler-Programm schrittweise ausführen - sich mit der Handhabung der Entwicklungswerkzeuge

Mehr

software visualization NICK MÜLLER, a

software visualization NICK MÜLLER, a software visualization NICK MÜLLER, a1001030 Papers Visualizing Compiled Executables for Malware Analysis. Daniel A. Quist and Lorie M. Liebrock, VizSec 2009. Visualizing Application Behavior on Superscalar

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 5 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 4 Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 5 Ablauf Nachbesprechung

Mehr

Was ist ein Profiler?

Was ist ein Profiler? Profiling Was ist ein Profiler? (Theorie) Invasives Profiling Nichtinvasives Profiling Profiling in der Praxis gprof, gcov OProfile valgrind/callgrind Intel VTune Was ist ein Profiler? Analyse des Laufzeitverhaltens

Mehr

Aufgabe 3. Aufgabe 4.

Aufgabe 3. Aufgabe 4. 3. AUFGABENBLOCK Aufgabe 3. Bubble-Sort für Rechtecke mit Operator Overloading Ändern Sie die Aufgabe 2 derart ab, dass Sie bisherige Methoden oder Algorithmen als überladene Operatoren implementieren:

Mehr

Einige Grundlagen zu OpenMP

Einige Grundlagen zu OpenMP Einige Grundlagen zu OpenMP Stephanie Friedhoff, Martin Lanser Mathematisches Institut Universität zu Köln 22. Juni 2016 Überblick Was ist OpenMP? Basics Das OpenMP fork-join-modell Kompilieren und Ausführen

Mehr

Ein-Ausgabefunktionen in C (letzter Abschnitt Vorlesungsstoff ab C.110)

Ein-Ausgabefunktionen in C (letzter Abschnitt Vorlesungsstoff ab C.110) U2 2. Übung U2 2. Übung U2-1 Überblick Ein-Ausgabefunktionen in C (letzter Abschnitt Vorlesungsstoff ab C.110) Aufgabe 2: qsort Debugger Übersetzen von Projekten mit "make" U2.1 B-2 Aufgabe 2: Sortieren

Mehr

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere

Mehr

Malware-Analyse und Reverse Engineering. 13: Rückblick über das Semester Prof. Dr. Michael Engel

Malware-Analyse und Reverse Engineering. 13: Rückblick über das Semester Prof. Dr. Michael Engel Malware-Analyse und Reverse Engineering 13: Rückblick über das Semester 29.6.2017 Prof. Dr. Michael Engel Überblick MARE 2017: Einführungund Motivation, Malware-Historie Übersetzen und Linken von Programmen,

Mehr

HYDROINFORMATIK. Integrated development environment IDEs. JProf. Dr. rer. nat. Marc Walther

HYDROINFORMATIK. Integrated development environment IDEs. JProf. Dr. rer. nat. Marc Walther HYDROINFORMATIK Integrated development environment IDEs JProf. Dr. rer. nat. Marc Walther Dresden, 21. Oktober 2016 LETZTES MAL Einführung in Veranstaltung, Organisatorisches Überblick Anwendungen HI 21.10.2016

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Einführung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016 Technische Universität Braunschweig, IPS Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke,

Mehr

Assembler - Adressierungsarten

Assembler - Adressierungsarten Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

Mehr

Vorstellungsrunde Programm Was ist eclipse? Aller Anfang ist leicht Benutzeroberfläche Ende des ersten Tages. Eclipsekurs 2007.

Vorstellungsrunde Programm Was ist eclipse? Aller Anfang ist leicht Benutzeroberfläche Ende des ersten Tages. Eclipsekurs 2007. Eclipsekurs 2007 Tag I 10. November 2007 TU Berlin 1 Die Vortragenden Daniel Levin Fachgebiet: Kommunikationstechnologie Mario Bodemann Fachgebiet: Softwaretechnik und ComputerGrafics 1 2 Eclipse-Maintainer

Mehr

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur. Einführung Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Informatik II - Übung 01

Informatik II - Übung 01 Informatik II - Übung 01 Raphael Fischer (Folien basierend auf denen von Christian Beckel) fischrap@student.ethz.ch 01.03.2017 Wie sieht eine Übungsstunde aus? 1) Fragen aus der Vorlesung! 2) Praktische

Mehr

Buffer Overflow 1c) Angriffsstring: TTTTTTTTTTTTTTTT (16x) Beachte: Padding GCC-Compiler Zusatz: gcc O2 verhindert hier den Angriff (Code Optimierung)

Buffer Overflow 1c) Angriffsstring: TTTTTTTTTTTTTTTT (16x) Beachte: Padding GCC-Compiler Zusatz: gcc O2 verhindert hier den Angriff (Code Optimierung) Buffer Overflow 1c) 1 char passok='f'; 2 char password[8]; 3 printf( Passwort: ); 4 gets(password); 5 if(!strcmp(password, daspassw )){passok = 'T';} 6 if(passok=='t'){printf( %s, Willkommen! );} 7 else

Mehr

Shangrila. One Instruction Set Computer

Shangrila. One Instruction Set Computer Shangrila One Instruction Set Computer Outline One Instruction Set Computer Die Idee Funktion Die Machine Shangrila VM Interfaces Tools Implementation Status & Zukunft OISC >> Die Idee CPU mit nur einer

Mehr

Bedienungshinweise für XEmacs, make und GNU Debugger

Bedienungshinweise für XEmacs, make und GNU Debugger Bedienungshinweise für XEmacs, make und GNU Debugger Labor Rechnerorganisation Berufsakademie Stuttgart Fachrichtung Nachrichtentechnik 2000 2007 Ingo Phleps Stand 1. Februar 2007 http://home.ntz.de/phleps/programming/werkzeuge.pdf

Mehr

Con guration as Code Über Ansible Ansible Grundlagen Live Demo Weitere Informationen

Con guration as Code Über Ansible Ansible Grundlagen Live Demo Weitere Informationen ANSIBLE CONFIGURATION AS CODE METANOOK 2018 Tobias Mende @tobias_mende tobias-men.de 1 DAS ERWARTET EUCH Con guration as Code Über Ansible Ansible Grundlagen Live Demo Weitere Informationen 2 CONFIGURATION

Mehr

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

Informatik für Mathematiker und Physiker Woche 7. David Sommer

Informatik für Mathematiker und Physiker Woche 7. David Sommer Informatik für Mathematiker und Physiker Woche 7 David Sommer David Sommer 30. Oktober 2018 1 Heute: 1. Repetition Floats 2. References 3. Vectors 4. Characters David Sommer 30. Oktober 2018 2 Übungen

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann

Mehr

Institut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke Java 1 Markus Reschke 06.10.2014 Überblick Einführung in die Programmierung zur Vereinfachung des Einstiegs ins Studium Erstellung von ausführbaren Programmen für den Computer Denk- und Vorgehensweisen

Mehr

Statischevs. Dynamische Malwareanalyse

Statischevs. Dynamische Malwareanalyse Statischevs. Dynamische Malwareanalyse A day in the life of a malware analyst Florian Nentwich, Georg Kremsner Security Forum Hagenberg, 24.03.2010 Malware Statistik täglich 20k bis 40k Samples neu 8 Mitarbeiter

Mehr

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java Software-Architektur basierend auf dem Plug-in-Konzept Aufteilung: Probleme mit normaler/alter Software Ziele des Software Engineerings Die

Mehr

Wir schlagen den C++ Compiler. oder. manchmal darf es etwas (x86) Assembler sein

Wir schlagen den C++ Compiler. oder. manchmal darf es etwas (x86) Assembler sein Wir schlagen den C++ Compiler oder manchmal darf es etwas (x86) Assembler sein Was Euch erwartet 1 Motivation 2 Einordnung 3 Grundlagen 4 Live-Coding 5 Beispiele 6 Fazit wieso stehe ich hier, wieso solltet

Mehr

Effizientes Programmieren

Effizientes Programmieren Effizientes Programmieren Effizientes Programmieren (19.05.2015) Pit Pietsch Agenda 1 2 3 4 5 2 / 33 Effizientes Programmieren (19.05.2015) Section 1 3 / 33 Effizientes Programmieren (19.05.2015) Grundproblem

Mehr

C-Programmierkurs Mathematik

C-Programmierkurs Mathematik Mathematik WS 2018/2019 Dr. Bodo Kalthoff Speicher für Werte Variablen Über Variablennamen ansprechbar Sprechende Namen vergeben! Variablen können Zahlen, Buchstaben oder komplexere Werte enthalten Der

Mehr

Erste Schritte mit Eclipse

Erste Schritte mit Eclipse Erste Schritte mit Eclipse März 2008, KLK 1) Java Development Kit (JDK) und Eclipse installieren In den PC-Pools der HAW sind der JDK und Eclipse schon installiert und können mit dem Application Launcher

Mehr

Betriebssysteme KU - Einführungstutorium

Betriebssysteme KU - Einführungstutorium Betriebssysteme KU - Einführungstutorium SWEB-Tutoren 5. Oktober 2008 1 Grundlagen 2 SWEB 3 Kernel Basics Memory Management Details 4 Userspace 5 Hacking 6 Beispiele 7 Assignment 0 Aufgaben eines Betriebssystems

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Informatik I (D-ITET)

Informatik I (D-ITET) Informatik I (D-ITET) Übungsstunde 2, 5.10.2009 ETH Zürich? Übungsgruppenwechsel? Abgabe der Übungen... Bis Mo, 24:00 Theorie: Programme: per mail oder auf Papier.cpp Datei per mail Bin euch noch Demos

Mehr

Übung Rechnerstrukturen. Aufgabenblatt 10 Ausgabe: , Abgabe: :00. Aufgabe 10.1 (Punkte 25) Gruppe Matrikelnummer(n)

Übung Rechnerstrukturen. Aufgabenblatt 10 Ausgabe: , Abgabe: :00. Aufgabe 10.1 (Punkte 25) Gruppe Matrikelnummer(n) 64-041 Übung Rechnerstrukturen Aufgabenblatt 10 Ausgabe: 17.12.14, Abgabe: 7.1.15 24:00 Gruppe Name(n) Matrikelnummer(n) Aufgabe 10.1 (Punkte 25) Entwurf eines Schaltwerks Wir betrachten ein Schaltwerk

Mehr

Vorwort 3 Inhaltsverzeichnis 5 1 Zu diesem Buch Beschreibungskonventionen Glossar 16

Vorwort 3 Inhaltsverzeichnis 5 1 Zu diesem Buch Beschreibungskonventionen Glossar 16 Inhaltsverzeichnis 5 Inhaltsverzeichnis Vorwort 3 Inhaltsverzeichnis 5 1 Zu diesem Buch 14 1.1 Beschreibungskonventionen 15 1.2 Glossar 16 2 Einführung 20 2.1 Aufbau eines Programms 20 H-File (Header-File)

Mehr

Praktikum Mikrocomputertechnik. Anleitung

Praktikum Mikrocomputertechnik. Anleitung Praktikum Mikrocomputertechnik Anleitung Im Praktikum wird der Mikrocontroller 68332 von Motorola verwendet. Dieser Mikrocontroller besteht aus einer 32-Bit CPU und integrierten Peripheriebausteinen (ser.

Mehr

Rechner- organisa-on 2 TOY. Karl C. Posch.

Rechner- organisa-on 2 TOY. Karl C. Posch. Rechner- Technische Universität Graz Ins-tut für Angewandte Informa-onsverarbeitung und Kommunika-onstechnologie organisa-on 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2012. Ausblick. Erste HälEe

Mehr

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Task Wiederholung 1 System SysCalls (1) Wozu? Sicherheit Stabilität Erfordert verschiedene modes of execution: user mode privileged mode

Mehr

Pointer und Array Bugs in C / C++: Werkzeuge jenseits des Debuggers. Klaus Kusche, Juni 2013

Pointer und Array Bugs in C / C++: Werkzeuge jenseits des Debuggers. Klaus Kusche, Juni 2013 Pointer und Array Bugs in C / C++: Werkzeuge jenseits des Debuggers Klaus Kusche, Juni 2013 Inhalt Was ist das Problem? Untaugliche Hilfsmittel: Debugger,... Code mit Sicherheitsgurten = Compiler-basierte

Mehr

Inhaltsverzeichnis. 1 Einleitung 2

Inhaltsverzeichnis. 1 Einleitung 2 Inhaltsverzeichnis 1 Einleitung 2 2 Installation 3 2.1 Windows............................................. 3 2.1.1 Yasm per Konsole nutzen............................... 3 2.1.2 Integration mit Visual

Mehr

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5 Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in

Mehr

Informatik für den Satellitenbau. Toolchains und Crosscompiler

Informatik für den Satellitenbau. Toolchains und Crosscompiler Informatik für den Satellitenbau Toolchains und Crosscompiler Folie 1 Inhalt GNU-Toolchain Crosscompiler Zusammenfassung Folie 2 GNU Toolchain GNU Make GNU Compiler Collection (GCC) GNU Binutils GNU Debugger

Mehr

Debugging und Speicherfehler. Seminar Effiziente Programmierung Kadir Duman

Debugging und Speicherfehler. Seminar Effiziente Programmierung Kadir Duman Debugging und Speicherfehler Seminar Effiziente Programmierung Kadir Duman 01.12.2016 Inhalt Debugging Allgemein Was ist ein Bug? Was ist Debugging? Speicherfehler Allgemein Unterschiedliche Typen von

Mehr

Polymorphie Begriffsklärung und Anwendung

Polymorphie Begriffsklärung und Anwendung Polymorphie Begriffsklärung und Anwendung Klaus Kusche, Mai 2014 Inhalt Ziel & Voraussetzungen Was bedeutet Polymorphie? Die einzelnen Arten der Polymorphie: Konzept Beispiel / Anwendung Nutzen Implementierung

Mehr

Michael Dienert. 8. Dezember 2016

Michael Dienert. 8. Dezember 2016 C für Unverdrossene Michael Dienert 8. Dezember 2016 Vorbemerkung Natürlich könnte ich als erstes C-Programm Hello World nehmen. Um mit dem Kompiler zu spielen, kann man aber auch gleich einen sinnvolleren

Mehr

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 E-Uebung3.fm

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 E-Uebung3.fm E 3. Übung E 3. Übung Besprechung 1. Aufgabe Aufgabe 3: malloc Debugger gdb E.1 1. Include, Deklarationen #include #include void append_element(int value); int remove_element(void);

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

Profiling in Python. Seminar: Effiziente Programmierung. Jan Pohlmann. November Jan Pohlmann Profiling in Python November / 32

Profiling in Python. Seminar: Effiziente Programmierung. Jan Pohlmann. November Jan Pohlmann Profiling in Python November / 32 Profiling in Python Seminar: Effiziente Programmierung Jan Pohlmann November 2017 Jan Pohlmann Profiling in Python November 2017 1 / 32 Gliederung 1 Grundlagen Profiling Was ist das Ziele und Herausforderungen

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100

Mehr

Visual Basic Editor CATIA V5

Visual Basic Editor CATIA V5 Visual Basic Editor CATIA V5 Daniel Frauenrath Allgemein Der Visual Basic Editor ist fester Bestandteil von CATIA V5. Im Gegensatz zum internen Editor für CATScript und CATVbs hat der Visual Basic Editor

Mehr

Assembler (NASM) Crashkurs von Sönke Schmidt

Assembler (NASM) Crashkurs von Sönke Schmidt Sönke Schmidt (NASM) Crashkurs von Sönke Schmidt Berlin, 4.11.2015 Meine Webseite: http://www.soenke-berlin.de NASM Was ist das? nach Wikipedia: Ein ist ein Programmierwerkzeug, das ein in maschinennaher

Mehr

http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu

http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu gdb: debugging code In der Vorlesung hatte ich Teile von http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu und ein eigenes Beispiel diskutiert. Ein Debugger soll helfen Fehler im Programm, die sich

Mehr

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT Neue Technologien effizient nutzen Ehningen, 3. Juli 2014 Rodney Krick rk@aformatik.de aformatik Training & Consulting GmbH & Co. KG

Mehr

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009 Einführung Übungen zur Vorlesung Virtuelle Maschinen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SoSe 2009 Übungsaufgaben 1 Entwickeln

Mehr

Vorlesung 5: Interrupts

Vorlesung 5: Interrupts Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorlesung 5: Interrupts Peter B. Ladkin Kommunikation über den Bus CPU läuft zu einer Taktfrequenz I/O Geräte laufen zu anderen

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Debugging

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Debugging Grundkurs C++ Debugging Berühmte Software-Bugs 1947: Fehlfunktion des Mark II Relay Calculator aufgrund einer Motte. Grundkurs C++ 6 Berühmte Software-Fehler 1996: Ariane 5 muss 40 Sekunden nach dem Start

Mehr

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur. Einführung Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Dynamische Speicherverwaltung

Dynamische Speicherverwaltung Dynamische Speicherverwaltung 1/ 23 Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Dynamische Speicherverwaltung 2/ 23 Gliederung 1 Allgemeines zur Speichernutzung 2 Ziele und Nutzen 3 Anwendung in

Mehr

Programmieren in Haskell Debugging

Programmieren in Haskell Debugging Programmieren in Haskell Debugging Peter Steffen Universität Bielefeld Technische Fakultät 30.01.2009 1 Programmieren in Haskell Debugger Definition laut Wikipedia: Ein Debugger (von engl. bug im Sinne

Mehr

"C - Grundlagen und Konzepte"

C - Grundlagen und Konzepte "C - Grundlagen und Konzepte" Debugging Marcel Hellwig 1hellwig@informatik.uni-hamburg.de Universität Hamburg 6. Juni 2013 SOSE 13 1 / 45 cba This work is licensed under a Creative Commons Attribution-ShareAlike

Mehr

ESP Tutorium. Studienassistent: Ewald Moitzi. E-Mail: prog-tutor-ewald@iicm.edu. Gruppe 9

ESP Tutorium. Studienassistent: Ewald Moitzi. E-Mail: prog-tutor-ewald@iicm.edu. Gruppe 9 ESP Tutorium Studienassistent: Ewald Moitzi E-Mail: prog-tutor-ewald@iicm.edu Gruppe 9 Plan für Heute Zip am pluto Datentypen? If, Schleifen Debugging Fehlerquellen Compiler-Fehlermeldungen Fehlersuche

Mehr

Informatik I Debugging

Informatik I Debugging Informatik I Debugging G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Der erste Computer-Bug Grace Hopper Admiral, US Navy Prof. Dr. G. Zachmann Informatik 1 - WS 05/06 Debugging 2 1

Mehr

Device Management Schnittstellen. Referat von Peter Voser Embedded Development GmbH

Device Management Schnittstellen. Referat von Peter Voser Embedded Development GmbH Device Management Schnittstellen Referat von Peter Voser Embedded Development GmbH Device Management ist Gerätesteuerung Parametrisierung Zugang zu internen Messgrössen und Zuständen Software Upgrade www.embedded-development.ch

Mehr

Bootloader FastBoot von Peter Dannegger

Bootloader FastBoot von Peter Dannegger Bootloader FastBoot von Peter Dannegger Anleitung von Karsten Donat www.karstendonat.de/avr Stand: 05.08.2007 1 Was ist ein Bootloader? Der Bootloader ist selbst ein kleines Programm. Es wird beim Start

Mehr

Assembler. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Assembler. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg Assembler Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2017/2018 V. Sieh Assembler (WS16/17) 1 15 Einleitung

Mehr

RO-Tutorien 17 und 18

RO-Tutorien 17 und 18 RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dr. Thomas Scheidl Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz scheidl@pervasive.jku.at Java Einführung Java

Mehr

Grundlagen der Informatik 2. Typen

Grundlagen der Informatik 2. Typen Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 2 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Vorbesprechung Übung 2 Variablen + Scopes Zahlensysteme Bits&Bytes Datentypen

Mehr

Tutorium #2. Einführung in die strukturierte Programmierung Gruppe 6 Anja Karl.

Tutorium #2. Einführung in die strukturierte Programmierung Gruppe 6 Anja Karl. Tutorium #2 Einführung in die strukturierte Programmierung Gruppe 6 Anja Karl prog-tutor-anja@iicm.edu http://www.student.tugraz.at/anja.karl 1/24 Ablauf des Tutoriums Häufige Fehler in HW1 Wiederholung

Mehr

Simulink: Softwareentwurf für eingebettete Systeme ROS-Arduino-Interface. von Christian Schildwächter

Simulink: Softwareentwurf für eingebettete Systeme ROS-Arduino-Interface. von Christian Schildwächter Simulink: Softwareentwurf für eingebettete Systeme ROS-Arduino-Interface von Christian Schildwächter Simulink Simulink S-Functions Softwareprojekt ROS-Arduino-Interface Simulink 3 LIVE DEMO 4 External

Mehr

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches

Mehr

16. März 2016 artb5-v1.1

16. März 2016 artb5-v1.1 C 16. März 2016 artb5-v1.1 Inhaltsverzeichnis C 2 Was ist ein Programm?........................ 2 Was ist C?............................... 3 Grundgerüst - Hallo Welt....................... 3 Tools und

Mehr

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 K-Uebung9.fm

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 K-Uebung9.fm K 9. Übung K 9. Übung K-1 Überblick Besprechung 7. Aufgabe (jbuffer) Unix, C und Sicherheit K.1 Mögliche Programmsequenz für eine Passwortabfrage in einem Server- Programm: int main (int argc, char *argv[])

Mehr

Hinweise C-Programmierung

Hinweise C-Programmierung Hinweise C-Programmierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017 V. Sieh Hinweise C-Programmierung

Mehr

Basiswissen in Informatik

Basiswissen in Informatik Basiswissen in Informatik PD Dr. WS 2006/07 Programmieren I 2 stündige Vorlesung mit Übung Kapitel 2: Typen, Werte, Variablen Ziel: einfache Daten unterscheiden und speichern Nachtrag aus Kapitel 1: Arrays

Mehr

Fehlererkennung. C - Kurs September This work is licensed under a Creative Commons AttributionNonComercialShareAlike 3.0 License.

Fehlererkennung. C - Kurs September This work is licensed under a Creative Commons AttributionNonComercialShareAlike 3.0 License. Fehlererkennung C - Kurs 2012 13. September 2012 This work is licensed under a Creative Commons AttributionNonComercialShareAlike 3.0 License. 1 / 80 Inhaltsverzeichnis 1 Fehlerarten Syntaxfehler Logikfehler

Mehr

Electron - WebDeskApps

Electron - WebDeskApps Electron - WebDeskApps Dies ist der dritte Artikel einer Serie über Electron. Im ersten Artikel wurden die Grundlagen von Electron, und die verschiedenen Ressourcen, die man benötigt um eine Electron-App

Mehr