Workshoptag am Montag, den 04. Mai


  • Windows Security

    For more than a decade, Microsoft has been aggressively adding security mitigations to Windows with the goal of reducing attack surface, containing exploits and eliminating entire classes of bugs.
    In this workshop, meant for Windows software developers and security researchers, you will learn about the various security mitigations have been added to the Windows platform. You will learn how to incorporate these into your applications to improve their security posture. You will obtain a deep understanding of some of the limitations of these security mitigations to help with security research.
    In the hands-on labs, you will build applications with these security mitigations and observe their runtime behavior in a debugger (WinDBG). At the end of the workshop you will walk away with a ton of modular and production ready and source code which you can incorporate in your Windows software or use it for security research. All hands-on labs will be performed on the 64-bit version of Windows 10.

    Goals
    At the end of this day long workshop, you should:
    - Understand the defenses available in Windows
    - Recognize the attack vectors these defenses are designed to mitigate.
    - Identify the version of Windows in which a particular security mitigation was added.
    - Select compiler and linker flags that enable security mitigations for your applications.
    - Use security APIs to incorporate some of the defenses into applications.
    - Understand the impact of these defenses on the runtime behavior of an application.
    - Perform offensive security research around these defenses.

    Prerequisites
    The get the most value from this workshop, you should be well versed with C/C++ programming in a Windows environment. In addition, you must be familiar with native Win32 APIs. To participate in the hands-on labs, you must bring a system running Windows 10 x64 Version 1903 or 1909 Professional/Enterprise Edition with Visual Studio 2019 installed.

    Topics
    - Windows Security Overview
    - Memory Protection
    - Process Mitigation Policies
    - Integrity Levels (IL)
    - Restricted Tokens
    - Stack Cookies (GS)
    - Data Execution Prevention (DEP)
    - Address Space Layout Randomization (ASLR)
    - Arbitrary Code Guard (AGC)
    - Control Flow Graph (CFG)
    - Control-flow Enforcement Technology (CET)
    - App Containers
    - Win32K API Call Filtering
    - Sandboxing Mechanisms

    T.Roy

    Jetzt anmelden!
  • Neu: F# STARTER KIT

    This course explores the F# programming language and ecosystem from scratch. Those coming from a C# or VB .NET background will be especially at home, but this course is equally suitable for those developers with familiarity in other modern languages such as JavaScript, TypeScript or Java. Attendees will be exposed to a set of core functional programming constructs and patterns, and how to apply them in F#, before looking at practical applications of these features and patterns.

    Attendees will work through a number of code-first scenarios that will give the student a firm understanding in the fundamentals of the language and tooling, as well as the confidence to explore more of the language themselves. Labs will be intermixed with examples and use-cases for solving problems using F#.

    This course can be delivered for .NET Framework or .NET Core teams using either Visual Studio or Visual Studio Code.

    Level: Intermediate
    Prerequisites: Experience in a modern language e.g. C#, Java, JavaScript etc.

    Isaac Abraham

    Jetzt anmelden!
  • .NET Architektur


    Der Workshop bietet einen Überblick über verschiedene Architekturimplementierungen und deren Testbarkeit.
    Themen:
    • Service Layer
    • Security
    • MVC und MVVM
    • Object Mapping
    • Best Practices
    • Modernisierung
    • Einbindung Azure

    Zielgruppe: langjährige .NET Entwickler

    André Ruland

    Jetzt anmelden!
  • Die IODA Architecture - Software verständlicher und testbarer sturkturieren


    Softwarearchitekturen werden an bekannten und beliebten Mustern angelegt. Diese Muster wandeln sich, um Softwarearchitektur noch leichter zu machen. Früher war MVC, dann war Schichtenmodell, heute ist Clean Architektur. Programmiersprachen entwickeln sich und werden besser, Frameworks ebenso, Architekturmuster auch. Sollte man denken. Leider sind die Architekturmuster jedoch steckengeblieben. Sie haben zwei Schritte vorangemacht und das Entwicklerleben vereinfacht. Nun allerdings treten sie auf der Stelle oder erzeugen sogar mehr Komplexität, wo sie reduziert werden sollte. Der Workshop arbeitet funktionale Abhängigkeiten als Kernproblem hinter den klassischen Architekturmustern heraus und stellt den Teilnehmern eine grundlegende Lösung vor - die dann von allen anhand einer Anwendung selbst implementiert wird.

    Ralf Westphal

    Jetzt anmelden!
  • Embedded Programmierung mit modernem C++


    Embedded Programmierung ist eine der Schlüsseldomänen von modernem C++. Dank C++ können sie direkt mit der Hardware kommunizieren, besitzen aber auch die Abstraktionen, die zum Entwickeln komplexer Systeme notwendig sind. Modernes C++ bietet viele mächtige Feature für die Embedded Programmierung an. Feature wie die Move-Semantik und constexpr Funktion für hohe Performanz, benutzerdefinierte Literale und Type-Traits für sicherheitskritische System, Smart Zeiger und std::array für den sorgfältigen Umgang mit Ressourcen. Hier sind weitere Antworten in C++ auf die besonderen Anforderungen der Embedded Programmierung, die Inhalt des Workshops sein werden.

    Sicherheitskritische Systeme:
    - Einheitliche Initialisierung mit {}
    - Automatische Typableitung mit auto
    - Benutzerdefinierte Literale
    - Zusicherungen zur Kompilierungszeit

    Hohe Performanz:
    - Lambda-Funktionen
    - Type-Traits
    - constexpr
    - Assoziative Container

    Eingeschränkte Ressource:
    - Move-Semantik
    - Perfect Forwarding
    - Speicherallokation
    - Smart Zeiger

    Nach dem Workshop werden Sie den bekannten Satz von Bjarne Stroustrup über C++11 in der Embedded-Programmierung verstehen: "... make C++ even better for embedded system programming." Ich kann nicht versprechen, dass wir jedes Thema des Workshops in seiner vollen Detailtiefe behandeln werden; ich kann aber versprechen, dass Sie die vollständige Präsentation einschließlich aller C ++ - Quellcodebeispiele erhalten.

    Rainer Grimm

    Jetzt anmelden!
  • C++ Move-Semantik im Detail


    Mit C++11 wurde Mode-Semantik als ein zentrales Thema eingeführt. Auch wenn dieses Thema "unter der Haube" in erheblichem Umfang genutzt wird, besteht bei vielen Programmierern immer noch ein "ungesundes Halbwissen" dazu. Und da Move-Semantik selbst die Programmierung von einfachsten Klassen mit String-Membern oder Containern beeinflusst, wird damit das Potential für bessere Performance regelmäßig verschenkt. Dieser Workshop gibt einen Einblick in die Geheimnisse der Move-Semantik und zeigt auf welchen Ebenen man am besten wie davon profitiert. Nach einer ersten Einführung werden die wichtigsten Themen mit den dafür vorgesehenen Sprachmitteln im Detail erläutert. Themen: rvalue referenzen, move(), forward<>(), auto&&, decltype(auto), noexcept, xvalues, move-only Typen.

    Nicolai Josuttis

    Jetzt anmelden!