pwn.sc Get in touch

Beneath
the surface.

Binary analysis. Reverse engineering.
Windows kernel & hypervisor security.

Independent thinking. Deeper understanding.Scroll to discover

Curiosity is
the entry point.

Master’s studies in Cyber Security
Global top-20 university

I build low-level systems to understand how software actually executes.

I’m Maxed, an offensive security engineer and researcher. pwn.sc is where I share binary analysis, reverse engineering, and software security research, from Windows PE binaries to the kernel and virtualization layer.

I start with a question: what is the CPU, operating system, or program really doing here? Then I build the tools and experiments to find out.

First principles. Reproducible evidence. Explicit trust boundaries.

View my experience & resume

Under the hood.

Three ways to look deeper.

NVIDIA GB200 compute board photographed at COMPUTEX by Geekerwan
NVIDIA GB200 · Geekerwan / CC BY 3.0

Windows kernel security

Memory management, page tables, drivers, and the security boundaries that change as the operating system evolves.

Windows Internals / VAD & PTE / VBS

Hypervisor research

Observing guest execution through CPU state, memory translation, and virtualization-layer instrumentation.

AMD SVM / Hyper-V / NPT / VMEXIT

Game security & trust

Anti-cheat architecture and remote attestation: what can a server still trust when part of the client is compromised?

Anti-Cheat / Measured Boot / Hardware Trust

Ideas, made executable.

Research platforms and works in progress.

aegis.exePE32+ / AMD64
MZ

Inside the executable.

6 sections. 76.7 MiB.
Headers read from a local Aegis build.

Actual PE section metadata from the local Aegis executable
SectionRVAVirtual bytesAccess
.text0x0000100079,877,089RX
.rdata0x04C2F000519,626R
.data0x04CAE0004,200RW
.pdata0x04CB000029,328R
.rsrc0x04CB8000480R
PE metadata · local build snapshot

AegisVM

EXPERIMENTAL PLATFORM

Windows binary protection,
from the inside out.

Read the engineering note

A binary-to-binary protection compiler exploring PE rewriting, program transformation, and virtualized execution. Deterministic builds make experiments reproducible; conservative admission keeps unsupported functions out of the protected path.

PE binaryTyped IRTransformRuntime

In development. New analysis and encoded-state components are not yet a complete protection backend.

Hypervisor Research Platform

RESEARCH IN PROGRESS

Exploring AMD SVM and Hyper-V, guest CR3 observation, NPT contexts, and multi-vCPU synchronization. The question: how can execution context be established independently of guest-maintained bookkeeping?

Virtualization / Windows / Instrumentation

AI-Assisted Reverse Engineering

EVALUATION FRAMEWORK IN DEVELOPMENT

Studying how automated analysis fails under binary transformation. Current work separates semantic correctness, structural complexity, and measured analyst or agent effort.

Read the methodology

Beyond security

Music, infrastructure & systems

Immersive Now Playing

A Windows music experience unifying playback metadata, lyric timing, and real-time visual themes.

Systems & infrastructure

Other work spans an event-driven trading platform, Vtber.cn architecture refactoring, and a cross-device AI agent control plane currently in design.

The research journal.

Implementation changes, failed experiments, and the evidence behind them.

Aegis vs AI: the semantic shortcuts that survived.

Aegis · Development log

Masked-state projections, independent-agent recovery, symbolic lifting, and the fixes that stop known failures from reaching production.

Read the development log

Building an honest AI reverse-engineering evaluation.

AI & Research · Development log

Frozen A/B artifacts, external observations, authenticated receipts, and the campaign evidence a local test cannot manufacture.

Fixing PE header growth without moving RVAs.

Binary Rewriting · Development log

A short Optional Header overwrite, shared source-layout normalization, and the regression that caught stale assumptions.

Kernel64: entry paths, stack bounds, and unwind checks.

Windows Kernel · Development log

Why an eight-byte alignment fix required a call-graph proof, and what mapped fixture execution actually validated.

Memory acquisition: measuring the gaps.

Kernel Forensics · Investigation log

Coverage windows, exact code copies, negative controls, and separating an internal PTE write from a public write interface.

HyperRev: executable-state ownership across concurrent transitions

Windows Kernel · Development log

An invalid instruction address, a lifecycle audit, and the gap between a rebuilt hypervisor component and a validated runtime repair.

Devirtualization: verifying the cumulative artifact without a substituted oracle

Binary Analysis · Investigation log

What a six-driver reverse-engineering project taught me about pseudocode coverage, native closure, and retracting a result that passed the wrong test.

Driver triage: separating correlated heuristics from reachable behavior

Windows Kernel · Development log

A scan of 1,019 driver files exposed a scoring problem: ordinary kernel capabilities were being mistaken for evidence of exploitable access.

Event-log recovery: cursor consistency, decoder agreement, and resume correctness

Systems Engineering · Investigation log

Tracing a stale conversation view to a projection mismatch, then discovering why a successful offline replay was not a complete repair.

Browse all journal entries

Start with the fundamentals

ANALYSIS

A binary is more than its instructions.

3 min read

Instructions describe operations, but an executable also contains a contract with its loader. Sections, imports, relocations, and exception metadata influence how those operations become a running program.

Start with the file format. Map file offsets to virtual addresses before trusting a disassembly, identify the entry point, and distinguish initialized data from memory that only exists at runtime. An address in the file is not necessarily an address in memory.

Then connect the static picture to observed behavior. A debugger can validate whether a suspected path executes and what values reach it. Treat the disassembler's labels and inferred types as hypotheses, not ground truth.

Continue with the Microsoft PE specification
ANALYSIS

Control flow is a map, not the territory.

2 min read

A control-flow graph is a model of possible transfers between blocks. Its usefulness depends on which transfers the analysis can recover.

Indirect branches, exceptions, and code generated at runtime can leave gaps in a static graph. An observed execution trace helps confirm edges, but one trace cannot establish that an unobserved path is impossible.

Keep those two forms of evidence separate. Record which edges were inferred and which were observed, then design a small experiment around the uncertainty that matters.

PRACTICE

Make the experiment repeatable.

2 min read

A useful finding should survive a fresh environment and a second pair of eyes. Preserve the original input, record its hash, and write down the toolchain and operating system versions.

Reduce the test case until it isolates the behavior. Change one variable at a time, save the exact invocation, and capture the output needed to distinguish the expected result from the observed one.

Finally, document the limits: what the experiment demonstrates, what it leaves open, and which assumptions would invalidate the conclusion.

Based on project reports. Implementation evidence and open research questions are kept distinct. Diagrams are illustrative; project findings are drawn from the cited reports.

There’s always
another layer.

Keep looking. Keep questioning.

Back to the surface