Secure Code Review
Manual review of your most critical code, with findings mapped to exact lines and fixes your developers can apply.
Application testing
We take your desktop application apart the way an attacker would and show you what it gives away on the machines it runs on.
Overview
Desktop software is still everywhere: trading terminals, healthcare systems, engineering tools, admin consoles, internal line-of-business apps. It is also one of the least tested parts of the attack surface. Once installed, a thick client runs on a machine the user controls. Every secret it holds and every check it makes can be inspected, patched or bypassed.
Few boutiques test desktop software in depth. We do. Our testers analyse the binary, the local environment and the server-side components together, so we find the issues that only show up when you look at all three.
Scope
Findings
Generic examples of what this kind of testing tends to uncover. Every engagement is different, and we never share client findings.
The app connects straight to a database with an account that every user can extract.
Updates fetched over insecure channels or installed without verifying a signature.
Role, licence or approval checks that disappear when the client is patched or its traffic is replayed.
A service running as SYSTEM or root that loads files or libraries from user-writable paths.
Tokens, passwords or keys left in config files, the registry or local caches.
Node integration enabled or context isolation disabled, which turns a simple XSS into code execution.
Severity shown is typical, not fixed. We rate each finding on its real impact in your environment.
Approach
We map how the client is installed, what it runs as, what it stores and which servers, protocols and databases it talks to.
We decompile or disassemble the application to find secrets, hidden features and client-side checks that an attacker could remove.
We test file and registry permissions, library loading, services, IPC and the update mechanism for ways to escalate privileges or run code.
We intercept and replay the client's traffic to test the backend for authorization, injection and logic flaws, without the client in the way.
Every finding is reproduced with clear evidence and rated by impact, with fixes your developers can apply in the client, the server or both.
Deliverables
Every finding comes with proof-of-concept evidence, so your engineers can reproduce it and your auditors can trust it.
A plain-English view of risk for leadership, boards and customers.
Each issue with impact, evidence, reproduction steps and a clear fix.
Once you’ve fixed the findings, we retest them and update the report.
A letter you can share with customers and auditors to show testing was done.
Preparation
We'll confirm the details during scoping. Having these ready helps testing start on time.
FAQ
Windows, macOS and Linux applications built with .NET, Java, Electron and native C or C++. If your stack is unusual, tell us during scoping and we will confirm how we approach it.
No. We test the compiled application as an attacker would. Source code helps us go deeper in less time, so we can combine the test with a secure code review if you prefer.
Yes. The servers and APIs the client talks to are part of the attack surface, and testing them is usually where the most serious findings come from.
Yes. We assess how licensing and feature gating can be bypassed and how much effort that takes, so you can decide what level of protection is worth it.
Yes. Once you release fixes, we retest the reported issues at no extra cost and update the report with their status.
Manual review of your most critical code, with findings mapped to exact lines and fixes your developers can apply.
Hands-on testing of REST, GraphQL and gRPC APIs for broken authorization, data exposure and abuse of business logic.
Assumed-breach testing of your internal network and Active Directory, delivered remotely, to show how far one compromised laptop could go.
Tell us what you need tested. You’ll get a fixed-fee proposal with tester-days and timeline stated, usually within a few days of the scoping call.