160 likes | 309 Views
Win32 Programming. Lesson 1: Why We’re All Here. Why We’re Here…. Okay, maybe that’s too grandiose Windows – in particular Win32 Thirty-what? What it is, why it is…. Today. Rules of the game Book Office Hours Grading Material Learning contract. Rules of the Game.
E N D
Win32 Programming Lesson 1: Why We’re All Here
Why We’re Here… • Okay, maybe that’s too grandiose • Windows – in particular Win32 • Thirty-what? • What it is, why it is…
Today • Rules of the game • Book • Office Hours • Grading • Material • Learning contract
Rules of the Game • I actually want you to learn this! • Parrots don’t learn • That means understand the material • I most certainly don’t know all of this (especially when it comes to .NET and 64-bit Windows) • In order to learn it, you’ll have to practice • Do it… and do it some more (practice makes permanent!)
Book • Quite simply the finest book on Windows • Windows via C/C++Richter & NasarreISBN-13: 978-0-7356-2424-5 • Textbook is required – you have NO CHANCE of passing this class without it! • The book – if you read it – is also highly likely to make you a better programmer
Office Hours • There is no excuse for silently failing this class! • Email • Office hours: TR 930-1030 • But if you really need to see me, just come and find me • Class website: http://malware.org/SWE5320.html • NOTE: Slides are from last year, and will be updated as we go! If you get ahead of me, you may end up doing extra (but not pointless) work
Grading • Pretty simple • … but very different from last year • We’ll be using source code control this year • SVN: I use the Tortoise client • DO execute a “make clean” before sending! • A-F. No F’s please. • Graded on syntax, functionality and comments • Yes, comments! • You are also graded on when you turn in updates – most of these assignments will take a while, so SVN lets me see how you are progressing • DO NOT ask for an extension the day something is due (or the night before) • Late assignments earn you an F. Non-negotiable. • No reasonable request refused! (I want you to pass) • Be warned, I will be taking attendance this year. If you miss > 25% of the classes you earn an automatic F
Scoring • 15% class participation • 20% midterm • 25% final • 50% assignments • (110% nonsense…)
Caveat Emptor • This is not going to be an easy class • It will assume a working knowledge of C and C++ • Assembly will help, but isn’t required • It’s going to have a lot of assignments • Drop now (but first, wait and see why…)
Material • Win32 is a critical operating system to understand • Even if you end up using Unix, you’ll need to understand Windows • I promise you that by the end of this term you will understand the internals of Windows like you never thought possible
What we’re Covering • Windows Basics • Kernel Objects • Unicode • Threads, Processes, Jobs, Fibers • Thread synchronization • Windows Memory Architecture • The stack • Memory-mapped files • Writing your own DLLs • DLL injection and API hooking • Exception Handling • Messaging and Message injection • .NET and Win32 API interaction
Debugging • All of the above will FORCE you to learn how to use a debugger • You can’t printf from a kernel mode driver (easily)
I Promise • To do my very best to treat you with respect at all times • To focus on teaching you things you need to know, not things that are easy to teach • To make your learning my number one priority this semester (however, be warned, I will be travelling – sorry)
In return… • I expect you to • Show up on time, ready to work • Treat me and your classmates respectfully • Turn in assignments which are your own • Tell me when you get completely stuck • Help me improve this course by commenting helpfully!
Plagiarism Policy • Rule 1: There is no excuse for plagiarism. Period. • Rule 2: Anyone caught plagiarizing will be turned in to the University after we’ve talked about it. You will get an opportunity to appeal if you think you’ve been treated unfairly, but it will be a formal appeal handled by FIT, not me. • Rule 3: No exceptions. Not only are you defrauding your classmates when you plagiarize, but you’re cheating yourself as you miss out on the chance to learn, which is why you’re here (hopefully)
Summary • Won’t be an easy class • But should be a useful one • Heavy course load – expect about 2 hours of study for every hour in class minimum • Not work just for work’s sake – it’s the only way to learn this stuff • Good luck ;)