Skip to content

ISO 27001, SOC 2, the DPDP Act and manual VAPT. Book a Free Scoping Call

Part of VAPT7 services in this practice area

Desktop Apps, Taken Apart

Thick Client Penetration Testing

Thick client apps hide a lot in the binary and the traffic between client and server. We reverse the application, watch how it talks to its backend, and test the trust it places in the machine it runs on.

See the engagement path, 6 phasesSee the full VAPT service index

Overview

A thick client VAPT covers desktop applications, whether .NET, Java, C++ or Electron. We look at how the app stores data and secrets locally, how it communicates with its servers, and how much it trusts input from the client side. Because the user controls the machine, we test what happens when an attacker tampers with the binary, the memory and the traffic that the app assumes it can rely on.

Methodology

How the Engagement Runs

Every phase has a named output, so you always know what is being worked on and what lands on your side of the table.

The Engagement, End to End

6 Phases, 6 Named Handovers

Flow

Flow chart of the Thick Client Application engagement, 6 phases in order, each one selectable. Phase 1, Scoping and Rules of Engagement. We agree the application, installers, test accounts and backend services in scope, and set up a controlled test machine. Activities: Confirm the app, installers and backends in scope; Provision test accounts and licences; Set up a controlled test machine; Agree testing windows and contacts. Hands over Signed Rules of Engagement. Phase 2, Reconnaissance and Binary Analysis. We inspect the installed files, configuration and binaries, decompile managed code and look for secrets, weak crypto and unsafe local storage. Activities: Inspect installed files and configuration; Decompile managed .NET and Java code; Hunt for hardcoded secrets and weak crypto; Review local data storage. Hands over Binary Analysis Findings. Phase 3, Traffic and Protocol Analysis. We intercept and decode the client-to-server traffic, including proprietary and non-HTTP protocols, to find weak transport and trust in client input. Activities: Intercept client-to-server traffic; Decode proprietary and non-HTTP protocols; Assess transport security; Probe server trust in client input. Hands over Protocol Analysis Findings. Phase 4, Manual Exploitation. We tamper with the binary, patch runtime behaviour and manipulate memory to bypass client-side controls and licensing checks. Activities: Patch the binary to alter behaviour; Manipulate memory at runtime; Bypass client-side security controls; Defeat licensing and integrity checks. Hands over Proven Client-Side Findings. Phase 5, Backend and Impact. We test the server the client trusts and show how client-side tampering translates into real impact on data and other users. Activities: Test the backend services the client trusts; Turn client tampering into server-side impact; Map exposed data and affected users; Assess combined business impact. Hands over Impact and Risk Assessment. Phase 6, Reporting and Verified Retest. You get a report with proof of concept and clear fixes, and we retest once you remediate to confirm each issue is closed. Activities: Document findings with proof of concept; Produce an executive summary; Walk your team through the results; Retest fixes and confirm closure. Hands over Final Report and Verified Retest. Each phase begins from the artefact the phase before it produced.

Phase 01 Scoping and Rules of Engagement

We agree the application, installers, test accounts and backend services in scope, and set up a controlled test machine.

What Happens In This Phase

  • Confirm the app, installers and backends in scope
  • Provision test accounts and licences
  • Set up a controlled test machine
  • Agree testing windows and contacts

The Handover

Signed Rules of Engagement

The next phase starts from this.

Read the handover cards on their own and you have the paper trail. Select a phase to see what happens inside it.
  1. 01

    Scoping and Rules of Engagement

    We agree the application, installers, test accounts and backend services in scope, and set up a controlled test machine.

    OutputSigned Rules of Engagement

    Activities

    • Confirm the app, installers and backends in scope
    • Provision test accounts and licences
    • Set up a controlled test machine
    • Agree testing windows and contacts
  2. 02

    Reconnaissance and Binary Analysis

    We inspect the installed files, configuration and binaries, decompile managed code and look for secrets, weak crypto and unsafe local storage.

    OutputBinary Analysis Findings

    Activities

    • Inspect installed files and configuration
    • Decompile managed .NET and Java code
    • Hunt for hardcoded secrets and weak crypto
    • Review local data storage
  3. 03

    Traffic and Protocol Analysis

    We intercept and decode the client-to-server traffic, including proprietary and non-HTTP protocols, to find weak transport and trust in client input.

    OutputProtocol Analysis Findings

    Activities

    • Intercept client-to-server traffic
    • Decode proprietary and non-HTTP protocols
    • Assess transport security
    • Probe server trust in client input
  4. 04

    Manual Exploitation

    We tamper with the binary, patch runtime behaviour and manipulate memory to bypass client-side controls and licensing checks.

    OutputProven Client-Side Findings

    Activities

    • Patch the binary to alter behaviour
    • Manipulate memory at runtime
    • Bypass client-side security controls
    • Defeat licensing and integrity checks
  5. 05

    Backend and Impact

    We test the server the client trusts and show how client-side tampering translates into real impact on data and other users.

    OutputImpact and Risk Assessment

    Activities

    • Test the backend services the client trusts
    • Turn client tampering into server-side impact
    • Map exposed data and affected users
    • Assess combined business impact
  6. 06

    Reporting and Verified Retest

    You get a report with proof of concept and clear fixes, and we retest once you remediate to confirm each issue is closed.

    OutputFinal Report and Verified Retest

    Activities

    • Document findings with proof of concept
    • Produce an executive summary
    • Walk your team through the results
    • Retest fixes and confirm closure

Specification

What We Run, and What We Measure You Against

The tooling our engineers use on this work, and the published standards the findings and evidence are mapped to.

Scope

What Is Examined, and What it Is Measured Against

Map

Map of the Thick Client Application scope, running left to right in three stages. Stage one, what we run, 8 tools and techniques: Ghidra, x64dbg, Wireshark, Frida, dnSpy, Echo Mirage, Process Monitor, Burp Suite Professional. Stage two, findings from all of it are proven by hand and written up once. Stage three, measured against 5 published standards: OWASP ASVS, PTES, NIST SP 800-115, OSSTMM, CVSS v4.0.

What We Run

8 tools

  • Ghidra
  • x64dbg
  • Wireshark
  • Frida
  • dnSpy
  • Echo Mirage
  • Process Monitor
  • Burp Suite Professional

Converges On

One Set of Proven Findings

Every issue is reproduced by hand before it is written down, and it is written down once.

Measured Against

5 standards

  • OWASPASVS
  • PTES
  • NIST SP 800-115
  • OSSTMMISECOM
  • CVSS v4.0
One pass of testing and analysis, one set of findings, then that single set is graded against every standard on the right. You are not paying for the same work once per framework.

Deliverables

What You Receive

  • Findings report with proof of concept
  • Executive summary
  • Remediation guidance
  • Verified retest report
  • Attestation letter

Scope This Engagement

Tell us about your environment, your timelines and any audit dates you are working to. We come back with scope, effort and a start date.

Questions

What Clients Ask Us

Something here not covered? Ask Us Directly.

How is a thick client test different from a web application test, and what does it actually examine?

The difference is who controls the runtime. In a web test the browser stays largely out of the attacker's hands; in a thick client test the attacker owns the machine the application runs on, so everything the application trusts locally is open for examination. That shapes the work. We inspect the installed files and configuration, decompile managed .NET and Java code, hunt for hardcoded secrets and weak crypto, and review how the application stores data locally. We intercept and decode the client-to-server traffic, including proprietary and non-HTTP protocols that an ordinary web proxy never sees. We then patch the binary, manipulate memory at runtime and defeat licensing and integrity checks to prove what a determined user can change. Finally we test the backend the client depends on, because the impact that matters comes from a server trusting input from a client an attacker fully controls.

What do we have to supply, and what should the test environment look like?

You supply the installer, working licences and test accounts, and we set up a controlled test machine at our end. The scoping call establishes which application versions, installers and backend services are in scope, and the rules of engagement are signed before any testing begins. From you we need the build we should test, credentials for each role the application distinguishes, the backend environment we are pointed at, agreed testing windows and named contacts we can reach while testing runs. A dedicated non-production backend is the usual choice, because this work involves tampering with the client and sending the server input it was never designed to receive. If only production exists, say so at scoping and we agree the limits in writing rather than discovering them mid-test. Source code is not required here; where you want the code itself examined, that is our Secure Code Review service.

Do you test our licensing and anti-tampering protections, and what happens if the application is obfuscated?

Yes, defeating licensing and integrity checks is an explicit part of this engagement, and obfuscation changes the effort rather than the outcome. Client-side protections are tested on the assumption that an attacker has unlimited time with the binary on a machine they own, which is the honest assumption for desktop software. We patch the binary to alter behaviour, manipulate memory at runtime and work around the checks that decide what the application will allow. Obfuscated or natively compiled code takes longer to read than managed .NET or Java, so we raise that at scoping and price the effort rather than discover it later. What matters in the report is not that a protection was bypassed, since given the machine most are, but which of them were the only thing standing between a user and data or functionality they should not reach. That distinction decides where the server-side fix belongs.

What do you typically find in a desktop application, and how is each finding proved?

The recurring findings cluster around trust the application places in the machine it runs on. Secrets and connection strings left in configuration files or recoverable from decompiled code. Sensitive data written to local storage, logs or temporary files without protection. Weak or absent transport security on a proprietary protocol. Authorisation decided in the client and accepted by the server on trust. Licensing or feature gates enforced only client-side. On the backend, the common pattern is a service that validates little because the client validated it already. Every issue is reproduced by hand before it is written down, and it is written down once, with proof of concept attached. Findings are graded with CVSS v4.0, and the work is measured against OWASP ASVS, PTES, NIST SP 800-115 and OSSTMM. Critical findings reach you within three hours of discovery rather than waiting for the report.

How long does an engagement take, what does it cost, and what is not included?

Scope decides both, and both are fixed in writing before anything starts. A thirty to forty-five minute scoping call establishes the application, the installers, the roles and the backend services involved, and you receive a written scope with a timeline and a fixed price rather than a day rate that drifts. Effort is driven by how the application is built, how many roles and workflows it distinguishes, whether the protocol is standard or proprietary, and how large the backend behind it is. The price includes the retest, so verifying your fixes is not a separate invoice. Not included: source code review, which is a separate service; dependency analysis, which is our Software Composition Analysis service; and anything outside the signed scope, including systems you cannot authorise. Nothing is touched without written authorisation, and destructive actions stay out unless they are separately agreed.

Keep Moving Through VAPT

Service 4 of 7 in this practice area