Thick Client Application Penetration Testing

Skip the app. Ask the database.

Your desktop app holds the database password, so anyone with the binary never needs to log in at all. A senior U.S. engineer reads the connection string out and queries your data directly.

Decompiled client

// AcmeERP.exe · dnSpy
var conn = "Server=db.acme.local;
            User Id=sa;
            Password=P@ssw0rd!;"

The database's own password, in the binary.

Login requiredRole enforcedSigned build

Direct to the database

$ sqlcmd -S db.acme.local -U sa
1> SELECT * FROM Customers;
2> GO
→ 48,201 rows.
No app. No login. No log.

DB creds in the binary. Critical.

  • Login required What the app enforces
  • Password=… What the binary handed over

Nothing replaces skill. Illustrative binary, synthetic credential. The app checks your login; the database never sees it.

What We Test

Ship a desktop application and you ship its source, near enough. We install it, take it apart, and use everything it was compiled with.

Reverse Engineering

We decompile and disassemble with tools like Ghidra and dnSpy to expose logic, hidden features, and baked-in secrets.

Local Storage & Config

Config files, caches, registry keys, and local databases read for credentials and sensitive data.

Memory Analysis

The running process, examined for credentials and tokens held longer than they should be.

Traffic Interception

Cleartext transmission, weak encryption, and SSL pinning that a standard proxy walks past.

Control Tampering

We patch the binary and hook functions to defeat license checks and authentication the app assumes only it can enforce.

Backend & API Abuse

The databases, APIs, and services the client connects to, tested with the access the client hands over.

Findings We See in the Wild

What comes out of a desktop binary, most engagements.

Hardcoded Secrets

API keys, database passwords, and encryption keys compiled into the executable, recoverable by anyone with the binary.

Cleartext Local Storage

Credentials and sensitive data cached on disk without encryption.

Client-Side Auth

Login and authorization enforced only on the client, bypassed by patching one function.

Bypassable Encryption

Homegrown crypto, hardcoded keys, and SSL pinning that falls to standard interception.

Overprivileged Backend

Clients that connect to the database with far more privilege than the user needs.

Exposed Debug Features

Hidden menus, verbose logging, and developer functions left in production builds.

Architectures We Test

Thick clients come in many forms. We test them across the frameworks enterprises actually run.

.NET & WPF

Windows desktop apps, including WinForms and WPF, where decompilation and patching are often straightforward.

Java

Cross-platform clients whose bytecode is readily decompiled and inspected.

C & C++ Native

Compiled native apps that call for deeper reverse engineering, memory analysis, and binary patching.

Electron & Hybrid

Web technology in a desktop shell, exposing both thick-client and web vulnerability classes.

Two-Tier Database Clients

Apps that connect straight to a backend database, holding credentials an attacker can reuse.

ERP & Line-of-Business

Custom and vendor clients that handle sensitive data and integrate deep into internal systems.

What You Get

Written by the engineer who took the binary apart, for the team that has to fix it. Track findings in real time with Raxis One.

Technical Report

Every finding with proof, reproduction steps, impact, and a fix.

Executive Summary

A board-readable read on the risk and what to do about it.

Attack Storyboard

The whole path, from the binary to the data it reached.

Included Retest

We verify the fix and issue a clean report, at no extra cost.

FAQ: Thick Client Penetration Testing

What is thick client penetration testing?

It is a security test of a desktop application, one that runs on a user's own machine and holds real logic and data locally. Our engineers work from an installed build the way an attacker would: decompiling the binary, reading its secrets, tampering with its controls, and abusing the databases and services it connects to.

How is it different from a web application penetration test?

A web app runs on a server you control, so the attacker only sees what you send them. A thick client runs on the attacker's machine, so they have the binary, the local files, and the memory. That opens up reverse engineering, local storage attacks, and client-side tampering that a web application test never has to consider.

Do you need our source code?

No. We work from a compiled build, the same starting point a real attacker has. Source access can speed up a review and help us reach deeper coverage, so we are glad to use it when you can share it, but it is never required.

What do we need to provide?

A working installer or build, test credentials and a test environment for the backend it talks to, and a point of contact. If the application needs specific hardware, a license, or a particular OS to run, we will confirm that during scoping.

Will testing affect our production systems or backend?

We prefer to test against a staging or test backend so there is no risk to production data. When only production is available, we avoid disruptive techniques by default, flag anything sensitive during kickoff, and agree on limits with you before we start.

Can you test the backend APIs and database at the same time?

Yes, and it usually surfaces the highest-impact findings. Thick clients often talk to their backend APIs and databases with broad privileges. Once we recover those credentials from the client, we test what that access actually unlocks. We scope the backend into the engagement so the two are tested together.

What kinds of thick client applications do you test?

.NET and WPF, Java, native C and C++, Electron and other hybrid apps, two-tier database clients, and custom ERP or line-of-business tools. If it installs and runs on a desktop and talks to a backend, we can test it. Tell us the framework during scoping and we will confirm our approach.

How long does a thick client penetration test take?

Most engagements run one to two weeks, including reporting. Reverse engineering a large native application, or testing a wide backend behind it, moves it toward the longer end. We give you a firm timeline once scope is set.

Does this help with compliance?

Yes. When a desktop application handles regulated data, testing it supports PCI DSS, HIPAA, SOC 2, and similar frameworks, and satisfies auditors who expect application-layer testing beyond the network. Raxis reports include an attestation letter you can share with customers and partners.

Who performs the testing?

Senior US-based Raxis engineers holding certifications such as OSCP and OSCE. No outsourcing, and no junior testers learning on your application.

Request a quote

Tell Us What You Need Tested

We usually respond in one business day.

Please let us know what's on your mind. Include any details about your target environment, timeline, or compliance drivers.