Reverse Engineering (RE)
|
|
- Fanny Morgenstern
- vor 5 Jahren
- Abrufe
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
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
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)
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
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
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
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
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
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
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.
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
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
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
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
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)];
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
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
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
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
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
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
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:
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
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
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
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,
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
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,
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
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
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
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
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
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
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
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
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
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,
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
Ü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
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)
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.
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
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
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
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
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
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
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
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
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
Ü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);
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
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
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
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
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
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
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
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
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
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
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
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
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
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
"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
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
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
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
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
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
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
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
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
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
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
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
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
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
Ü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[])
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
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
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
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