This document provides an overview of analyzing Windows programs for malware analysis. It discusses key Windows concepts like processes, threads, DLLs, the registry, services, handles, and the Windows API. It notes various API functions for interacting with these components and points to additional online resources for further reading. The document also references an upcoming lab and lecture on COM and mentions other security capture the flag events.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
73 views17 pages
03 Analyzing Windows Programs
This document provides an overview of analyzing Windows programs for malware analysis. It discusses key Windows concepts like processes, threads, DLLs, the registry, services, handles, and the Windows API. It notes various API functions for interacting with these components and points to additional online resources for further reading. The document also references an upcoming lab and lecture on COM and mentions other security capture the flag events.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17
Analyzing Windows Programs
Malware Analysis CSCI 4976 - Fall 2015 Branden Clark
Malware - 09/15/2015 Analyzing Windows Programs 1
Side note • If you’re ever bored...check out http:// security.cs.rpi.edu/courses/malware- spring2013/ • Lot’s of links, articles, forums, CrackMe’s, and tutorials are posted there
Malware - 09/15/2015 Analyzing Windows Programs 2
Windows • You’ve probably heard us throw around these terms – Handle – Process – Thread – Registry – DLL – Service –… • And you’re probably wondering what they all mean
Malware - 09/15/2015 Analyzing Windows Programs 3
Windows API • The standard way of interacting with Windows • Implemented through a broad set of DLLs (Dynamic Link Library) – kernel32.dll & ntdll.dll ∘ Low level, interact with kernel (think syscalls) ∘ kernel32.dll and ntdll.dll are always loaded – wininet.dll / ws2_32.dll ∘ Networking – advapi32.dll ∘ “Advanced” API ∘ Services, processes, permissions, crypto, etc – Lots more
Malware - 09/15/2015 Analyzing Windows Programs 4
Processes • A resource container • Each process has its own – virtual address space – threads – Windows bookkeeping information ∘ Usually stored in structs and linked lists ∘ Diagram by Jeremy Blackthorne
• Some API: CreateProcess,
CreateProcessAsUser, EnumProcesses
Malware - 09/15/2015 Analyzing Windows Programs 5
Threads • Scheduled and executed by the OS • Belong to a single process, and share its address space • Have their own thread context and stack
• Some API: CreateThread,
CreateRemoteThread
Malware - 09/15/2015 Analyzing Windows Programs 6
Thread Context • Keeps track of the state of a thread – necessary when there are multiple threads on a system – State is defined by register values • MSDN: “See CONTEXT in WinNT.h”
• Some API: GetThreadContext,
SetThreadContext
Malware - 09/15/2015 Analyzing Windows Programs 7
DLLs • All processes share loaded DLLs – Saves space, only loaded into memory once ∘ Must map into your own virtual address space (LoadLibrary) – Changes only affect your processes address space • Exports functions for use by processes • DllMain is automatically called when loaded
Some API: LoadLibrary, GetProcAddress
Malware - 09/15/2015 Analyzing Windows Programs 8
Registry • Big bookkeeping mess, “Organized” in a hierarchical tree • Used to store configuration information for everything – Key: like a folder – Value entry: like a file • Use regedit to navigate it • Buzzwords: Autorun, Load Order Hijacking, Trusted DLLs • Some API: RegOpenKey, RegSetValue, RegEnumKey
Malware - 09/15/2015 Analyzing Windows Programs 9
Service • Similar to a process • Gets “Installed” – onto disk/registry • Can interact with them via the service manager (services.exe) – Start, stop, suspend, schedule, autostart
• Some API: CreateService,
OpenSCServiceManager, EnumDependentServices
Malware - 09/15/2015 Analyzing Windows Programs 10
Handle • Abstract pointer to something – A specific process, file, registry key, service, etc. – Is sometimes an actual (memory) pointer
Some things that return Handles Some things that use open handles
Malware - 09/15/2015 Analyzing Windows Programs 12
COM (Component Object Model) • Code sharing / interoperability giant by MS • COM servers offer up implementation – Identified by GUIDs, CLSIDs, and IIDs • COM Clients use the interface to exec the implementation • Similar to the #include/DLL method but… – Anyone can offer up new interfaces – Client doesn’t need to know who is implementing it or where
Malware - 09/15/2015 Analyzing Windows Programs 13
Lecture sample • PMA Lab 07-02
Malware - 09/15/2015 Analyzing Windows Programs 14
Lab this Friday • Jeremy Blackthorne from MIT Lincoln Laboratory is coming to speak • No lab if he’s still coming
Malware - 09/15/2015 Analyzing Windows Programs 15
Fairgame & CSAW • Fairgame solutions this Friday!! – fairgame.rpis.ec • CSAW CTF this weekend!
Malware - 09/15/2015 Analyzing Windows Programs 16
References 1. Sikorski, Michael, and Andrew Honig. Practical Malware Analysis the Hands-on Guide to Dissecting Malicious Software. San Francisco: No Starch, 2012. Print.
Advanced Materials Proceedings of The International Conference On Physics and Mechanics of New Materials and Their Applications Phenma 2018 1st Ed Ivan A Parinov Download