youtube-transcript.ai

SyScan'14 Singapore: All About The Rpc, Lrpc, Alpc, And Lpc In Your Pc By Alex Ionescu

Watch with subtitles, summary & AI chat
Add the free Subkun extension — works directly on YouTube.
  • Watch
  • Subtitles
  • Summary
  • Ask AI
Try free →

Developers and security researchers interested in Windows internals and exploit development.

TL;DR

This video explains the Local Procedure Call (LPC) and its evolution to Advanced LPC (ALPC) in Windows. These undocumented inter-process communication mechanisms are crucial for RPC and COM, making them a significant security target.

Key Takeaways

In This Video

  1. 00:00Introduction to LPC and RPC

    The talk covers LPC, LRPC, ALPC, and LPC in PCs. It begins with the speaker's background in reverse engineering.

  2. 01:00Evolution of LPC to ALPC

    LPC, an early inter-process communication mechanism, was undocumented. Developers used alternatives like named pipes or RPC.

  3. 02:50ALPC: Asynchronous and Enhanced LPC

    Vista introduced ALPC, adding asynchronicity, cancelability, and atomicity. RPC and COM now default to using ALPC.

  4. 04:34Security Implications of ALPC

    Bugs in RPC, COM, or ALPC runtime can lead to system compromise. Even sandboxed applications use ALPC.

  5. 05:58Security Through Obscurity in ALPC

    ALPC's undocumented nature leads to less rigorous security checks by developers. The talk will detail ALPC communication.

  6. 06:27ALPC Client-Server Communication

    ALPC communication resembles BSD sockets. Servers create ports, and clients connect using specific APIs like NtAlpcConnectPort.

  7. 09:36Accepting ALPC Connections

    Servers use NtAlpcAcceptConnectPort to accept or reject client connections. Clients receive a status indicating success or failure.

Questions & Answers

What is LPC and when was it introduced in Windows?
LPC, or Local Procedure Call, was introduced in Windows NT from the very beginning. It allowed two processes to communicate with each other or the kernel to communicate with user mode.
Why did Microsoft replace LPC with ALPC in Vista?
In Windows Vista, LPC was replaced with ALPC (Advanced Local Procedure Call) or Asynchronous LPC. ALPC introduced asynchronicity, cancelability, and atomicity guarantees, making it more efficient.
How does ALPC relate to RPC and COM in modern Windows?
Microsoft's RPC team switched to using ALPC by default, meaning applications using RPC are now using ALPC. COM and Distributed COM also use RPC internally, so interacting with COM objects means you're using ALPC.
What is the security implication of ALPC being undocumented?
Because ALPC is undocumented, developers may not implement thorough parameter checking, creating potential security vulnerabilities. Bugs in ALPC can allow attackers to gain system privileges from a sandboxed environment.
How does a client connect to an ALPC server port?
A client calls NtlpcConnectPort, providing the port name and attributes. The client can also specify an initial connection message, which the server can use to validate the connection request.
What information does an ALPC server receive about a connecting client?
Upon a connection request, the ALPC server receives the client's PID, TID, CID, token, and other information. This allows the server to decide whether to accept or reject the connection.

Key Terms

Download or copy the punctuated YouTube transcript (Markdown)

Full Transcript

Loading transcript…

Source

YouTube video. Original: https://www.youtube.com/watch?v=UNpL5csYC1E
Transcript captured and processed by youtube-transcript.ai on 2026-07-05.