Home/Services/Thick Client & Desktop App Penetration Testing
security service

Thick Client & Desktop App Penetration Testing

Thick client penetration testing across Europe. We break your desktop apps at the binary, memory and network layers. Fixed price, free retest.

Manual, expert-ledEvidence-based findingsFree remediation retest

Thick client penetration testing examines the desktop applications your business runs and trusts, the installed software that talks to your databases and back-end services, because a compiled binary sitting on a user’s machine hides far more than a web page ever could. Attackers decompile it, tamper with it in memory, and intercept its traffic, and most of it was never built to survive that scrutiny.

Web apps get tested constantly. Thick clients, the Windows and .NET and Java applications that run your operations, trading, ERP, point-of-sale, engineering tools, rarely do, and they carry assumptions no one has ever challenged. Developers assume no one will look inside the executable, that client-side checks are enough, and that the connection to the server is safe simply because it’s theirs. We take those assumptions apart, one by one, and show you what a determined attacker with a copy of your software can do.

What thick client penetration testing covers

A thick client is attacked at several layers at once: the binary itself, the memory it runs in, the files and registry it touches, and the network calls it makes. We test all of them, because a weakness at any layer can undermine the whole application.

Reverse engineering and decompilation of .NET and Java binaries
Client-side control bypass and business-logic tampering
Runtime memory analysis and in-memory secret extraction
Intercepting and tampering with client-to-server traffic
Hardcoded credentials, keys and connection strings in the binary
Insecure local storage, config files and registry entries
DLL hijacking, insecure updates and privilege escalation

The client is not on your side

The core problem with any thick client is that it runs on a machine the attacker controls. Every check the application performs locally can be observed, disabled or lied to. A “you can’t do this” button greyed out in the interface is trivially re-enabled once someone opens the binary in a decompiler. Anything the security of your system depends on has to live on the server, and testing reveals every place it doesn’t.

Two-tier and back-end exposure

Many thick clients connect straight to a database with credentials baked into the application. Extract those, and an attacker often has direct database access, bypassing every business rule the application was supposed to enforce. This two-tier architecture is common in older enterprise software and is one of the most serious patterns we find.

How we test a thick client

Testing a compiled application is more involved than testing a web app, and it draws on reverse-engineering skill as much as offensive-security experience. We work under NDA against a copy of the application in an environment agreed with you.

Reconnaissance and architecture mapping

First we understand what we’re dealing with: the language and framework, whether it’s a standalone two-tier client or a front end to web services, what it stores locally, and how it authenticates. This shapes everything that follows, because a Java client and a native C++ application fail in different ways.

Static analysis and reverse engineering

We decompile the binary to read its logic, hunting for hardcoded secrets, weak cryptography, hidden functionality and the client-side checks that beg to be bypassed. .NET and Java assemblies often decompile back to near-original source, which means any secret in the code is effectively public.

Tools used in penetration testing of thick clients

The tools used in penetration testing at this layer are specialised. We reach for dnSpy and JADX to decompile .NET and Java, Ghidra for native binaries, Frida for runtime instrumentation and hooking, Process Monitor to watch file and registry activity, and proxies such as Burp Suite together with Echo Mirage or a configured system proxy to intercept traffic that doesn’t speak plain HTTP. None of it replaces the engineer’s judgement; it just gives them the view an attacker would have.

Dynamic and runtime analysis

With the application running we watch it work: what it writes to disk and the registry, what secrets sit in memory, and whether we can hook functions with Frida to change behaviour on the fly. Bypassing a licence check or an authorisation gate at runtime proves that client-side enforcement is no enforcement at all.

Network and back-end testing

We intercept and tamper with the traffic between client and server, checking for weak or absent transport security, missing certificate validation, and server-side trust in values the client should never be trusted to set. This is usually where a local weakness becomes a genuine breach, because the server takes the tampered request at face value.

48h
typical time to first confirmed findings
100%
manual, hands-on reverse engineering
Free
retest after your developers fix

Vulnerabilities we find in desktop applications

Thick clients fail in recognisable ways, and the same issues recur across enterprise software of every vintage.

Secrets baked into the binary

Database passwords, API keys, encryption keys and connection strings hardcoded into the executable are the classic finding. Developers assume the compiled form hides them. Decompilation shows they don’t, and a single extracted database credential can expose everything behind the application.

Client-side security that isn’t

Authorisation decisions, input validation, price calculations and feature gating done only on the client are all bypassable, because the client belongs to the attacker. We routinely re-enable disabled functions, open up restricted features and alter values the server then accepts without question.

Insecure local storage

Sensitive data cached in cleartext files, unprotected registry keys, or weakly encrypted local databases hand an attacker with access to the machine a rich supply of information, from credentials to personal data covered by GDPR.

Insecure updates and DLL hijacking

An update mechanism that fetches code over an unauthenticated channel, or an application that loads libraries from a writable path, gives an attacker code execution on the user’s machine. These issues turn a business application into a foothold for wider compromise.

Get a fixed quote

Want this tested on your own systems?

Free 20-minute scoping call, a fixed price with no hourly surprises, and a free retest once you fix what we find.

Get a fixed quote

What you get

A clear picture of how your desktop software holds up under attack, and the specific fixes to close the gaps.

Executive summary

A plain-language read for leadership on what an attacker could do with a copy of your application, and which findings carry real business risk versus which are lower priority.

Technical report

Every finding with impact, a CVSS score, reproduction steps and a concrete, developer-ready fix, whether that means moving a check to the server, removing a hardcoded secret, or hardening the update process. Decompiled snippets and screenshots back up each one.

Attestation and free retest

An attestation letter for auditors and clients, and a no-cost retest after your developers remediate, to confirm the fixes hold when the same techniques are applied again.

Compliance and standards

Thick client testing supports the frameworks European organisations report against, particularly where the application handles payments or personal data.

PCI DSS, ISO 27001 and SOC 2

If the desktop application touches cardholder data, PCI DSS 4.0 requirement 6 on secure software and requirement 11.4 on penetration testing both apply. ISO 27001 Annex A control 8.28 on secure coding and SOC 2’s expectations around secure development are directly supported by a thick client assessment, and testing follows the OWASP application-security guidance adapted for compiled clients.

GDPR and DORA

Where the application processes personal data, GDPR Article 32 expects appropriate technical measures, and for financial entities DORA’s focus on the resilience of critical software includes the desktop tools that run core operations.

Why manual testing beats a scanner

No automated tool decompiles your application, understands what a given function is supposed to enforce, and works out how to make it lie. Scanners were built for web apps and network services; they have almost nothing to say about a compiled desktop binary, its memory, and the trust relationship between it and your back end. This is reverse-engineering work, and it depends entirely on an engineer who can read decompiled code and reason about intent. You get a short list of proven, exploitable findings rather than a wall of noise, and every one comes with the exact steps to reproduce it.

Where thick client testing fits

A thick client rarely stands alone. It talks to APIs, databases and web services, and a complete assessment usually takes those in too, because the most damaging findings live at the boundary between the client and what it connects to. If you already test your web application and APIs, the desktop client is the obvious gap, and testing it closes a surface that attackers know is routinely overlooked. It pairs naturally with an internal network test, since a compromised desktop application is often the first foothold inside the perimeter.

Pricing

The penetration testing cost for a thick client depends on the application’s size and complexity, its architecture, and whether the back-end services are in scope alongside the binary. Here is the typical shape of a European engagement.

Engagement What’s included Timeline Price
Essential Single desktop application, static and dynamic analysis, traffic interception, hardcoded-secret and local-storage review, full report and free retest 4–6 working days from €3,000
Standard Larger application with authentication and back-end services in scope, runtime instrumentation, business-logic testing, exec and technical reporting 6–10 working days €4,000–€9,000
Advanced Complex or high-risk client, two-tier database access, deep reverse engineering and update-mechanism testing 10–15 working days €9,000–€18,000
Compliance add-on Mapping and attestation for PCI DSS, ISO 27001, SOC 2 or DORA with any tier from €800
Custom / suite Multiple applications or a full desktop suite, scoped after a call on scoping custom

Every engagement is fixed-price, quoted after a free 20-minute scoping call, with no hourly surprises and a retest included. Get a fixed quote

FAQ

How much does thick client penetration testing cost?
Thick client penetration testing starts from €3,000 and the penetration testing cost scales with the application’s complexity and whether its back-end services are in scope. You get a fixed quote after a free scoping call rather than an hourly rate.
How long does a thick client pen test take?
A single application usually runs 4–6 working days plus the report, with complex two-tier or high-risk clients taking longer. Reverse engineering and runtime analysis are the parts that take the most care.
What do you need from us to start?
A copy of the application and its installer, ideally a test environment and test accounts, and any documentation you have. We work under NDA, and we don’t need your source code, though it speeds things up if you’re able to share it.
What tools do you use for thick client testing?
The tools used in penetration testing here include dnSpy and JADX for decompiling .NET and Java, Ghidra for native binaries, Frida for runtime hooking, Process Monitor for file and registry activity, and Burp Suite with a proxy for network interception. The judgement of the engineer matters more than any single tool.
Can you test an application that talks to a database directly?
Yes, and it’s one of the most important cases. Two-tier clients often carry database credentials in the binary, so we extract them, demonstrate the direct database access they allow, and show how it bypasses your application’s business rules.
Will testing affect our production systems?
No. We test against a copy in an agreed environment, and any interaction with live back-end services is scoped carefully with you in advance. Availability and data integrity are never put at risk to prove a point.
Does this satisfy PCI DSS or ISO 27001 requirements?
Yes. The report and attestation support PCI DSS 4.0 secure-software and penetration-testing requirements, ISO 27001 Annex A secure-coding controls, and SOC 2. Tell us your framework and we align the deliverables.
We only ever tested our web app. Why test the desktop client too?
Because it’s a completely different attack surface. A thick client can be decompiled, run in memory the attacker controls, and often holds secrets or connects to databases directly. As a European thick client penetration testing company, we test what the web assessment never touched.

Related services

Who needs this

Organisations that build or depend on installed desktop software: ISVs shipping Windows, .NET or Java applications to their own customers, enterprises running trading, ERP or point-of-sale clients that connect to sensitive back ends, and any business subject to PCI DSS or ISO 27001 whose desktop applications have never been tested at the binary level.

why safetybis

Security you can prove

The same standard on every engagement, big or small.

Evidence, not opinions

Every finding ships with a reproduction and proof of concept — no vague "maybe vulnerable".

Humans over scanners

Certified engineers find the logic flaws and chained attacks automated tools walk straight past.

Fixed price, free retest

You know the cost up front, and verifying the fix is part of the deal — not a second invoice.

500+
assessments delivered
<30min
incident first response
12k+
infections removed
98%
fixed within one retest
$ safetybis quote --service "Thick Client & Desktop App Penetration Testing"

Ready to lock this down?

Free scoping call, fixed price, free retest. Tell us what you're running and we'll take it from there — usually within one business day.

get in touch

Tell us what you're running

Scoping is free. We reply within one business day, and under 30 minutes for active incidents.