Clone of https://github.com/rmusser01/Infosec_Reference . For those who would prefer to not be tracked by MS.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1132 lines
95 KiB

5 years ago
5 years ago
3 years ago
5 years ago
3 years ago
3 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. # System Internals of Windows; OS X; Linux; ARM
  2. ----------------------------------------------------------------------
  3. ## Table of Contents
  4. - [General Internals](#general)
  5. - [Linux Internals](#linux)
  6. - [Linux General](#lgen)
  7. - [Linux Internals](#linternals)
  8. - [Boot Process](#lboot)
  9. - [Drivers](#ldrivers)
  10. - [ELF](#lelf)
  11. - [Exploit Mitigations](#lex)
  12. - [FileSystems](#lfs)
  13. - [Kernel](#lkernel)
  14. - [Memory](#lmem)
  15. - [Out-of-Memory(OOM) Killer](#loom)
  16. - [Processes](#lproc)
  17. - [Syscalls](#lps)
  18. - [X Window System](#lx)
  19. - [macOS Internals](#macos)
  20. - [Kernel Extensions(KEXTs)](#kexts)
  21. - [Windows Internals](#winternals)
  22. - [Access Control](#wac)
  23. - [Accounts](#wacs)
  24. - [Active Directory](#wad)
  25. - [Advanced Threat Protection(ATP)](#watp)
  26. - [Alternate Data Streams](#wads)
  27. - [Anti-Malware Scan Interface](#wamsi)
  28. - [Windows Native API](#winapi)
  29. - [App Containers](#waptain)
  30. - [Application Shims](#wapshim)
  31. - [Authentication](#wauth)
  32. - [Digest Authentication](#wdig)
  33. - [Authenticode](#wauthentic)
  34. - [AutoStart Locations](#wauto)
  35. - [Background Intelligent Transfer Service](#wbits)
  36. - [Boot Process](#wboot)
  37. - [Callbacks](#wcall)
  38. - [Common Log File System](#wclfs)
  39. - [(Distributed) Component Object Model](#wcom)
  40. - [Credential Storage](#wcreds)
  41. - [Credential Provider](#wcredsp)
  42. - [Dynamic Data Exchange](#wdde)
  43. - [Device Guard](#wdg)
  44. - [DLLs](#wdll)
  45. - [DNS](#wdns)
  46. - [Drivers](#drivers)
  47. - [Event Tracing for Windows](#wetw)
  48. - [Exchange Web Services](#wews)
  49. - [Exploit Mitigations](#wex)
  50. - [File Formats](#wff)
  51. - [Common Log File System](#wffclfs)
  52. - [.NET](#finet)
  53. - [PE32](#pe32)
  54. - [Files, Paths, and Namespaces](#wfiles)
  55. - [Guarded Fabric/Shielded VMs](#wgf)
  56. - [Handles](#whandles)
  57. - [HTML Applications](#whta)
  58. - [Hyper-V](#whyperv)
  59. - [HyperVisor Code Integrity](#hvci)
  60. - [Interrupt Descriptor Table](#widt)
  61. - [Isolated User Mode](#wium)
  62. - [Kerberos](#wkerb)
  63. - [Kernel](#wkern)
  64. - [Callbacks](#wkcall)
  65. - [Handles & Objects](#wkobj)
  66. - [Transaction Manager](#wtm)
  67. - [Lightweight Directory Access Protocol](#wldap)
  68. - [Linux Subsystem](#wls)
  69. - [LNK Files](#wlnk)
  70. - [Local Security Authority](#wlsa)
  71. - [Logon](#wlogon)
  72. - [Memory](#wmem)
  73. - [Named Pipes](#wnamed)
  74. - [.NET](#wnet)
  75. - [Netlogon](#wnetlog)
  76. - [Networking](#winnet)
  77. - [NTFS](#ntfs)
  78. - [NTLM](#wntlm)
  79. - [PE Loader & Execution Environment](#wpenv)
  80. - [Powershell](#wps)
  81. - [Printing](#wprint)
  82. - [Processes/Threads](#wproc)
  83. - [101](#wproc101)
  84. - [Info](#wpinfo)
  85. - [Asynchronous Procedure Call](#wapc)
  86. - [DLL](#pdll)
  87. - [_EPROCESS](#weprocess)
  88. - [Export/Import Address Table](#pieat)
  89. - [Fibers](#pfibers)
  90. - [Handle Table](#phtable)
  91. - [Process Environment Block](#wpeb)
  92. - [Protected Processes](#ppl)
  93. - [Thread Environment Block](#ptib)
  94. - [Thread Local Storage](#wtls)
  95. - [Structured Exception Handling](#peh)
  96. - [Prefetch](#wprefetch)
  97. - [Registry](#wreg)
  98. - [Remote Desktop](#wrdp)
  99. - [User Rights](#wur)
  100. - [RPC](#wrpc)
  101. - [Sandboxing](#wsb)
  102. - [Scripting Host](#wsh)
  103. - [Security Descriptor Definition Language](#wsddl)
  104. - [Security Support Providers](#wssp)
  105. - [Services](#wservice)
  106. - [Service Accounts](#wserva)
  107. - [Server Message Block(SMB)](#wsmb)
  108. - [Sessions](#wsesh)
  109. - [Subsystems](#wsub)
  110. - [Symbol Files](#wsymbol)
  111. - [Syscalls](#wsyscall)
  112. - [System Service Descriptor Table](#wssdt)
  113. - [Tokens](#wtokens)
  114. - [User Account Control(UAC)](#wuac)
  115. - [Volume Shadow Copy Service](#wvss)
  116. - [Windows Filtering Platform](#wfp)
  117. - [Windows Communication Foundation](#wcf)- [Linux Reference](#linuxref)
  118. - [Miscellaneous](#miesc)
  119. - [ARM Reference](#ARM)
  120. - [Kerberos / Related](#kerberos)
  121. ----------------------------------------------------------------------
  122. ##### To Do:
  123. * Stuff
  124. * clear backlog
  125. * add missing things
  126. ------------------------------------------------------------------------------------------------------------------------------
  127. ## <a name="general">General OS Agnostic Internals</a>
  128. * **Building an OS**
  129. * [The little book about OS development](https://littleosbook.github.io/)
  130. * [How to Make a Computer Operating System in C++](https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System)
  131. * **Boot Process**
  132. * **File Systems**
  133. * **Memory**
  134. * Paging
  135. * [Introduction to Paging - Philipp Oppermann](https://os.phil-opp.com/paging-introduction/)
  136. * **Processes**
  137. * **Unsorted Stuff**
  138. * [C Function Call Conventions and the Stack](https://archive.is/o2nD5)
  139. * [What a C programmer should know about memory](http://marek.vavrusa.com/c/memory/2015/02/20/memory/)
  140. * [Event log explanations for various systems(not just windows)](http://eventopedia.cloudapp.net/Events/?/Operating+System)
  141. * [duartes.org - internals](http://duartes.org/gustavo/blog/category/internals/)
  142. ------------------------------------------------------------------------------------------------------------------------------
  143. ------------------------------------------------------------------------------------------------------------------------------
  144. ### <a name="linux">Linux Internals</a>
  145. * **Linux General**<a name="lgen"></a>
  146. * [Introduction to Linux - Machtelt Garrels](http://www.tldp.org/LDP/intro-linux/html/intro-linux.html)
  147. * Excellent doc covering every aspect of linux. Deserves at least 1 skim through.
  148. * [Linux Documentation Project](http://www.tldp.org/)
  149. * The Linux Documentation Project is working towards developing free, high quality documentation for the Linux operating system. The overall goal of the LDP is to collaborate in all of the issues of Linux documentation.
  150. * [Bash Guide for Beginners](http://www.tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html)
  151. * [pagexec - GRSEC](https://pax.grsecurity.net/docs/pageexec.txt)
  152. * **Linux Internals**<a name="linternals"></a>
  153. * **101**
  154. * **Info**
  155. * [linux-insides](https://www.gitbook.com/book/0xax/linux-insides/details)
  156. * A series of posts about the linux kernel. The goal is simple - to share my modest knowledge about the internals of the linux kernel and help people who are interested in the linux kernel, and other low-level subject matter.
  157. * [Introduction to Linux - Machtelt Garrels](http://www.tldp.org/LDP/intro-linux/html/intro-linux.html)
  158. * Excellent doc covering every aspect of linux. Deserves at least 1 skim through.
  159. * [Linux Kernel Security Subsystem Wiki](https://kernsec.org/wiki/index.php/Main_Page)
  160. * This is the Linux kernel security subsystem wiki, a resource for developers and users.
  161. * **Compilers/Exploit Mitigations**
  162. * [Linkers and Loaders - Book](http://www.iecc.com/linker/)
  163. * These are the manuscript chapters for my Linkers and Loaders, published by Morgan-Kaufman. See the book's web site for ordering information.
  164. * All chapters are online for free at the above site.
  165. * [Linker and Libraries](http://docs.oracle.com/cd/E19457-01/801-6737/801-6737.pdf)
  166. * **Boot Process**<a name="lboot"></a>
  167. * **101**
  168. * [Kernel booting process](https://github.com/0xAX/linux-insides/tree/master/Booting)
  169. * This chapter describes linux kernel booting process.
  170. * **Info**
  171. * **Drivers**<a name="ldrivers"></a>
  172. * **101**
  173. * **Info**
  174. * [Linux Device Drivers book](http://www.makelinux.net/ldd3/)
  175. * **ELF**<a name="lelf"></a>
  176. * **101**
  177. * [The 101 of ELF Binaries on Linux: Understanding and Analysis](https://linux-audit.com/elf-binaries-on-linux-understanding-and-analysis/)
  178. * [ELF Format](http://www.skyfree.org/linux/references/ELF_Format.pdf)
  179. * [The ELF Object File Format by Dissection - Eric Youngdale(1995)](https://www.linuxjournal.com/article/1060)
  180. * **Info**
  181. * [Understanding the ELF](https://medium.com/@MrJamesFisher/understanding-the-elf-4bd60daac571)
  182. * [The Anatomy of an Executable - mewmew](https://github.com/mewrev/dissection)
  183. * The dissection of a simple "hello world" ELF binary.
  184. * **Exploit Mitigations**<a name="lex"></a>
  185. * **101**
  186. * [Linux GLibC Stack Canary Values](https://xorl.wordpress.com/2010/10/14/linux-glibc-stack-canary-values/)
  187. * [Stack Smashing Protector](http://wiki.osdev.org/Stack_Smashing_Protector)
  188. * **Info**
  189. * **FileSystems**<a name="lfs"></a>
  190. * **101**
  191. * **Info**
  192. * Linux Filesystem infographic
  193. * [Part 1](http://i.imgur.com/EU6ga.jpg)
  194. * [Part 2](http://i.imgur.com/S5Ds2.jpg)
  195. * **Kernel**<a name="lkernel"></a>
  196. * **101**
  197. * **Info**
  198. * [Linux Kernel Explanation/Walk through](http://www.faqs.org/docs/Linux-HOWTO/KernelAnalysis-HOWTO.html)
  199. * [Linux Kernel Map](http://www.makelinux.net/kernel_map/)
  200. * Interactive map of the Linux Kernel
  201. * [Linux kernel development(walkthrough)](https://github.com/0xAX/linux-insides/blob/master/Misc/contribute.md)
  202. * **Memory**<a name="lmem"></a>
  203. * **101**
  204. * [How the Kernel manages Memory - Linux](http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory/)
  205. * [Understanding glibc malloc](https://sploitfun.wordpress.com/2015/02/10/understanding-glibc-malloc/)
  206. * [Memory Management: Paging](https://www.cs.rutgers.edu/~pxk/416/notes/09a-paging.html)
  207. * [Anatomy of a program in memory](http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory/)
  208. * Writeup on the structure of program memory in Linux.
  209. * [Understanding !PTE - Non-PAE and X64](http://blogs.msdn.com/b/ntdebugging/archive/2010/06/22/part-3-understanding-pte-non-pae-and-x64.aspx?Redirected=true)
  210. * **Info**
  211. * [Memory Translation and Segmentation](http://duartes.org/gustavo/blog/post/memory-translation-and-segmentation/)
  212. * **Out-of-Memory(OOM) Killer**<a name="loom"></a>
  213. * [Taming the OOM killer - Goldwyn Rodrigues](https://lwn.net/Articles/317814/)
  214. * [OOM_Killer - linux-mm.org](https://linux-mm.org/OOM_Killer)
  215. * [How does the OOM killer decide which process to kill first? - stackexchange](https://unix.stackexchange.com/questions/153585/how-does-the-oom-killer-decide-which-process-to-kill-first)
  216. * [OOM - Linux kernel user's and administrator's guide](https://static.lwn.net/kerneldoc/admin-guide/mm/concepts.html)
  217. * [How to diagnose causes of oom-killer killing processes - Stackexchange](https://serverfault.com/questions/134669/how-to-diagnose-causes-of-oom-killer-killing-processes)
  218. * [Linux Kernel limits - eloquence.marxmeier](http://eloquence.marxmeier.com/sdb/html/linux_limits.html)
  219. * This document provides an overview of the default Linux Kernel limits (kernel parameter) and where they are defined.
  220. * [The OOM killer may be called even when there is still plenty of memory available - bl0g.krunch.be](http://bl0rg.krunch.be/oom-frag.html)
  221. * [How to Configure the Linux Out-of-Memory Killer - Robert Chase](https://www.oracle.com/technical-resources/articles/it-infrastructure/dev-oom-killer.html)
  222. * **Processes**<a name="lproc"></a>
  223. * **101**
  224. * **Info**
  225. * [Killing a process and all of its descendants - Igor Sarcevic](http://morningcoffee.io/killing-a-process-and-all-of-its-descendants.html)
  226. * [UNIX one-liner to kill a hanging Firefox process - Vasudev Ram](https://jugad2.blogspot.com/2008/09/unix-one-liner-to-kill-hanging-firefox.html?m=1)
  227. * **Syscalls**<a name="lps"></a>
  228. * **101**
  229. * **Info**
  230. * [FlexSC: Flexible System Call Scheduling with Exception-Less System Calls](https://www.cs.cmu.edu/~chensm/Big_Data_reading_group/papers/flexsc-osdi10.pdf)
  231. * [List of Linux/i386 system calls](http://asm.sourceforge.net/syscall.html)
  232. * [Linux Syscall Table](http://www.informatik.htw-dresden.de/~beck/ASM/syscall_list.html)
  233. * Complete listing of all Linux Syscalls
  234. * **X Window System**<a name="lx"></a>
  235. * [X Window System Explained](https://magcius.github.io/xplain/article/index.html)
  236. * [Foreign LINUX](https://github.com/wishstudio/flinux)
  237. * Foreign LINUX is a dynamic binary translator and a Linux system call interface emulator for the Windows platform. It is capable of running unmodified Linux binaries on Windows without any drivers or modifications to the system. This provides another way of running Linux applications under Windows in constrast to Cygwin and other tools.
  238. ------------------------------------------------------------------------------------------------------------------------------
  239. ------------------------------------------------------------------------------------------------------------------------------
  240. ### <a name="macos">OS X Internals</a>
  241. * **Kernel Extensions(KEXTs)**<a name="kexts"></a>
  242. * [Kernel Extension Overview - developer.apple](https://developer.apple.com/library/content/documentation/Darwin/Conceptual/KernelProgramming/Extend/Extend.html)
  243. * **Tools**
  244. * [Instruments - OS X system analysis](https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/Introduction/Introduction.html)
  245. * Instruments is a performance-analysis and testing tool for dynamically tracing and profiling OS X and iOS code. It is a flexible and powerful tool that lets you track a process, collect data, and examine the collected data. In this way, Instruments helps you understand the behavior of both user apps and the operating system.
  246. ------------------------------------------------------------------------------------------------------------------------------
  247. ------------------------------------------------------------------------------------------------------------------------------
  248. ### <a name="Winternals">Windows Internals</a>
  249. * [Windows IT professional documentation - MS](https://github.com/MicrosoftDocs/windows-itpro-docs)
  250. * **Windows Internals**
  251. * [theForger's Win32 API Programming Tutorial](http://www.winprog.org/tutorial/)
  252. * [x86 Disassembly/Windows Executable Files - WikiBooks](https://en.wikibooks.org/wiki/X86_Disassembly/Windows_Executable_Files)
  253. * [WinAPIs for Hackers](https://www.bnxnet.com/wp-content/uploads/2015/01/WinAPIs_for_hackers.pdf)
  254. * [About Atom Tables](https://msdn.microsoft.com/en-us/library/windows/desktop/ms649053(v=vs.85).aspx)
  255. * [GlobalGetAtomName function](https://msdn.microsoft.com/en-us/library/windows/desktop/ms649063(v=vs.85).aspx)
  256. * [windows-operating-system-archaeology](https://github.com/subTee/windows-operating-system-archaeology)
  257. * subTee stuff
  258. * [BATTLE OF SKM AND IUM - How Windows 10 rewrites OS Architecture - Alex Ionescu](http://www.alex-ionescu.com/blackhat2015.pdf)
  259. * [RtlEncryptMemory function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa387693(v=vs.85).aspx)
  260. * [RtlDecryptMemory function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa387692(v=vs.85).aspx)
  261. * **Unsorted**
  262. * [Waitfor - technet.ms](https://technet.microsoft.com/en-us/library/cc731613(v=ws.11).aspx?t=1&cn=ZmxleGlibGVfcmVjcw%3D%3D&iid=22f4306f9238443891cea105281cfd3f&uid=150127534&nid=244+289476616)
  263. * [Windows Data Protection - msdn.ms](https://msdn.microsoft.com/en-us/library/ms995355.aspx)
  264. * [Elevate through ShellExecute - msdn](https://blogs.msdn.microsoft.com/vistacompatteam/2006/09/25/elevate-through-shellexecute/)
  265. * [Securing Privileged Access](https://docs.microsoft.com/en-us/windows-server/identity/securing-privileged-access/securing-privileged-access)
  266. * [Windows Operating System Archaeology](https://www.slideshare.net/enigma0x3/windows-operating-system-archaeology)
  267. * **Access Control**<a name="wac"></a>
  268. * **101**
  269. * [Mandatory Integrity Control](https://msdn.microsoft.com/en-gb/library/windows/desktop/bb648648(v=vs.85).aspx)
  270. * **Info**
  271. * [Windows Access Control Demystified](http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=E1A09F166B29C17D2CD38C70A02576E4?doi=10.1.1.88.1930&rep=rep1&type=pdf)
  272. * **Accounts**<a name="wacs"></a>
  273. * **101**
  274. * [AD Accounts - docs.ms](https://technet.microsoft.com/itpro/windows/keep-secure/active-directory-accounts)
  275. * [AD Security Groups](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/active-directory-security-groups)
  276. * [Microsoft Accounts - docs.ms](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/microsoft-accounts)
  277. * [Service Accounts - docs.ms](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/service-accounts)
  278. * [Special Identities - docs.ms](https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/special-identities)
  279. * [Group Managed Service Accounts Overview - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview)
  280. * [Managed Service Accounts - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd378925(v=ws.10))
  281. * [Getting Started with Group Managed Service Accounts - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/group-managed-service-accounts/getting-started-with-group-managed-service-accounts)
  282. * [Managed Service Accounts - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd378925(v=ws.10))
  283. * [Managed Service Accounts - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff641731(v=ws.10))
  284. * [Service Accounts Step-by-Step Guide - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd548356(v=ws.10))
  285. * **Info**
  286. * AD Accounts
  287. * Microsoft Accounts
  288. * Services Accounts
  289. * Managed Service Accounts
  290. * Group Managed Service Accounts
  291. * **Active Directory**<a name="wad"></a>
  292. * **101**
  293. * [Active Directory Architecture](https://technet.microsoft.com/en-us/library/bb727030.aspx)
  294. * [AD Local Domain groups, Global groups and Universal groups.](https://ss64.com/nt/syntax-groups.html)
  295. * [Active Directory Control Paths](https://github.com/ANSSI-FR/AD-control-paths)
  296. * Active Directory Control Paths auditing and graphing tools
  297. * [[MS-ADTS]: Active Directory Technical Specification](https://msdn.microsoft.com/en-us/library/cc223122.aspx)
  298. * Specifies the core functionality of Active Directory. Active Directory extends and provides variations of the Lightweight Directory Access Protocol (LDAP).
  299. * [How the Data Store Works - technet.ms](https://technet.microsoft.com/en-us/library/cc772829%28v=ws.10%29.aspx)
  300. * [KCC and Topology Generation - technet.ms](https://technet.microsoft.com/en-us/library/cc961781.aspx?f=255&MSPPError=-2147217396)
  301. * The KCC is a built-in process that runs on all domain controllers. It is a dynamic-link library that modifies data in the local directory in response to systemwide changes, which are made known to the KCC by changes to the data within Active Directory. The KCC generates and maintains the replication topology for replication within sites and between sites.
  302. * [How Domain and Forest Trusts Work - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc773178(v=ws.10))
  303. * **Info**
  304. * **Group Policy**
  305. * [Group Policy - Wikipedia](https://en.wikipedia.org/wiki/Group_Policy)
  306. * **Advanced Threat Protection(ATP)**<a name="watp"></a>
  307. * **101**
  308. * [Windows Defender Advanced Threat Protection - docs.ms](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection)
  309. * **Info**
  310. * [Windows Defender ATP data storage and privacy - docs.ms](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-atp/data-storage-privacy-windows-defender-advanced-threat-protection)
  311. * This document explains the data storage and privacy details related to Windows Defender ATP
  312. * **Alternate Data Streams**<a name="wads"></a>
  313. * **101**
  314. * [NTFS Alternate Data Streams - winitor](https://www.winitor.com/pdf/NtfsAlternateDataStreams.pdf)
  315. * [Introduction to ADS: Alternate Data Streams](https://hshrzd.wordpress.com/2016/03/19/introduction-to-ads-alternate-data-streams/)
  316. * **Info**
  317. * [Kurt Seifried Security Advisory 003 (KSSA-003)](https://seifried.org/security/advisories/kssa-003.html)
  318. * **Anti-Malware Scan Interface**<a name="wamsi"></a>
  319. * **101**
  320. * [Antimalware Scan Interface Reference](https://msdn.microsoft.com/en-us/library/windows/desktop/dn889588(v=vs.85).aspx)
  321. * [How the Antimalware Scan Interface (AMSI) helps you defend against malware](https://docs.microsoft.com/en-us/windows/win32/amsi/how-amsi-helps)
  322. * **Info**
  323. * [Protecting Anti-Malware Services - docs.ms](https://docs.microsoft.com/en-us/windows/win32/services/protecting-anti-malware-services-)
  324. * [AMSI_RESULT enumeration (amsi.h)](https://docs.microsoft.com/en-us/windows/win32/api/amsi/ne-amsi-amsi_result)
  325. * The AMSI_RESULT enumeration specifies the types of results returned by scans.
  326. * [AMSIScriptContentRetrieval.ps1 - Matt Graeber](https://gist.github.com/mattifestation/e179218d88b5f100b0edecdec453d9be)
  327. * **Windows Native API**<a name="winapi"></a>
  328. * **101**
  329. * **Info**
  330. * [Windows API Index](https://docs.microsoft.com/en-us/windows/desktop/apiindex/windows-api-list)
  331. * The following is a list of the reference content for the Windows application programming interface (API) for desktop and server applications.
  332. * [Windows-Hacks](https://github.com/LazoCoder/Windows-Hacks)
  333. * Creative and unusual things that can be done with the Windows API.
  334. * **App Containers**<a name="waptain"></a>
  335. * **101**
  336. * [AppContainer Isolation](https://msdn.microsoft.com/en-us/library/windows/desktop/mt595898(v=vs.85).aspx)
  337. * **Info**
  338. * [Demystifying AppContainers in Windows 8 (Part I)](https://blog.nextxpert.com/2013/01/31/demystifying-appcontainers-in-windows-8-part-i/)
  339. * **Application Shims**<a name="wapshim"></a>
  340. * **101**
  341. * [Application Shims](https://technet.microsoft.com/en-us/library/dd837644%28v=ws.10%29.aspx)
  342. * **Info**
  343. * **Authentication**<a name="wauth"></a>
  344. * **101**
  345. * [Windows Authentication Overview - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/windows-authentication/windows-authentication-overview)
  346. * [Windows Authentication Architecture - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/windows-authentication/windows-authentication-architecture)
  347. * [Windows Authentication Technical Overview - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/windows-authentication/windows-authentication-technical-overview)
  348. * [Group Policy Settings Used in Windows Authentication - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/windows-authentication/group-policy-settings-used-in-windows-authentication)
  349. * [Windows Logon and Authentication Technical Overview(Win10) - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/windows-authentication/group-policy-settings-used-in-windows-authentication)
  350. * [Windows Logon and Authentication Technical Overview(Server08R2) - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dn169017(v=ws.10))
  351. * **Digest Authentication**<a name="wdig"></a>
  352. * [What is Digest Authentication? - technet.ms](https://technet.microsoft.com/en-us/library/cc778868%28v=ws.10%29.aspx)
  353. * **Authenticode**<a name="wauthentic"></a>
  354. * **101**
  355. * [Authenticode - MSDN](https://msdn.microsoft.com/en-us/library/ms537359(v=vs.85).aspx)
  356. * Microsoft Authenticode, which is based on industry standards, allows developers to include information about themselves and their code with their programs through the use of digital signatures.
  357. * **Info**
  358. * **AutoStart Locations**<a name="wauto"></a>
  359. * **101**
  360. * **Info**
  361. * [Collection of Windows Autostart locations](http://gladiator-antivirus.com/forum/index.php?showtopic=24610)
  362. * [Windows Program Automatic Startup Locations](http://www.bleepingcomputer.com/tutorials/windows-program-automatic-startup-locations/)
  363. * **Background Intelligent Transfer Service(BITS)**<a name="bits"></a>
  364. * **101**
  365. * [Background Intelligent Transfer Service - docs.ms](https://docs.microsoft.com/en-us/windows/win32/bits/background-intelligent-transfer-service-portal)
  366. * "Background Intelligent Transfer Service (BITS) is used by programmers and system administrators to download files from or upload files to HTTP web servers and SMB file shares. BITS will take the cost of the transfer into consideration, as well as the network usage so that the user's foreground work has as little impact as possible. BITS also handles network interuptions, pausing and automatically resuming transfers, even after a reboot. BITS includes PowerShell cmdlets for creating and managing transfers as well as the BitsAdmin command-line utility."
  367. * [About BITS - docs.ms](https://docs.microsoft.com/en-us/windows/win32/bits/about-bits)
  368. * **Info**
  369. * [About BITS - docs.ms](https://docs.microsoft.com/en-us/windows/win32/bits/about-bits)
  370. * [Using BITS - docs.ms](https://docs.microsoft.com/en-us/windows/win32/bits/using-bits)
  371. * [Best Practices When Using BITS - docs.ms](https://docs.microsoft.com/en-us/windows/win32/bits/best-practices-when-using-bits)
  372. * [Calling into BITS from .NET and C# using Reference DLLs - docs.ms](https://docs.microsoft.com/en-us/windows/win32/bits/bits-dot-net)
  373. * **Boot Process**<a name="wboot"></a>
  374. * **101**
  375. * [BCDEdit /dbgsettings - msdn](https://msdn.microsoft.com/en-us/library/windows/hardware/ff542187(v=vs.85).aspx)
  376. * **Info**
  377. * [Technical Overview of Windows UEFI Startup Process](http://news.saferbytes.it/analisi/2013/10/windows-uefi-startup-a-technical-overview/)
  378. * [In-depth dive into the security features of the Intel/Windows platform secure boot process - Igor Bogdanov(2021)](https://igor-blue.github.io/2021/02/04/secure-boot.html)
  379. * **(User-Mode)Callbacks**<a name="wcall"></a>
  380. * **Common Log File System**<a name="wclfs"></a>
  381. * **101**
  382. * [Common Log File System - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/clfs/common-log-file-system-portal?redirectedfrom=MSDN)
  383. * [Introduction to the Common Log File System - docs.ms](https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/introduction-to-the-common-log-file-system)
  384. * **Info**
  385. * **(Distributed) Component Object Model**<a name="wcom"></a>
  386. * **101**
  387. * [The Component Object Model](https://msdn.microsoft.com/library/ms694363.aspx)
  388. * [COM Fundamentals - docs.ms](https://docs.microsoft.com/en-us/windows/desktop/com/com-fundamentals)
  389. * [[MS-DCOM]: Distributed Component Object Model (DCOM) Remote Protocol - msdn.ms](https://msdn.microsoft.com/en-us/library/cc226801.aspx)
  390. * [DCOM Overview - active-undelete.com](http://active-undelete.com/dcom-overview.htm)
  391. * **Info**
  392. * [Minimal COM object registration](https://blogs.msdn.microsoft.com/larryosterman/2006/01/05/minimal-com-object-registration/)
  393. * [The COM Library - docs.ms](https://docs.microsoft.com/en-us/windows/win32/com/the-com-library)
  394. * [Security in COM - docs.ms](https://docs.microsoft.com/en-us/windows/win32/com/security-in-com)
  395. * [Scripting(COM) - thrysoee.dk](https://web.archive.org/web/20160826221656/http://thrysoee.dk:80/InsideCOM+/ch05e.htm)
  396. * [Active Directory Service Interfaces - docs.ms](https://docs.microsoft.com/en-us/windows/win32/adsi/active-directory-service-interfaces-adsi)
  397. * [CLSID Key - docs.ms](https://docs.microsoft.com/en-us/windows/desktop/com/clsid-key-hklm)
  398. * A CLSID is a globally unique identifier that identifies a COM class object. If your server or container allows linking to its embedded objects, you need to register a CLSID for each supported class of objects.
  399. * The CLSID key contains information used by the default COM handler to return information about a class when it is in the running state.
  400. * [What registry entries are needed to register a COM object.](https://blogs.msdn.microsoft.com/larryosterman/2006/01/11/what-registry-entries-are-needed-to-register-a-com-object/)
  401. * **Credentials**<a name="wcreds"></a>
  402. * **101**
  403. * [Credentials Processes in Windows Authentication - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/windows-authentication/credentials-processes-in-windows-authentication?WT.mc_id=modinfra-30798-socuff)
  404. * **Info**
  405. * [Credentials Processes in Windows Authentication - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/windows-authentication/credentials-processes-in-windows-authentication)
  406. * **Credential Provider**<a name="wcredsp"></a>
  407. * **101**
  408. * [Credential Providers in Windows 10 - msdn](https://msdn.microsoft.com/en-us/library/windows/desktop/mt158211(v=vs.85).aspx)
  409. * "Credential providers are the primary mechanism for user authentication—they currently are the only method for users to prove their identity which is required for logon and other system authentication scenarios. With Windows 10 and the introduction of Microsoft Passport, credential providers are more important than ever; they will be used for authentication into apps, websites, and more. Microsoft provides a variety of credential providers as part of Windows, such as password, PIN, smartcard, and Windows Hello (Fingerprint, Face, and Iris recognition). These are referred to as "system credential providers" in this article. OEMs, Enterprises, and other entities can write their own credential providers and integrate them easily into Windows. These are referred to as "third-party credential providers" in this article."
  410. * [ICredentialProvider interface - msdn](https://msdn.microsoft.com/en-us/library/bb776042(v=vs.85).aspx)
  411. * Exposes methods used in the setup and manipulation of a credential provider. All credential providers must implement this interface.
  412. * [Windows Interactive Logon Architecture - technet](https://technet.microsoft.com/en-us/library/ff404303(v=ws.10))
  413. * [Winlogon and Credential Providers](https://msdn.microsoft.com/en-us/library/windows/desktop/bb648647(v=vs.85).aspx)
  414. * Winlogon is the Windows module that performs interactive logon for a logon session. Winlogon behavior can be customized by implementing and registering a Credential Provider.
  415. * **Info**
  416. * [Registering Network Providers and Credential Managers - msdn](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379389(v=vs.85).aspx)
  417. * [V2 Credential Provider Sample - code.msdn](https://code.msdn.microsoft.com/windowsapps/V2-Credential-Provider-7549a730)
  418. * Demonstrates how to build a v2 credential provider that makes use of the new capabilities introduced to credential provider framework in Windows 8 and Windows 8.1.
  419. * [Custom Credential Provider for Password Reset - blogs.technet](https://blogs.technet.microsoft.com/aho/2009/11/14/custom-credential-provider-for-password-reset/)
  420. * [Starting to build your own Credential Provider](https://blogs.msmvps.com/alunj/2011/02/21/starting-to-build-your-own-credential-provider/)
  421. * If you’re starting to work on a Credential Provider (CredProv or CP, for short) for Windows Vista, Windows Server 2008, Windows Server 2008 R2 or Windows 7, there are a few steps I would strongly recommend you take, because it will make life easier for you.
  422. * **Credential Storage**<a name="wcreds"></a>
  423. * **101**
  424. * [Cached and Stored Credentials Technical Overview(2016) - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh994565(v%3Dws.11))
  425. * **Info**
  426. * [ReVaulting! Decryption and opportunities - Francesco Picasso](https://www.slideshare.net/realitynet/revaulting-decryption-and-opportunities)
  427. * Windows credentials manager stores users’ credentials in special folders called vaults. Being able to access such credentials could be truly useful during a digital investigation for example, to gain access to other protected systems. Moreover, if data is in the cloud, there is the need to have the proper tokens to access it. This presentation will describe vaults’ internals and how they can be decrypted; the related Python Open Source code will be made publicly available. During the session, credentials and vaults coming from Windows 7, Windows 8.1 and Windows 10 will be decrypted, focusing on particular cases of interest. Finally, the presentation will address the challenges coming from Windows Phone, such as getting system-users’ passwords and obtaining users’ ActiveSync tokens.
  428. * **Dynamic Data Exchange**<a name="wdde"></a>
  429. * **101**
  430. * [About Dynamic Data Exchange - msdn.ms](https://msdn.microsoft.com/en-us/library/windows/desktop/ms648774%28v=vs.85%29.aspx)
  431. * **Info**
  432. * [Dynamic Data Exchange - msdn.ms](https://msdn.microsoft.com/en-us/library/windows/desktop/ms648711(v=vs.85).aspx)
  433. * This section provides guidelines for implementing dynamic data exchange for applications that cannot use the Dynamic Data Exchange Management Library (DDEML).
  434. * **Device Guard**<a name="wdg"></a>
  435. * **101**
  436. * [Introduction to Windows Defender Device Guard: virtualization-based security and Windows Defender Application Control - docs.ms](https://docs.microsoft.com/en-us/windows/device-security/device-guard/introduction-to-device-guard-virtualization-based-security-and-windows-defender-application-control)
  437. * **Info**
  438. * **DLLs**<a name="wdll"></a>
  439. * **101**
  440. * [Dynamic-Link Library Security - docs.ms(2018)](https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-security?redirectedfrom=MSDN)
  441. * **Info**
  442. * [Everything You Never Wanted To Know About DLLs](http://blog.omega-prime.co.uk/2011/07/04/everything-you-never-wanted-to-know-about-dlls/)
  443. * [Everything You Ever Wanted to Know about DLLs” - James McNellis(CppCon 2017)](https://www.youtube.com/watch?v=JPQWQfDhICA)
  444. * [Slides](https://github.com/CppCon/CppCon2017/blob/master/Presentations/Everything%20You%20Ever%20Wanted%20to%20Know%20about%20DLLs/Everything%20You%20Ever%20Wanted%20to%20Know%20about%20DLLs%20-%20James%20McNellis%20-%20CppCon%202017.pdf)
  445. * If you build software for Windows, you use DLLs, and it’s likely that you may build DLLs of your own. DLLs are the primary mechanism for packaging and encapsulating code on the Windows platform. But have you ever stopped to think about how DLLs work? What goes into a DLL when you build it, what happens when you link your program with a DLL, or how do DLLs get located and loaded at runtime? Many of us build and use DLLs without fully understanding them. In this session, we’ll give an in-depth introduction to DLLs and how they work. We’ll begin by looking at what’s in a DLL—the kinds of things a DLL can contain and the basic data structures that are used—and the benefits and drawbacks of packaging code in a DLL. We’ll look at how DLLs are loaded, including the details of how the loader locates DLLs and maps them into the process; how dependencies are resolved among DLLs; and DLL lifetime and how DLLs get unloaded. We’ll also look at how DLLs get built, including what makes DLLs “special,” what goes into an import library, and how the linker uses import libraries. Finally, we’ll look at several other miscellaneous topics, including how DLLs interact with threads and thread-local storage, and mechanisms for solving or mitigating the dreaded “DLL hell.”
  446. * **DNS**<a name="wdns"></a>
  447. * **101**
  448. * [[MS-DNSP]: Domain Name Service (DNS) Server Management Protocol - docs.ms(2019)](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/f97756c9-3783-428b-9451-b376f877319a)
  449. * Specifies the Domain Name Service (DNS) Server Management Protocol, which defines the RPC interfaces that provide methods for remotely accessing and administering a DNS server. It is a client and server protocol based on RPC that is used in the configuration, management, and monitoring of a DNS server.
  450. * **Info**
  451. * **Drivers**<a name="wdrivers"></a>
  452. * **101**
  453. * **Info**
  454. * **Samples**
  455. * [Minispy File System Minifilter Driver](https://github.com/Microsoft/Windows-driver-samples/tree/master/filesys/miniFilter/minispy)
  456. * The Minispy sample is a tool to monitor and log any I/O and transaction activity that occurs in the system. Minispy is implemented as a minifilter.
  457. * **Event Tracing for Windows**<a name="wetw"></a>
  458. * **101**
  459. * [About Event Tracing - docs.ms](https://docs.microsoft.com/en-us/windows/win32/etw/about-event-tracing#controllers)
  460. * **Info**
  461. * [ETW Providers Docs](https://github.com/repnz/etw-providers-docs)
  462. * Project to document ETW providers
  463. * [Controlling Event Tracing Sessions - docs.ms](https://docs.microsoft.com/en-us/windows/win32/etw/controlling-event-tracing-sessions)
  464. * [what's wrong with Etw - redp(2020)](https://redplait.blogspot.com/2020/07/whats-wrong-with-etw.html)
  465. * **Tools**
  466. * [TiEtwAgent](https://github.com/xinbailu/TiEtwAgent)
  467. * This project was created to research, build and test different memory injection detection use cases and bypass techniques. The agent utilizes Microsoft-Windows-Threat-Intelligence event tracing provider, as a more modern and stable alternative to Userland-hooking, with the benefit of Kernel-mode visibility.
  468. * **Exchange Web Services**<a name="wews"></a>
  469. * **101**
  470. * [Exchange Web Services Overview - TechEd](https://www.youtube.com/watch?v=wOQMJhrp6GQ)
  471. * **Info**
  472. * [Start using web services in Exchange - msdn 2017](https://msdn.microsoft.com/en-us/library/office/jj900168(v=exchg.150).aspx)
  473. * **Exploit Mitigations**<a name="wex"></a>
  474. * **101**
  475. * [Compiler Security Checks In Depth - MSDN Library](https://msdn.microsoft.com/library/aa290051.aspx)
  476. * [A Crash Course on the Depths of Win32™ Structured Exception Handling](https://www.microsoft.com/msj/0197/exception/exception.aspx)
  477. * [Antimalware Scan Interface Reference](https://msdn.microsoft.com/en-us/library/windows/desktop/dn889588)
  478. * prevents certain kinds of powershell attacks
  479. * **Info**
  480. * [Preventing the Exploitation of Structured Exception Handler (SEH) Overwrites with SEHOP](https://blogs.technet.microsoft.com/srd/2009/02/02/preventing-the-exploitation-of-structured-exception-handler-seh-overwrites-with-sehop/)
  481. * [Windows 8 ASLR Explained](http://blog.ptsecurity.com/2012/12/windows-8-aslr-internals.html)
  482. * **Control Flow Guard(CFG/CFI)**
  483. * **101**
  484. * [Control-flow integrity - Wikipedia](https://en.wikipedia.org/wiki/Control-flow_integrity)
  485. * [Control Flow Guard - docs.ms](https://docs.microsoft.com/en-us/windows/win32/secbp/control-flow-guard)
  486. * "Control Flow Guard (CFG) is a highly-optimized platform security feature that was created to combat memory corruption vulnerabilities. By placing tight restrictions on where an application can execute code from, it makes it much harder for exploits to execute arbitrary code through vulnerabilities such as buffer overflows. CFG extends previous exploit mitigation technologies such as /GS, DEP, and ASLR."
  487. * **Info**
  488. * [How Control Flow Guard Drastically Caused Windows 8.1 Address Space and Behavior Changes](http://www.alex-ionescu.com/?p=246)
  489. * **File Formats**<a name="wff"></a>
  490. * **Common Log File System**<a name="wffclfs"></a>
  491. * **101**
  492. * [Common Log File System - Wikipedia](https://en.wikipedia.org/wiki/Common_Log_File_System)
  493. * [Introduction to the Common Log File System - docs.ms](https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/introduction-to-the-common-log-file-system)
  494. * "The Common Log File System (CLFS) is a general-purpose logging service that can be used by software clients running in user-mode or kernel-mode. This documentation discusses the CLFS interface for kernel-mode clients. For information about the user-mode interface, see Common Log File System in the Microsoft Windows SDK."
  495. * [Common Log File System - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/clfs/common-log-file-system-portal)
  496. * **Info**
  497. * **Misc**
  498. * [[MS-CFB]: Compound File Binary File Format - docs.ms](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cfb/53989ce4-7b05-4f8d-829b-d08d6148375b)
  499. * Specifies the Compound File Binary File Format, a general-purpose file format that provides a file-system-like structure within a file for the storage of arbitrary, application-specific streams of data.
  500. * **.NET**<a name="finet"></a>
  501. * [The .NET File Format(2006)](https://ntcore.com/files/dotnetformat.htm)
  502. * **PE32 File Structure**<a name="pe32"></a>
  503. * **101**
  504. * [PE Format - docs.ms](https://docs.microsoft.com/en-us/windows/win32/debug/pe-format)
  505. * [PEB Structure 32/64 pdf](http://blog.rewolf.pl/blog/wp-content/uploads/2013/03/PEB_Evolution.pdf)
  506. * [PE File Format Graphs](http://blog.dkbza.org/2012/08/pe-file-format-graphs.html?view=mosaic)
  507. * [PE Format notes - corkami](https://github.com/corkami/docs/blob/master/PE/PE.md)
  508. * **Info**
  509. * [Peering Inside the PE: A Tour of the Win32 Portable Executable File Format](https://msdn.microsoft.com/en-us/library/ms809762.aspx?utm_content=buffer4588c&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer)
  510. * [An In-Depth Look into the Win32 Portable Executable File Format - Matt Pietrek(2002)](https://docs.microsoft.com/en-us/previous-versions/bb985992(v=msdn.10)?redirectedfrom=MSDN)
  511. * [Part 2](https://docs.microsoft.com/en-us/archive/msdn-magazine/2002/march/inside-windows-an-in-depth-look-into-the-win32-portable-executable-file-format-part-2)
  512. * [Exploring the MS-DOS Stub - Osanda Malith(2020)](https://osandamalith.com/2020/07/19/exploring-the-ms-dos-stub/)
  513. * [Portable Executable File Format - Krzysztof Kowalczyk](https://blog.kowalczyk.info/articles/pefileformat.html)
  514. * [αcτµαlly pδrταblε εxεcµταblε - Justine Tunney](https://justine.storage.googleapis.com/ape.html)
  515. * [Code](https://raw.githubusercontent.com/jart/cosmopolitan/667ab245fe0326972b7da52a95da97125d61c8cf/ape/ape.S)
  516. * [Cosmopolitan](https://github.com/jart/cosmopolitan)
  517. * Cosmopolitan Libc makes C a build-once run-anywhere language, like Java, except it doesn't need an interpreter or virtual machine. Instead, it reconfigures stock GCC and Clang to output a POSIX-approved polyglot format that runs natively on Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS with the best possible performance and the tiniest footprint imaginable.
  518. * [Exploring the PE File Format via Imports - Anuj Soni(2018)](https://malwology.com/2018/10/05/exploring-the-pe-file-format-via-imports/)
  519. * [Understanding PE Structure, The Layman’s Way – Malware Analysis Part 2 - Satyajit Daulaguphu(2018)](https://tech-zealots.com/malware-analysis/pe-portable-executable-structure-malware-analysis-part-2/)
  520. * **Windows Files, Paths, and Namespaces**<a name="wfiles"></a>
  521. * **101**
  522. * [Naming Files, Paths, and Namespaces - docs.ms](https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#win32-file-namespaces)
  523. * [File path formats on Windows systems - docs.ms](https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats)
  524. * **Info**
  525. * [DOS Lesson 7: DOS Filenames; ASCII - ahuka.com](https://www.ahuka.com/dos-lessons-for-self-study-purposes/dos-lesson-7-dos-filenames-ascii/)
  526. * **Guarded Fabric/Shielded VMs**<a name="wgf"></a>
  527. * **101**
  528. * [Guarded fabric and shielded VMs](https://docs.microsoft.com/en-us/windows-server/virtualization/guarded-fabric-shielded-vm/guarded-fabric-and-shielded-vms-top-node)
  529. * **Info**
  530. * **HTML Applications**<a name="whta"></a>
  531. * **101**
  532. * [HTML Applications - msdn](https://msdn.microsoft.com/en-us/library/ms536471(VS.85).aspx)
  533. * HTML Applications (HTAs) are full-fledged applications. These applications are trusted and display only the menus, icons, toolbars, and title information that the Web developer creates. In short, HTAs pack all the power of Windows Internet Explorer—its object model, performance, rendering power, protocol support, and channel–download technology—without enforcing the strict security model and user interface of the browser. HTAs can be created using the HTML and Dynamic HTML (DHTML) that you already know.
  534. * **Info**
  535. * **Hyper-V**<a name="whyperv"></a>
  536. * **101**
  537. * [Hyper-V internals](https://hvinternals.blogspot.fr/2015/10/hyper-v-internals.html)
  538. * [Hyper-V-Internals - gerhart01](https://github.com/gerhart01/Hyper-V-Internals)
  539. * **Info**
  540. * [Hyper-V internals researches (2006-2021) - gerhart01](https://github.com/gerhart01/Hyper-V-Internals/blob/master/HyperResearchesHistory.md)
  541. * [Hyper-V debugging for beginner](https://hvinternals.blogspot.fr/2015/10/hyper-v-debugging-for-beginners.html)
  542. * [Hyper-V memory internals. Guest OS memory access - @gerhart_x(2019)](https://hvinternals.blogspot.com/2019/09/hyper-v-memory-internals-guest-os-memory-access.html)
  543. * [First Steps in Hyper-V Research - swiat(2018)](https://msrc-blog.microsoft.com/2018/12/10/first-steps-in-hyper-v-research/)
  544. * **HyperVisor Code Integrity**<a name="hvci"></a>
  545. * **101**
  546. * [Hypervisor-Protected Code Integrity (HVCI) - docs.ms](https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/device-guard-and-credential-guard)
  547. * Hypervisor-Protected Code Integrity can use hardware technology and virtualization to isolate the Code Integrity (CI) decision-making function from the rest of the Windows operating system. When using virtualization-based security to isolate Code Integrity, the only way kernel memory can become executable is through a Code Integrity verification.
  548. * **Info**
  549. * **Interrupt Descriptor Table(IDT)**<a name="widt"></a>
  550. * **101**
  551. * [Interrupt descriptor table - Wikipedia](https://en.wikipedia.org/wiki/Interrupt_descriptor_table)
  552. * [Interrupt descriptor table - HandWiki](https://handwiki.org/wiki/Interrupt_descriptor_table)
  553. * "The Interrupt Descriptor Table (IDT) is a data structure used by the x86 architecture to implement an interrupt vector table. The IDT is used by the processor to determine the correct response to interrupts and exceptions."
  554. * [Interrupt Descriptor Table - osdev.org](https://wiki.osdev.org/Interrupt_Descriptor_Table)
  555. * **Info**
  556. * [IDTR - Interrupt Descriptor Table Register Tutorial - ismaelvazquezjr(2020)](https://guidedhacking.com/threads/idtr-interrupt-descriptor-table-register-tutorial.15269/)
  557. * [Interrupt Descriptor Table - IDT - @spotheplanet](https://www.ired.team/miscellaneous-reversing-forensics/windows-kernel-internals/interrupt-descriptor-table-idt)
  558. * [Interrupt Dispatching Internals - CodeMachine](https://codemachine.com/articles/interrupt_dispatching.html)
  559. * **Isolated User Mode**<a name="wium"></a>
  560. * **101**
  561. * [Isolated User Mode (IUM) Processes - docs.ms](https://docs.microsoft.com/en-us/windows/win32/procthread/isolated-user-mode--ium--processes)
  562. * [Isolated User Mode in Windows 10 with Dave Probert - Seth Juarez](https://channel9.msdn.com/Blogs/Seth-Juarez/Isolated-User-Mode-in-Windows-10-with-Dave-Probert)
  563. * [Isolated User Mode Processes and Features in Windows 10 with Logan Gabriel](https://channel9.msdn.com/Blogs/Seth-Juarez/Isolated-User-Mode-Processes-and-Features-in-Windows-10-with-Logan-Gabriel)
  564. * [Isolated User Mode in Windows 10 with Dave Probert](https://channel9.msdn.com/Blogs/Seth-Juarez/Isolated-User-Mode-in-Windows-10-with-Dave-Probert)
  565. * **Info**
  566. * [Battle Of SKM And IUM How Windows 10 Rewrites OS Architecture - Alex Ionescu - BHUSA2015](https://www.youtube.com/watch?v=LqaWIn4y26E&index=15&list=PLH15HpR5qRsXF78lrpWP2JKpPJs_AFnD7)
  567. * [Slides](http://www.alex-ionescu.com/blackhat2015.pdf)
  568. * **Kerberos**<a name="wkerb"></a>
  569. * **101**
  570. * [Kerberos Authentication Overview - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/kerberos/kerberos-authentication-overview)
  571. * [Kerberos (I): How does Kerberos work? – Theory - Eloy Perez](https://www.tarlogic.com/en/blog/how-kerberos-works/)
  572. * [Explain like I’m 5: Kerberos - Lynn Roots](https://www.roguelynn.com/words/explain-like-im-5-kerberos/)
  573. * **Info**
  574. * [Kerberos Delegation, SPNs and More...](https://www.coresecurity.com/blog/kerberos-delegation-spns-and-more)
  575. * [Article Explaining what the KRBTGT account in AD is](http://windowsitpro.com/security/q-what-krbtgt-account-used-active-directory-ad-environment)
  576. * **Lightweight Directory Access Protocol**<a name="wldap"></a>
  577. * **101**
  578. * [Lightweight Directory Access Protocol (v3) - RFC 2251](https://www.ietf.org/rfc/rfc2251.txt)
  579. * **Info**
  580. * **LNK Files**
  581. * **101**
  582. * [Shortcut (computing) - Wikipedia](https://en.wikipedia.org/wiki/.lnk)
  583. * [[MS-SHLLINK]: Shell Link (.LNK) Binary File Format - docs.ms](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-shllink/16cb4ca1-9339-4d0c-a68d-bf1d6cc0f943)
  584. * Specifies the Shell Link Binary File Format, which contains information that can be used to access another data object. The Shell Link Binary File Format is the format of Windows files with the extension "LNK".
  585. * [Shell Links - docs.ms](https://docs.microsoft.com/en-us/windows/win32/shell/links)
  586. * A Shell link is a data object that contains information used to access another object in the Shell's namespace—that is, any object visible through Windows Explorer. The types of objects that can be accessed through Shell links include files, folders, disk drives, and printers. A Shell link allows a user or an application to access an object from anywhere in the namespace. The user or application does not need to know the current name and location of the object.
  587. * **Info**
  588. *
  589. * **Local Security Authority**<a name="wlsa"></a>
  590. * **101**
  591. * [LSA Authentication](https://msdn.microsoft.com/en-us/library/windows/desktop/aa378326%28v=vs.85%29.aspx)
  592. * LSA Authentication describes the parts of the Local Security Authority (LSA) that applications can use to authenticate and log users on to the local system. It also describes how to create and call authentication packages and security packages.
  593. * **Info**
  594. * **Logon**<a name="wlogon"></a>
  595. * **101**
  596. * [Windows Logon Scenarios - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/windows-authentication/windows-logon-scenarios)
  597. * **Info**
  598. * [Fantastic Windows Logon types and Where to Find Credentials in Them - Chirag Salva, Anas Jamal(2021)](https://www.alteredsecurity.com/post/fantastic-windows-logon-types-and-where-to-find-credentials-in-them)
  599. * [Deep dive: Logging on to Windows - Sonia Cuff(2021)](https://techcommunity.microsoft.com/t5/itops-talk-blog/deep-dive-logging-on-to-windows/ba-p/2420705)
  600. * **Memory**<a name="wmem"></a>
  601. * **101**
  602. * **Info**
  603. * [Pushing the Limits of Windows: Virtual Memory](http://blogs.technet.com/b/markrussinovich/archive/2008/11/17/3155406.aspx)
  604. * [Memory Translation and Segmentation](http://duartes.org/gustavo/blog/post/memory-translation-and-segmentation/)
  605. * [Exploring Windows virtual memory management](http://www.triplefault.io/2017/08/exploring-windows-virtual-memory.html)
  606. * **MS Office**
  607. * **101**
  608. * **Info**
  609. * [Introducing the Office (2007) Open XML File Formats - docs.ms](https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2007/aa338205(v=office.12)#office2007aboutnewfileformat_structureoftheofficexmlformats)
  610. * **Named Pipes**<a name="wnamed"></a>
  611. * **101**
  612. * [Named Pipes](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365590(v=vs.85).aspx)
  613. * [CreateNamedPipe function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365150(v=vs.85).aspx)
  614. * [CreateFile function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx)
  615. * ReadFile function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365467(v=vs.85).aspx)
  616. * [WriteFile function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365747(v=vs.85).aspx)
  617. * [How to create an anonymous pipe that gives access to everyone](https://support.microsoft.com/en-us/help/813414/how-to-create-an-anonymous-pipe-that-gives-access-to-everyone)
  618. * **Info**
  619. *
  620. * **.NET**<a name="wnet"></a>
  621. * **101**
  622. * [.NET documentation - docs.ms](https://docs.microsoft.com/en-us/dotnet/)
  623. * [The Book of the Runtime - dotnet](https://github.com/dotnet/coreclr/blob/master/Documentation/botr/README.md)
  624. * **Info**
  625. * [Resources for Learning about .NET Internals - Matt Warren](https://mattwarren.org/2018/01/22/Resources-for-Learning-about-.NET-Internals/)
  626. * [Research based on the .NET Runtime - Matthew Warren](https://mattwarren.org/2019/10/25/Research-based-on-the-.NET-Runtime/)
  627. * [The .NET File Format(2006)](https://ntcore.com/files/dotnetformat.htm)
  628. * [.NET Internals - Dawid Sibiński](https://mattwarren.org/2018/01/22/Resources-for-Learning-about-.NET-Internals/)
  629. * **Netlogon**<a name="wnetlog"></a>
  630. * **101**
  631. * [Netlogon - technet.ms](https://technet.microsoft.com/fr-fr/library/cc962284.aspx)
  632. * **Info**
  633. * **Networking**<a name="winnet"></a>
  634. * **101**
  635. * [WinHTTP - msdn](https://msdn.microsoft.com/en-us/library/windows/desktop/aa382925%28v=vs.85%29.aspx)
  636. * [WinINet - msdn](https://msdn.microsoft.com/en-us/library/windows/desktop/aa383630%28v=vs.85%29.aspx)
  637. * **Info**
  638. * [WinINet vs WinHTTP](https://msdn.microsoft.com/en-us/library/windows/desktop/hh227298%28v=vs.85%29.aspx)
  639. * **NTFS**<a name="ntfs"></a>
  640. * **101**
  641. * [NTFS - Wikipedia](https://en.wikipedia.org/wiki/NTFS)
  642. * [NTFS overview - docs.ms](https://docs.microsoft.com/en-us/windows-server/storage/file-server/ntfs-overview)
  643. * [New Technologies File System (NTFS)](https://github.com/libyal/libfsntfs/blob/main/documentation/New%20Technologies%20File%20System%20(NTFS).asciidoc)
  644. * NTFS is the primary file system for Microsoft Windows versions that are based on Windows NT. This specification is based on publicly available work on the format and was enhanced by analyzing test data. This document is intended as a working document of the data format specification for the libfsntfs project.
  645. * [NTFS Documentation - Richard Russon, Yuval Fledel](http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf)
  646. * "This is technical documentation, created to help the programmer. It was originally written to complement the Linux NTFS driver"
  647. * **Info**
  648. * [Inside NTFS: Files in the NTFS System - Hetman Software(2019)](https://medium.com/hetman-software/inside-ntfs-files-in-the-ntfs-system-775ae2892060)
  649. * **NTLM**<a name="wntlm"></a>
  650. * **101**
  651. * [NT LAN Manager - Wikipedia](https://en.wikipedia.org/wiki/NT_LAN_Manager)
  652. * [Microsoft NTLM - docs.ms](https://docs.microsoft.com/en-us/windows/win32/secauthn/microsoft-ntlm)
  653. * [Microsoft NTLM - msdn]()
  654. * [The NTLM Authentication Protocol and Security Support Provider - davenport.sourceforge.net](http://davenport.sourceforge.net/ntlm.html)
  655. * **Info**
  656. * [NTLM Explained - Crowdstrike](https://www.crowdstrike.com/cybersecurity-101/ntlm-windows-new-technology-lan-manager/)
  657. * [NTLM Vulnerabilities Review - Keren Pollack(2021)](https://www.calcomsoftware.com/ntlm-security-weaknesses/)
  658. * **PE Loader & Execution Environment**<a name="wpenv"></a>
  659. * Different from proceses/threads section in that this is about everything else involved.
  660. * **101**
  661. * **Info**
  662. * [PE-Runtime-Data-Structures](https://github.com/JeremyBlackthorne/PE-Runtime-Data-Structures)
  663. * "Originally posted by me in 2013: http://uncomputable.blogspot.com/2013/08/pe-runtime-data-structures-v1.html, just migrating it to a better home. This is a diagram of PE runtime data structures created using WinDbg and OmniGraffle. I have included jpg and PDF versions in the repository. I was inspired by Ero Carrera's [1](http://blog.dkbza.org/2012/08/pe-file-format-graphs.html) diagrams and Corkami [2](https://code.google.com/p/corkami/). I made this diagram because I was teaching myself Windows data structures and was unsatisfied with what was out there. The information for these structures was obtained from WinDbg and Windows Internals 6 by Russinovich, Solomon, and Ionescu [Windows Internals]."
  664. * **PE File Structure**
  665. * [PEB Structure 32/64 pdf](http://blog.rewolf.pl/blog/wp-content/uploads/2013/03/PEB_Evolution.pdf)
  666. * [PE File Format Graphs](http://blog.dkbza.org/2012/08/pe-file-format-graphs.html?view=mosaic)
  667. * [Peering Inside the PE: A Tour of the Win32 Portable Executable File Format](https://msdn.microsoft.com/en-us/library/ms809762.aspx?utm_content=buffer4588c&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer)
  668. * **Powershell**<a name="wps"></a>
  669. * **101**
  670. * [PowerShell - docs.ms](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-6)
  671. * [Understanding the Windows PowerShell Pipeline - docs.ms](https://docs.microsoft.com/en-us/powershell/scripting/getting-started/fundamental/understanding-the-windows-powershell-pipeline?view=powershell-5.1)
  672. * [PowerShell Language Modes - docs.ms](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_language_modes?view=powershell-5.1)
  673. * **Constrained-Language Mode**
  674. * [PowerShell Constrained Language Mode - devblogs.ms](https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/)
  675. * **Logging**
  676. * [About Eventlogs(PowerShell) - docs.ms](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_eventlogs?view=powershell-5.1)
  677. * [Script Tracing and Logging - docs.ms](https://docs.microsoft.com/en-us/powershell/wmf/whats-new/script-logging)
  678. * **Printing**<a name="wprint"></a>
  679. * **101**
  680. * [[MS-SAMR]: Security Account Manager (SAM) Remote Protocol (Client-to-Server)](https://msdn.microsoft.com/en-us/library/cc245476.aspx)
  681. * Specifies the Security Account Manager (SAM) Remote Protocol (Client-to-Server), which supports printing and spooling operations that are synchronous between client and server.
  682. * [[MS-RPRN]: Print System Remote Protocol - docs.ms](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rprn/d42db7d5-f141-4466-8f47-0a4be14e2fc1)
  683. * [[MS-RPRN]: Print System Remote Protocol - msdn.ms](https://msdn.microsoft.com/en-us/library/cc244528.aspx)
  684. * **Info**
  685. * **Processes & Threads**<a name="wproc"></a>
  686. * **101**<a name="wproc101"></a>
  687. * [About Processes and Threads](https://msdn.microsoft.com/en-us/library/windows/desktop/ms681917%28v=vs.85%29.aspx)
  688. * [TechNet Library: About Processes and Threads](https://msdn.microsoft.com/en-us/library/windows/desktop/ms681917%28v=vs.85%29.aspx)
  689. * [Processes, Threads, and Jobs in the Windows Operating System - MS Windows Internals Sample Ch5](https://www.microsoftpressstore.com/articles/article.aspx?p=2233328&seqNum=2)
  690. * [Process Security and Access Rights - msdn](https://msdn.microsoft.com/en-us/library/windows/desktop/ms684880%28v=vs.85%29.aspx)
  691. * **Info**<a name="wpinfo"></a>
  692. * [Know your Windows Processes or Die Trying](https://sysforensics.org/2014/01/know-your-windows-processes.html)
  693. * Excellent quick reference on Windows proccesses with a focus on Win7. Good resource.
  694. * [Run-Time Dynamic Linking](https://msdn.microsoft.com/en-us/library/ms685090.aspx)
  695. * [Windows 8 Boot](http://technet.microsoft.com/en-US/windows/dn168167.aspx))
  696. * [PEB/TEB/TIB Structure Offsets - Travis Mathison](https://www.travismathison.com/posts/PEB_TEB_TIB-Structure-Offsets/)
  697. * **Relevant Functions**
  698. * [VirtualAlloc function](https://msdn.microsoft.com/en-us/library/windows/desktop/aa366887(v=vs.85).aspx)
  699. * [SetProcessMitigationPolicy function - docs.ms](https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-setprocessmitigationpolicy)
  700. * Sets a mitigation policy for the calling process. Mitigation policies enable a process to harden itself against various types of attacks.
  701. * [GetProcessMitigationPolicy function - docs.ms](https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getprocessmitigationpolicy)
  702. * Retrieves mitigation policy settings for the calling process.
  703. * [OpenProcessToken function - msdn](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379295%28v=vs.85%29.aspx)
  704. * **Asynchronous Procedure Call**<a name="wapc"></a>
  705. * **101**
  706. * [Asynchronous Procedure Calls - docs.ms](https://docs.microsoft.com/en-us/windows/win32/sync/asynchronous-procedure-calls)
  707. * "An asynchronous procedure call (APC) is a function that executes asynchronously in the context of a particular thread. When an APC is queued to a thread, the system issues a software interrupt. The next time the thread is scheduled, it will run the APC function. An APC generated by the system is called a kernel-mode APC. An APC generated by an application is called a user-mode APC. A thread must be in an alertable state to run a user-mode APC."
  708. * **Info**
  709. * [Inside NT's Asynchronous Procedure Call - Albet Almeida(2002)](https://www.drdobbs.com/inside-nts-asynchronous-procedure-call/184416590)
  710. * **DLL**<a name="pdll"></a>
  711. * **101**
  712. * [What is a DLL?](https://support.microsoft.com/en-us/help/815065/what-is-a-dll)
  713. * This article describes what a dynamic link library (DLL) is and the various issues that may occur when you use DLLs. Then, this article describes some advanced issues that you should consider when you develop your own DLLs. In describing what a DLL is, this article describes dynamic linking methods, DLL dependencies, DLL entry points, exporting DLL functions, and DLL troubleshooting tools.
  714. * **Info**
  715. * **_EPROCESS**<a name="weprocess"></a>
  716. * **101**
  717. * [Windows kernel opaque structures - docs.ms](https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/eprocess)
  718. * [EPROCESS - Geoff Chappell](https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/ntos/ps/eprocess/index.htm)
  719. * "The EPROCESS structure is the kernel’s representation of a process object. For instance, if the ObReferenceObjectByHandle function successfully resolves a handle though directed to do so only if the object type is PsProcessType, then what the function produces as its pointer to the object is a pointer to an EPROCESS."
  720. * [Understanding EProcess Structure - Tushar Panhalkar](https://info-savvy.com/understanding-eprocess-structure/)
  721. * **Info**
  722. * [struct EPROCESS - nirsoft](https://www.nirsoft.net/kernel_struct/vista/EPROCESS.html)
  723. * [_EPROCESS Combined table - rewolf](http://terminus.rewolf.pl/terminus/structures/ntdll/_EPROCESS_combined.html)
  724. * [_EPROCESS - Vergilius Project](https://www.vergiliusproject.com/kernels/x64/Windows%208%20%7C%202012/RTM/_EPROCESS)
  725. * [_EPROCESS Struct Reference - ReactOS](https://doxygen.reactos.org/d6/d0f/struct__EPROCESS.html)
  726. * **Import/Export Address Table**<a name="pieat"></a>
  727. * **101**
  728. * [Understanding the Import Address Table - dzzie](http://sandsprite.com/CodeStuff/Understanding_imports.html)
  729. * [Import table vs Import Address Table - Stackoverflow](https://reverseengineering.stackexchange.com/questions/16870/import-table-vs-import-address-table)
  730. * **Info**
  731. * [Many roads to IAT - Nicolas Krassas(2011)](https://www.corelan.be/index.php/2011/12/01/roads-iat/)
  732. * [Windows PE file Learning (1: Export tables), pe Export - ?](https://topic.alibabacloud.com/a/learning-windows-font-classtopic-s-color00c1depefont-file-learning-1-export-tables-font-classtopic-s-color00c1depefont-export_1_31_32673941.html)
  733. * [PE's Import Address Table and Export Table Walkthrough using Windbg - cod3inj3ct(2011)](http://garage4hackers.com/showthread.php?t=1862)
  734. * [Import Address Tables and Export Address Tables - 0x14c(2014)](https://bsodtutorials.wordpress.com/2014/03/02/import-address-tables-and-export-address-tables/)
  735. * [Import Address Table (IAT) in action - Mohammad Sina Karvandi(2017](https://rayanfam.com/topics/import-address-table-in-action/)
  736. * [Why PE need Original First Thunk(OFT)? - Milad Kahsari Alhadi(2018)](https://clightning.medium.com/why-pe-need-original-first-thunk-oft-ff477ea85f9f)
  737. * [A Journey Towards an Import Address Table (IAT) of an Executable File - Satyajit Daulaguphu(2019)](https://tech-zealots.com/malware-analysis/journey-towards-import-address-table-of-an-executable-file/)
  738. * [Writing a PE packer – Part 2 : imports and relocations - bidouillesecurity](https://bidouillesecurity.com/tutorial-writing-a-pe-packer-part-2/)
  739. * [Windows PEB parsing – A binary with no imports - bidouillesecurity(2021)](https://bidouillesecurity.com/windows-peb-parsing-a-binary-with-no-imports/)
  740. * "We’re going to see how a program can parse the PEB to recover Kernel32.dll address, and then load any other library. Not a single import is needed !"
  741. * **Fibers**<a name="pfiber"></a>
  742. * **101**
  743. * [Fibers - docs.ms](https://docs.microsoft.com/en-us/windows/win32/procthread/fibers)
  744. * [Using Fibers](https://docs.microsoft.com/en-us/windows/win32/procthread/using-fibers)
  745. * **Info**
  746. * **Process Environment Block**<a name="wpeb"></a>
  747. * **101**
  748. * [Process Environment Block - Wikipedia](https://en.wikipedia.org/wiki/Process_Environment_Block)
  749. * "In computing the Process Environment Block (abbreviated PEB) is a data structure in the Windows NT operating system family. It is an opaque data structure that is used by the operating system internally, most of whose fields are not intended for use by anything other than the operating system. Microsoft notes, in its MSDN Library documentation — which documents only a few of the fields — that the structure "may be altered in future versions of Windows". The PEB contains data structures that apply across a whole process, including global context, startup parameters, data structures for the program image loader, the program image base address, and synchronization objects used to provide mutual exclusion for process-wide data structures."
  750. * [PEB structure (winternl.h) - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/winternl/ns-winternl-peb)
  751. * [PEB_LDR_DATA structure (winternl.h) - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/winternl/ns-winternl-peb_ldr_data?redirectedfrom=MSDN)
  752. * **Info**
  753. * [PEB32 and PEB64 in one definition](http://blog.rewolf.pl/blog/?p=294)
  754. * [Evolution of Process Environment Block (PEB)](http://blog.rewolf.pl/blog/?p=573)
  755. * [Anatomy of the Process Environment Block (PEB) (Windows Internals) - ntopcode(2018)](https://ntopcode.wordpress.com/2018/02/26/anatomy-of-the-process-environment-block-peb-windows-internals/)
  756. * [Exploring Process Environment Block - @spotheplanet](https://www.ired.team/miscellaneous-reversing-forensics/windows-kernel-internals/exploring-process-environment-block)
  757. * [Digging into Windows PEB - Mohamed Fakroud](https://mohamed-fakroud.gitbook.io/t3nb3w/peb)
  758. * [PEB - Geoff Chappell](https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/pebteb/peb/index.htm)
  759. * [Undocumented 32-bit PEB and TEB Structures - bytepointer.com](https://bytepointer.com/resources/tebpeb32.htm)
  760. * This file contains the undocumented TEB (Thread Environment Block) and PEB (Process Environment Block) definitions for the Intel x86 32-bit Windows operating systems starting from NT 3.51 through Windows 10. The TEB is also known as the TIB (Thread Information Block), especially under the Windows 9.x operating systems.
  761. * [ Exploring PEB (Process Environment Block) - Marc Rainer Kranz](https://sites.google.com/site/x64lab/home/notes-on-x64-windows-gui-programming/exploring-peb-process-environment-block)
  762. * [How to get the Process Environment Block (PEB) from extern process? - Stackoverflow](https://stackoverflow.com/questions/5454667/how-to-get-the-process-environment-block-peb-from-extern-process)
  763. * [peb.c](https://gist.github.com/Wack0/849348f9d4f3a73dac864a556e9372a5)
  764. * Getting a pointer to the PEB in C, for every architecture that NT was ported to (where at least one build of the port was leaked/released)
  765. * **Protected Processes**<a name="ppl"></a>
  766. * **101**
  767. * **Info**
  768. * [Unkillable Processes](https://blogs.technet.microsoft.com/markrussinovich/2005/08/17/unkillable-processes/)
  769. * [The Evolution of Protected Processes Part 1: Pass-the-Hash Mitigations in Windows 8.1 - Alex Ionescu](http://www.alex-ionescu.com/?p=97)
  770. * [The Evolution of Protected Processes Part 2: Exploit/Jailbreak Mitigations, Unkillable Processes and Protected Services - Alex Ionescu](http://ww.alex-ionescu.com/?p=116)
  771. * [Protected Processes Part 3 : Windows PKI Internals (Signing Levels, Scenarios, Root Keys, EKUs & Runtime Signers) - Alex Ionescu](http://www.alex-ionescu.com/?p=146)
  772. * **Thread Environment Block**<a name="ptib"></a>
  773. * **101**
  774. * [Win32 Thread Information Block - Wikipedia](https://en.wikipedia.org/wiki/Win32_Thread_Information_Block)
  775. * [TEB structure (winternl.h) - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/winternl/ns-winternl-teb)
  776. * The Thread Environment Block (TEB structure) describes the state of a thread.
  777. * [Win32 Thread Information Block Explained - everything.explained.today](https://everything.explained.today/Win32_Thread_Information_Block/)
  778. * [Thread Environment Block (Debugging Notes) - docs.ms](https://docs.microsoft.com/en-us/windows/win32/debug/thread-environment-block--debugging-notes-)
  779. * [TEB - Undocumented functions of NTDLL - ntinternals.net](http://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FThread%2FTEB.html)
  780. * **Info**
  781. * [TEB - Geoff Chappell](https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/pebteb/teb/index.htm)
  782. * [TEB and PEB - rvsec0n(2019)](https://rvsec0n.wordpress.com/2019/09/13/routines-utilizing-tebs-and-pebs/)
  783. * [_TEB Struct - Vergilius Project](https://www.vergiliusproject.com/kernels/x64/Windows%2010%20%7C%202016/1809%20Redstone%205%20(October%20Update)/\_TEB)
  784. * [TEB - ntinternals.net](http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/NT%20Objects/Thread/TEB.html)
  785. * **Thread Local Storage**<a name="wtls"></a>
  786. * **101**
  787. * [Thread-local storage - Wikipedia](https://en.wikipedia.org/wiki/Thread-local_storage)
  788. * [Thread Local Storage](https://msdn.microsoft.com/en-us/library/ms686749.aspx)
  789. * **Info**
  790. * **Structured Exception Handling**<a name="peh"></a>
  791. * **101**
  792. * [Structured Exception Handling - docs.ms](https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling)
  793. * **Info**
  794. * [A Crash Course on the Depths of Win32™ Structured Exception Handling](https://www.microsoft.com/msj/0197/exception/exception.aspx)
  795. * **Prefetch**<a name="wprefetch"></a>
  796. * **101**
  797. * **Info**
  798. * [WinPrefetchView v1.25](http://www.nirsoft.net/utils/win_prefetch_view.html)
  799. * Each time that you run an application in your system, a Prefetch file which contains information about the files loaded by the application is created by Windows operating system. The information in the Prefetch file is used for optimizing the loading time of the application in the next time that you run it. WinPrefetchView is a small utility that reads the Prefetch files stored in your system and display the information stored in them. By looking in these files, you can learn which files every application is using, and which files are loaded on Windows boot.
  800. * **Registry**<a name="wreg"></a>
  801. * **101**
  802. * **Info**
  803. * **Remote Desktop**<a name="wrdp"></a>
  804. * **101**
  805. * [Remote Desktop Services virtual channels - docs.ms](https://docs.microsoft.com/en-us/windows/win32/termserv/terminal-services-virtual-channels)
  806. * **Info**
  807. * **Tools**
  808. * [UniversalDVC](https://github.com/earthquake/UniversalDVC)
  809. * Universal Dynamic Virtual Channel connector for Remote Desktop Services
  810. * **User Rights**<a name="wur"></a>
  811. * **101**
  812. * [User Rights Assignment(Win10) - docs.ms](https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-rights-assignment)
  813. * **Info**
  814. * **RPC**<a name="wrpc"></a>
  815. * **101**
  816. * [RPC Components - docs.ms](https://docs.microsoft.com/en-us/windows/desktop/Rpc/microsoft-rpc-components)
  817. * [Remote Procedure Call - IBM Knowledgebase](https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.progcomc/ch8_rpc.htm)
  818. * [Remote Procedure Calls (RPC) - users.cs.cf.ac.uk](https://users.cs.cf.ac.uk/Dave.Marshall/C/node33.html)
  819. * [Remote Procedure Call (RPC) - cio-wiki.org](https://cio-wiki.org/wiki/Remote_Procedure_Call_(RPC))
  820. * [Remote Procedure Call - Wikipedia](https://en.wikipedia.org/wiki/Remote_procedure_call)
  821. * **Info**
  822. * [How RPC Works - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc738291(v=ws.10))
  823. * [What is RPC and why is it so important?(windows) - StackOverflow](https://superuser.com/questions/616098/what-is-rpc-and-why-is-it-so-important)
  824. * [Remote Procedure Calls - Paul Krzyzanowski](https://www.cs.rutgers.edu/~pxk/417/notes/08-rpc.html)
  825. * **Sandboxing**<a name="wsb"></a>
  826. * **101**
  827. * **Info**
  828. * [Advanced Desktop Application Sandboxing via AppContainer](https://www.malwaretech.com/2015/09/advanced-desktop-application-sandboxing.html)
  829. * [Usermode Sandboxing](http://www.malwaretech.com/2014/10/usermode-sandboxing.html)
  830. * **Scripting Host**<a name="wsh"></a>
  831. * **101**
  832. * [wscript - docs.ms](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wscript)
  833. * Windows Script Host provides an environment in which users can execute scripts in a variety of languages that use a variety of object models to perform tasks.
  834. * **Info**
  835. * **Security Descriptor Definition Language**<a name="wsddl"></a>
  836. * **101**
  837. * **Info**
  838. * [The Security Descriptor Definition Language of Love (Part 1) - technet.ms](https://blogs.technet.microsoft.com/askds/2008/04/18/the-security-descriptor-definition-language-of-love-part-1/)
  839. * [The Security Descriptor Definition Language of Love (Part 2) - technet.ms](https://blogs.technet.microsoft.com/askds/2008/05/07/the-security-descriptor-definition-language-of-love-part-2/)
  840. * [SECURITY_DESCRIPTOR_CONTROL - docs.ms](https://docs.microsoft.com/en-us/windows/win32/secauthz/security-descriptor-control?redirectedfrom=MSDN)
  841. * The SECURITY_DESCRIPTOR_CONTROL data type is a set of bit flags that qualify the meaning of a security descriptor or its components. Each security descriptor has a Control member that stores the SECURITY_DESCRIPTOR_CONTROL bits.
  842. * **Security Support Providers**<a name="wssp"></a>
  843. * **101**
  844. * [Security Support Provider Interface Architecture - docs.ms](https://docs.microsoft.com/en-us/windows-server/security/windows-authentication/security-support-provider-interface-architecture)
  845. * **Info**
  846. * [SSP Packages Provided by Microsoft - docs.ms](https://docs.microsoft.com/en-us/windows/desktop/SecAuthN/ssp-packages-provided-by-microsoft)
  847. * [Secure Channel - docs.ms](https://docs.microsoft.com/en-us/windows/desktop/SecAuthN/secure-channel)
  848. * Secure Channel, also known as Schannel, is a security support provider (SSP) that contains a set of security protocols that provide identity authentication and secure, private communication through encryption. Schannel is primarily used for Internet applications that require secure Hypertext Transfer Protocol (HTTP) communications.
  849. * [The NTLM Authentication Protocol and Security Support Provider - davenport.sourceforge.net](http://davenport.sourceforge.net/ntlm.html)
  850. * [Microsoft Digest SSP - docs.ms](https://docs.microsoft.com/en-us/windows/desktop/SecAuthN/microsoft-digest-ssp)
  851. * Microsoft Digest is a security support provider (SSP) that implements the Digest Access protocol, a lightweight authentication protocol for parties involved in Hypertext Transfer Protocol (HTTP) or Simple Authentication Security Layer (SASL) based communications. Microsoft Digest provides a simple challenge response mechanism for authenticating clients. This SSP is intended for use by client/server applications using HTTP or SASL based communications.
  852. * **Services**<a name="wservice"></a>
  853. * **101**
  854. * **Info**
  855. * [Creating a service using sc.exe](https://support.microsoft.com/en-us/help/251192/how-to-create-a-windows-service-by-using-sc-exe)
  856. * [Services: Windows 10 Services(ss64)](https://ss64.com/nt/syntax-services.html)
  857. * A list of the default services in Windows 10 (build 1903).
  858. * **Service Accounts**<a name="wserva"></a>
  859. * **101**
  860. * **Info**
  861. * [Service Account best practices Part 1: Choosing a Service Account](https://4sysops.com/archives/service-account-best-practices-part-1-choosing-a-service-account/)
  862. * In this article you will learn the fundamentals of Windows service accounts. Specifically, we discover the options and best practices concerning the selection of a service account for a particular service application.
  863. * **Server Message Block(SMB)**<a name="wsmb"></a>
  864. * **101**
  865. * [Server Message Block Overview - msdn.ms](https://msdn.microsoft.com/fr-fr/library/hh831795%28v=ws.11%29.aspx)
  866. * **Info**
  867. * **Sessions**<a name="wsesh"></a>
  868. * **101**
  869. * [Server Message Block Overview - msdn.ms](https://msdn.microsoft.com/fr-fr/library/hh831795%28v=ws.11%29.aspx)
  870. * **Info**
  871. * [Understanding Windows at a deeper level - Sessions, Window Stations, and Desktops](https://brianbondy.com/blog/100/understanding-windows-at-a-deeper-level-sessions-window-stations-and-desktops)
  872. * **Subsystems**<a name="wsub"></a>
  873. * **Linux Subsystem**<a name="wls"></a>
  874. * **101**
  875. * [Learn About Windows Console & Windows Subsystem For Linux (WSL) - devblogs.ms](https://devblogs.microsoft.com/commandline/learn-about-windows-console-and-windows-subsystem-for-linux-wsl/)
  876. * **Info**
  877. * [lxss -- Fun with the Windows Subsystem for Linux (WSL/LXSS)](https://github.com/ionescu007/lxss)
  878. * "This repository is dedicated to research, code, and various studies of the Windows Subsystem for Linux, also known as Bash on Ubuntu on Windows, and LXSS. It contains a variety of Proof-of-Concept Win32 and Linux binaries, both in user-mode and kernel-mode, in order to interact with the various subsystem pieces. Namely, it demonstrates usage of the Win32 COM interface between Bash.exe and LxssManager, as well as of the ADSS Bus interface between init and LxssManager. For Redstone 2, it shows off some of the new interoperability features of the subsystem."
  879. * [Emulating Windows system calls, take 2 - Jonathan Corbet(2020)](https://lwn.net/Articles/826313/)
  880. * **Security**
  881. * **101**
  882. * [Security Subsystem Architecture - docs.ms(2012)](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc961760(v=technet.10)?redirectedfrom=MSDN)
  883. * **Info**
  884. * **Symbol Files**<a name="wsymbol"></a>
  885. * **101**
  886. * [Symbols and Symbol Files - docs ms](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/symbols-and-symbol-files)
  887. * [Symbol Files - docs ms](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363368(v=vs.85).aspx)
  888. * **Info**
  889. * [microsoft-pdb](https://github.com/Microsoft/microsoft-pdb)
  890. * This repo contains information from Microsoft about the PDB (Program Database) Symbol File format.
  891. * [Public and Private Symbols - docs ms](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/public-and-private-symbols)
  892. * [How to Inspect the Content of a Program Database (PDB) File](https://www.codeproject.com/Articles/37456/How-To-Inspect-the-Content-of-a-Program-Database-P)
  893. * [Symbol Files](https://msdn.microsoft.com/en-us/library/windows/desktop/aa363368(v=vs.85).aspx)
  894. * Normally, debugging information is stored in a symbol file separate from the executable. The implementation of this debugging information has changed over the years, and the following documentation will provide guidance regarding these various implementations .
  895. * **Syscalls**<a name="wsyscall"></a>
  896. * **101**
  897. * **Info**
  898. * [windows-syscall-table](https://github.com/tinysec/windows-syscall-table)
  899. * windows syscall table from xp ~ 10 rs2
  900. * [How Do Windows NT System Calls REALLY Work?](http://www.codeguru.com/cpp/w-p/system/devicedriverdevelopment/article.php/c8035/How-Do-Windows-NT-System-Calls-REALLY-Work.htm)
  901. * [Debugging Functions - msdn](https://msdn.microsoft.com/en-us/library/windows/desktop/ms679303.aspx)
  902. * [Intercepting System Calls on x86_64 Windows](http://jbremer.org/intercepting-system-calls-on-x86_64-windows/)
  903. * **System Service Descriptor Table(SSDT)**<a name="wssdt"></a>
  904. * [System Service Descriptor Table - SSDT - @spotheplanet](https://www.ired.team/miscellaneous-reversing-forensics/windows-kernel-internals/glimpse-into-ssdt-in-windows-x64-kernel)
  905. * **Tokens**<a name="wtokens"></a>
  906. * **101**
  907. * **Info**
  908. * **API Calls**
  909. * [DuplicateTokenEx function - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/securitybaseapi/nf-securitybaseapi-duplicatetokenex?redirectedfrom=MSDN)
  910. * The DuplicateTokenEx function creates a new access token that duplicates an existing token. This function can create either a primary token or an impersonation token.
  911. * [ImpersonateLoggedOnUser function - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/securitybaseapi/nf-securitybaseapi-impersonateloggedonuser?redirectedfrom=MSDN)
  912. * The ImpersonateLoggedOnUser function lets the calling thread impersonate the security context of a logged-on user. The user is represented by a token handle.
  913. * [SetThreadToken function - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadtoken?redirectedfrom=MSDN)
  914. * The SetThreadToken function assigns an impersonation token to a thread. The function can also cause a thread to stop using an impersonation token.
  915. * [CreateProcessWithTokenW function - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createprocesswithtokenw?redirectedfrom=MSDN)
  916. * Creates a new process and its primary thread. The new process runs in the security context of the specified token. It can optionally load the user profile for the specified user.
  917. * [OpenProcess function - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-openprocess?redirectedfrom=MSDN)
  918. * Opens an existing local process object.
  919. * [OpenProcessToken function - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-openprocesstoken?redirectedfrom=MSDN)
  920. * The OpenProcessToken function opens the access token associated with a process.
  921. * [OpenThread function - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-openthread?redirectedfrom=MSDN)
  922. * Opens an existing thread object.
  923. * [OpenThreadToken function - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-openthreadtoken?redirectedfrom=MSDN)
  924. * The OpenThreadToken function opens the access token associated with a thread.
  925. * [GetTokenInformation function - docs.ms](https://docs.microsoft.com/en-us/windows/win32/api/securitybaseapi/nf-securitybaseapi-gettokeninformation?redirectedfrom=MSDN)
  926. * The GetTokenInformation function retrieves a specified type of information about an access token. The calling process must have appropriate access rights to obtain the information.
  927. * **User Account Control(UAC)**<a name="wuac"></a>
  928. * **101**
  929. * [User Account Control - docs.ms](https://docs.microsoft.com/en-us/windows/win32/secauthz/user-account-control)
  930. * [Inside Windows Vista User Account Control - docs.ms](https://docs.microsoft.com/en-us/previous-versions/technet-magazine/cc138019(v=msdn.10)?redirectedfrom=MSDN)
  931. * [Inside Windows 7 User Account Control - docs.ms](https://docs.microsoft.com/en-us/previous-versions/technet-magazine/dd822916(v=msdn.10)?redirectedfrom=MSDN)
  932. * [User Account Control: Inside Windows 7 User Account Control - Mark Russinovich](https://docs.microsoft.com/en-us/previous-versions/technet-magazine/dd822916(v=msdn.10))
  933. * **Info**
  934. * [Protecting Windows Networks – UAC - dfirblog.wordpress.com](https://dfirblog.wordpress.com/2015/10/24/protecting-windows-networks-uac/)
  935. * User Account Control - Steven Sinofsky(blogs.msdn)](https://blogs.msdn.microsoft.com/e7/2008/10/08/user-account-control/)
  936. * [User Account Control Step-by-Step Guide - docs.ms](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc709691(v=ws.10))
  937. * **Volume Shadow Copy Service**<a name="wvss"></a>
  938. * **101**
  939. * [About the Volume Shadow Copy Service - docs.ms](https://docs.microsoft.com/en-us/windows/win32/vss/about-the-volume-shadow-copy-service)
  940. * **Info**
  941. * **Windows Filtering Platform**<a name="wfp"></a>
  942. * **101**
  943. * **Info**
  944. * [Windows Filtering Platform: Persistent state under the hood](http://blog.quarkslab.com/windows-filtering-platform-persistent-state-under-the-hood.html)
  945. * **Windows Communication Foundation**<a name="wcf"></a>
  946. * **101**
  947. * [Windows Communication Foundation - Guide to the Documentation - docs.ms]
  948. * [What Is Windows Communication Foundation](https://docs.microsoft.com/en-us/dotnet/framework/wcf/whats-wcf)
  949. * Windows Communication Foundation (WCF) is a framework for building service-oriented applications. Using WCF, you can send data as asynchronous messages from one service endpoint to another. A service endpoint can be part of a continuously available service hosted by IIS, or it can be a service hosted in an application. An endpoint can be a client of a service that requests data from a service endpoint. The messages can be as simple as a single character or word sent as XML, or as complex as a stream of binary data.
  950. * [Fundamental Windows Communication Foundation Concepts](https://docs.microsoft.com/en-us/dotnet/framework/wcf/fundamental-concepts)
  951. * WCF is a runtime and a set of APIs for creating systems that send messages between services and clients. The same infrastructure and APIs are used to create applications that communicate with other applications on the same computer system or on a system that resides in another company and is accessed over the Internet.
  952. * [Windows Communication Foundation Architecture Architecture Graphic](https://docs.microsoft.com/en-us/dotnet/framework/wcf/architecture)
  953. * **Info**
  954. * **Miscellaneous**<a name="misc"></a>
  955. * **Blue (and other colors) Screen of Death**
  956. * [AngryWindows](https://github.com/ch3rn0byl/AngryWindows)
  957. * "This is a driver that modifies the emoticon, color, and error messages of the Bluescreen of Death."
  958. ------------------------------------------------------------------------------------------------------------------------------
  959. ------------------------------------------------------------------------------------------------------------------------------
  960. ### Kernel(general)<a name="wkern"></a>
  961. - **101**
  962. * [Introduction to Windows Kernel Security](http://blog.cmpxchg8b.com/2013/05/introduction-to-windows-kernel-security.html)
  963. - **Callbacks**<a name="wkcall"></a>
  964. * **Callback Functions**
  965. * **101**
  966. * [Callback (computer programming) - Wikipedia](https://en.wikipedia.org/wiki/Callback_(computer_programming))
  967. * [Callback Objects - docs.ms(2017)](https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/callback-objects)
  968. * **Info**
  969. * [Detecting Kernel-Mode Callbacks - docs.ms](https://docs.microsoft.com/en-us/windows/win32/devnotes/detecting-kernel-mode-callbacks)
  970. * [Kernel Callback Functions - CodeMachine](https://codemachine.com/articles/kernel_callback_functions.html)
  971. * Comprehensive list of documented and undocumented APIs available in the Windows kernel to register callback routines.
  972. * [Reversing Windows Internals (Part 1) – Digging Into Handles, Callbacks & ObjectTypes - Mohammad Sina Karvandi(2019)](https://rayanfam.com/topics/reversing-windows-internals-part1/)
  973. * **Talks/Presentations/Videos**
  974. * [Kernel Attacks through User-Mode Callbacks - Tarjei Mandt(BHUSA2011)](https://www.youtube.com/watch?v=EdJMEBiisxU)
  975. * [Paper](https://paper.bobylive.com/Meeting_Papers/BlackHat/USA-2011/BH_US_11_Mandt_win32k_WP.pdf)
  976. * "15 years ago, Windows NT 4.0 introduced Win32k.sys to address the inherent limitations of the older client-server graphics subsystem model. Today, win32k still remains a fundamental component of the Windows architecture and manages both the Window Manager (User) and Graphics Device Interface (GDI). In order to properly interface with user-mode data, win32k makes use of user-mode callbacks, a mechanism allowing the kernel to make calls back into user-mode. Usermode callbacks enable a variety of tasks such as invoking applicationdefined hooks, providing event notifications, and copying data to/from user-mode. In this paper, we discuss the many challenges and problems concerning user-mode callbacks in win32k. In particular, we show how win32k’s dependency on global locks in providing a thread-safe environment does not integrate well with the concept of user-mode callbacks. Although many vulnerabilities related to user-mode callbacks have been addressed, their complex nature suggests that more subtle flaws might still be present in win32k. Thus, in an effort to mitigate some of the more prevalent bug classes, we conclusively provide some suggestions as to how users may protect themselves against future kernel attacks."
  977. * [Callback objects - Yarden Shafir(BSides Delhi2020)](https://www.youtube.com/watch?v=lnv4GYKS_jI)
  978. * [Slides](https://github.com/yardenshafir/CallbackObjectAnalyzer/tree/main/Slides)
  979. * [CallbackObjectAnalyzer](https://github.com/yardenshafir/CallbackObjectAnalyzer)
  980. * Whether you’re an attacker, trying to persist and gather information while avoiding detection, or a defender, trying to monitor everything that’s running on a box and staying a step ahead of the attackers, everyone wants to know what’s happening on a machine. Windows has a mechanism that can fulfill all these needs and isn’t getting the attention it deserves – callback objects. Used by many kernel components and easy to access for 3rd-party drivers, these objects can supply valuable information about various kernel events, internal AV communication, and more. Even Patch Guard has its own callback! As helpful as they are, they are mostly ignored by security solutions, making them a great place for rootkits to hide in, where no one is looking.- **Handles**
  981. - **Handles & Objects**<a name="wkobj"></a>
  982. * **101**
  983. * [Handle (computing) - Wikipedia](https://en.wikipedia.org/wiki/Handle_(computing))
  984. * [Handles and Objects - docs.ms](https://docs.microsoft.com/en-us/windows/win32/sysinfo/handles-and-objects)
  985. * [What is a Windows Handle? - StackOverflow(2009)](https://stackoverflow.com/questions/902967/what-is-a-windows-handle)
  986. * **Info**
  987. * [Inside the Windows Vista Kernel: Part 1](http://technet.microsoft.com/en-us/magazine/2007.02.vistakernel.aspx)
  988. * [Handle and Object Functions - docs.ms](https://docs.microsoft.com/en-us/windows/win32/sysinfo/handle-and-object-functions)
  989. * [Exploring Handle Security in Windows - Keith Brown(2019)](https://docs.microsoft.com/en-us/archive/msdn-magazine/2000/march/security-briefs-exploring-handle-security-in-windows)
  990. * [Reversing Windows Internals (Part 1) – Digging Into Handles, Callbacks & ObjectTypes - Mohammad Sina Karvandi(2019)](https://rayanfam.com/topics/reversing-windows-internals-part1/)
  991. * **Tools**
  992. * [Handle](https://docs.microsoft.com/en-us/sysinternals/downloads/handle)
  993. * "Ever wondered which program has a particular file or directory open? Now you can find out. Handle is a utility that displays information about open handles for any process in the system. You can use it to see the programs that have a file open, or to see the object types and names of all the handles of a program."
  994. * [EnumAllHandles](https://github.com/SinaKarvandi/Process-Magics/tree/master/EnumAllHandles)
  995. - **Transaction Manager**<a name="wtm"></a>
  996. - **101**
  997. * [Kernel Transaction Manager - docs.ms](https://docs.microsoft.com/en-us/windows/win32/ktm/kernel-transaction-manager-portal)
  998. * "The Kernel Transaction Manager (KTM) enables the development of applications that use transactions. The transaction engine itself is within the kernel, but transactions can be developed for kernel- or user-mode transactions, and within a single host or among distributed hosts. The KTM is used to implement Transactional NTFS (TxF) and Transactional Registry (TxR). TxF allows transacted file system operations within the NTFS file system. TxR allows transacted registry operations. KTM enables client applications to coordinate file system and registry operations with a transaction."
  999. * [About KTM - docs.ms](https://docs.microsoft.com/en-us/windows/win32/ktm/about-ktm)
  1000. - **Info**
  1001. * [KTM Reference - docs.ms](https://docs.microsoft.com/en-us/windows/win32/ktm/ktm-reference)
  1002. - **Transactional NTFS**
  1003. * [Transactional NTFS (TxF) - docs.ms](https://docs.microsoft.com/en-us/windows/win32/fileio/transactional-ntfs-portal)
  1004. - **Transactional Registry**
  1005. *
  1006. ------------------------------------------------------------------------------------------------------------------------------
  1007. ------------------------------------------------------------------------------------------------------------------------------
  1008. ### ARM References<a name="ARM"></a>
  1009. * [A Detailed Analysis of Contemporary ARM and x86 Architectures](http://research.cs.wisc.edu/vertical/papers/2013/isa-power-struggles-tr.pdf)
  1010. * RISC vs. CISC wars raged in the 1980s when chip area andprocessor design complexity were the primary constraints anddesktops and servers exclusively dominated the computing land-scape. Today, energy and power are the primary design con-straints and the computing landscape is significantly different:growth in tablets and smartphones running ARM (a RISC ISA)is surpassing that of desktops and laptops running x86 (a CISCISA). Further, the traditionally low-power ARM ISA is enter-ing the high-performance server market, while the traditionallyhigh-performance x86 ISA is entering the mobile low-power de-vice market. Thus, the question of whether ISA plays an intrinsicrole in performance or energy efficiency is becoming important,and we seek to answer this question through a detailed mea-surement based study on real hardware running real applica-tions. We analyze measurements on the ARM Cortex-A8 andCortex-A9 and Intel Atom and Sandybridge i7 microprocessorsover workloads spanning mobile, desktop, and server comput-ing. Our methodical investigation demonstrates the role of ISAin modern microprocessors’ performance and energy efficiency.We find that ARM and x86 processors are simply engineeringdesign points optimized for different levels of performance, andthere is nothing fundamentally more energy efficient in one ISAclass or the other. The ISA being RISC or CISC seems irrelevant.
  1011. * [ARM Documentation](http://infocenter.arm.com/help/index.jsp?noscript=1)
  1012. * [Windows 8 Security and ARM](http://2012.ruxconbreakpoint.com/assets/Uploads/bpx/alex-breakpoint2012.pdf)
  1013. ------------------------------------------------------------------------------------------------------------------------------
  1014. ------------------------------------------------------------------------------------------------------------------------------
  1015. ### Other
  1016. * [Intel SGX Explained](https://eprint.iacr.org/2016/086.pdf)
  1017. * This paper analyzes Intel SGX, based on the 3 papers that introduced it, on the Intel Software Developer’s Manual(which supersedes the SGX manuals), on an ISCA 2015 tutorial, and on two patents. We use the papers, reference manuals, and tutorial as primary data sources, and only draw on the patents to fill in missing information. This paper’s contributions are a summary of the Intel-specific architectural and micro-architectural details needed to understand SGX, a detailed and structured presentation of the publicly available information on SGX, a series of intelligent guesses about some important but undocumented aspects of SGX, and an analysis of SGX’s security properties.
  1018. ------------------------------------------------------------------------------------------------------------------------------
  1019. ------------------------------------------------------------------------------------------------------------------------------
  1020. ### Emojis/Fonts/Encoding
  1021. * [Introducing Character Sets and Encodings - W3C](https://www.w3.org/International/getting-started/characters)
  1022. * [An Introduction to Writing Systems & Unicode](https://r12a.github.io/scripts/tutorial/)
  1023. * [Tifinagh - Wikipedia](https://en.m.wikipedia.org/wiki/Tifinagh)
  1024. * [Core Text - apple](https://developer.apple.com/documentation/coretext)
  1025. * [Full Emoji List - Unicode.org](https://unicode.org/emoji/charts/full-emoji-list.html)
  1026. * [List of XML and HTML character entity references - Wikipedia](https://en.m.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references)
  1027. * [Ambiguous ampersands](https://mathiasbynens.be/notes/ambiguous-ampersands)
  1028. * [Everything You Need To Know About Emoji 🍭](https://www.smashingmagazine.com/2016/11/character-sets-encoding-emoji/)
  1029. * [Emoji and Pictographs - FAQ - unicode.org](https://unicode.org/faq/emoji_dingbats.html)
  1030. * [Unicode® Emoji](https://www.unicode.org/emoji/)
  1031. * This page provides information about Unicode emoji and their development.
  1032. * [Emojipedia](https://emojipedia.org/)
  1033. * Emoji Meanings
  1034. ------------------------------------------------------------------------------------------------------------------------------