<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on SPERIXLABS</title><link>https://sperixlabs.org/posts/</link><description>Recent content in Posts on SPERIXLABS</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>SPERIXLABS</copyright><lastBuildDate>Wed, 23 Sep 2026 18:00:00 +0000</lastBuildDate><atom:link href="https://sperixlabs.org/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Agents Can't Bluff a Kernel: Teaching AI to Prove Gauss in Five Proof Systems</title><link>https://sperixlabs.org/post/2026/09/agents-cant-bluff-a-kernel-teaching-ai-to-prove-gauss-in-five-proof-systems/</link><pubDate>Wed, 23 Sep 2026 18:00:00 +0000</pubDate><guid>https://sperixlabs.org/post/2026/09/agents-cant-bluff-a-kernel-teaching-ai-to-prove-gauss-in-five-proof-systems/</guid><description>The factorial function type-checked on the first try. It passed the termination checker. It compiled to C, ran natively, and printed an answer. The answer was wrong.
Not wrong the way LLM output is usually wrong — no hallucinated citation, no subtly plausible prose. Wrong the way only a machine can be wrong: fact(10) returned 986410 instead of 3628800, because the agent writing it had expressed the step as 1 + p * fact(p) instead of (1 + p) * fact(p). Every guarantee the language promised, it kept. Types: fine. Termination: fine. Intent: never checked, because intent is not a type.</description></item><item><title>The Function That Beat the Model: What We Measured When We Removed the LLMs</title><link>https://sperixlabs.org/post/2026/09/the-function-that-beat-the-model-what-we-measured-when-we-removed-the-llms/</link><pubDate>Mon, 21 Sep 2026 12:00:00 +0000</pubDate><guid>https://sperixlabs.org/post/2026/09/the-function-that-beat-the-model-what-we-measured-when-we-removed-the-llms/</guid><description>For months, a 1-billion-parameter model validated sensitive-data detections in our proxy pipeline. Last week we ran it against a 40-line Python function. The model kept 85% of the deliberately invalid test data — fake credit cards with broken checksums — and quietly dropped real IBANs, real social security numbers, and a person’s actual email address. The function caught every fake, kept every real one, and answered in ten microseconds.
We didn’t set out to pick a fight with local LLMs. We set out to answer one question — can each layer of our pipeline do the same job, or better, without a local model? — and we refused to flip any switch until a benchmark said yes. What follow are the four experiments, the numbers, and the pattern hiding underneath them. The pattern matters more than the numbers.</description></item><item><title>Manifold: Chaining Seven Proxy Layers Into a Single Transparent LLM Pipeline</title><link>https://sperixlabs.org/post/2026/07/manifold-chaining-seven-proxy-layers-into-a-single-transparent-llm-pipeline/</link><pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate><guid>https://sperixlabs.org/post/2026/07/manifold-chaining-seven-proxy-layers-into-a-single-transparent-llm-pipeline/</guid><description>Every LLM proxy tool you install — a redactor, a router, a rate limiter, a cache — spins its own HTTP server. Each one speaks the OpenAI or Anthropic API. Each one expects to be the last stop before the cloud. Wire three of them together and you’re hand-editing YAML files, praying the port numbers line up, and discovering at 2 AM that your rate limiter was sending traffic directly to api.anthropic.com because someone forgot to update the upstream.</description></item><item><title>DAEDALUS — A Security Research Control Plane for Apple's Container Runtime</title><link>https://sperixlabs.org/post/2026/07/daedalus-a-security-research-control-plane-for-apples-container-runtime/</link><pubDate>Tue, 28 Jul 2026 12:00:00 +0000</pubDate><guid>https://sperixlabs.org/post/2026/07/daedalus-a-security-research-control-plane-for-apples-container-runtime/</guid><description>What is DAEDALUS?# DAEDALUS is an open-source security-research control plane built on Apple’s container runtime. It exploits a unique property of macOS on Apple silicon — one lightweight VM per container via Virtualization.framework — to create hardware-isolated, disposable Linux sandboxes. You drive them through a CLI, a web dashboard, an HTTP API, or autonomous coding agents via MCP.
Detonation, Analysis &amp; Experimentation — Daedalus Architecture for Linux container Units &amp; Sandboxing.</description></item><item><title>Fake recruitment, remote JSON payloads, and function-inliner malware (analysis)</title><link>https://sperixlabs.org/post/2026/05/fake-recruitment-remote-json-payloads-and-function-inliner-malware-analysis/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://sperixlabs.org/post/2026/05/fake-recruitment-remote-json-payloads-and-function-inliner-malware-analysis/</guid><description>Recruiters who ask you to clone a repository and run setup scripts are not always recruiters. One common pattern is remote configuration: staged JavaScript arrives as JSON from a paste-style host, heavily obfuscated, then executes in a local Node environment with full access to the machine.
This walkthrough covers two related samples (payload.json at 69,459 bytes and payload_2.json at 20,461 bytes), where they were fetched from, how to pull them safely for study, and what static analysis suggests they do: function-inliner obfuscation, persistence, browser credential targeting, and HTTP callback traffic.</description></item><item><title>LLM-Redactor: What Leaves Your Prompt When You Talk to a Cloud LLM</title><link>https://sperixlabs.org/post/2026/04/llm-redactor-what-leaves-your-prompt-when-you-talk-to-a-cloud-llm/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://sperixlabs.org/post/2026/04/llm-redactor-what-leaves-your-prompt-when-you-talk-to-a-cloud-llm/</guid><description>Every time a coding agent sends a prompt to a cloud LLM, the full content of that prompt — your code, your credentials, your customer names, your internal project codenames — lands on someone else’s server. It may be logged, retained for training, produced in response to subpoena, or exfiltrated in a breach. TLS protects the wire. Nothing protects the content.
We built LLM-Redactor to measure exactly how much leaks and what you can do about it. The paper evaluates eight techniques on a common benchmark. This post is the practitioner’s summary.</description></item><item><title>Local-Splitter: Cutting Cloud LLM Costs by Putting a Small Model in Front</title><link>https://sperixlabs.org/post/2026/04/local-splitter-cutting-cloud-llm-costs-by-putting-a-small-model-in-front/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://sperixlabs.org/post/2026/04/local-splitter-cutting-cloud-llm-costs-by-putting-a-small-model-in-front/</guid><description>Cloud LLM tokens are expensive. Not in the “my AWS bill is high” sense — in the “I’m burning $0.015 per 1K output tokens and my coding agent sends 200+ requests per session” sense. Most of those requests don’t need a frontier model. “What does this function return?” doesn’t need Claude Opus. “Add a docstring here” doesn’t need GPT-5.
Local-Splitter is an open-source shim that sits between your coding agent and the cloud. A 3B parameter model running locally on Ollama triages every request: trivial ones get answered locally (zero cloud tokens), and complex ones get their prompts compressed before forwarding. The paper is now on arXiv: 2604.12301.</description></item><item><title>Resilient Write: Giving Coding Agents a Write Path That Doesn't Break</title><link>https://sperixlabs.org/post/2026/04/resilient-write-giving-coding-agents-a-write-path-that-doesnt-break/</link><pubDate>Sun, 12 Apr 2026 22:00:00 +0000</pubDate><guid>https://sperixlabs.org/post/2026/04/resilient-write-giving-coding-agents-a-write-path-that-doesnt-break/</guid><description>If you’ve spent any time watching an LLM coding agent work, you’ve seen it happen: the agent generates a perfectly good file, calls Write, and… nothing. The content vanishes. The agent retries the exact same payload. Five times. Then it gives up or cobbles together a cat &gt;&gt; file.tex &lt;&lt;EOF workaround in the shell.
This happened to me in April 2026 while an agent was producing a telemetry report. A LaTeX document containing redacted HTTP headers like Authorization: Bearer sk-ant-oat01-{REDACTED} got silently rejected by the host tool’s content filter. The prefix sk-ant- was enough to trigger the regex. No error. No feedback. Just silence and wasted tokens.</description></item><item><title>What Leaves Your Workstation When You Use an LLM Coding CLI</title><link>https://sperixlabs.org/post/2026/04/what-leaves-your-workstation-when-you-use-an-llm-coding-cli/</link><pubDate>Sat, 11 Apr 2026 18:10:00 +0000</pubDate><guid>https://sperixlabs.org/post/2026/04/what-leaves-your-workstation-when-you-use-an-llm-coding-cli/</guid><description>TL;DR# I put five LLM coding CLIs through a transparent TLS-intercepting proxy for about three and a half hours in a lab environment and captured every HTTP(S) transaction they made. The tools were Claude Code, GitHub Copilot CLI, Cursor CLI, OpenAI Codex CLI, and Opencode CLI. The capture ran on an Apple Silicon MacBook (darwin/arm64) on 2026-04-11 and produced 302 transactions across 18 hosts.
A few things stood out:</description></item><item><title>Ollama-Forge for Security Research: Local Models, Refusal Ablation, and Reproducible Pipelines</title><link>https://sperixlabs.org/post/2026/02/ollama-forge-for-security-research-local-models-refusal-ablation-and-reproducible-pipelines/</link><pubDate>Mon, 16 Feb 2026 12:00:00 +0000</pubDate><guid>https://sperixlabs.org/post/2026/02/ollama-forge-for-security-research-local-models-refusal-ablation-and-reproducible-pipelines/</guid><description>Introduction# Security work often involves prompts and data you cannot send to commercial APIs: malware descriptions, exploit drafts, jailbreak and prompt-injection tests, or sensitive internal docs. Running models locally gives you control and keeps that data on your machine. ollama-forge is a CLI (PyPI · GitHub) that makes it straightforward to fetch open-weight models, convert them to Ollama, remove refusal behavior when you need it for defensive or red-team research, run security evals (e.g. ASR, refusal rate) against your local model, and lock down exact setups for reproducibility.</description></item><item><title>Unlocking the Vault: A Deep Dive into macOS ARM64 Trial Enforcement and Binary Patching</title><link>https://sperixlabs.org/post/2026/02/unlocking-the-vault-a-deep-dive-into-macos-arm64-trial-enforcement-and-binary-patching/</link><pubDate>Sun, 01 Feb 2026 10:19:53 +0000</pubDate><guid>https://sperixlabs.org/post/2026/02/unlocking-the-vault-a-deep-dive-into-macos-arm64-trial-enforcement-and-binary-patching/</guid><description>Introduction# In the course of analyzing a decompiled macOS productivity application—a calendar and meeting alert utility with a time-limited trial—we encountered a multi-layered enforcement mechanism governing trial expiry, feature gating, and application termination. This practice is common in commercial software: when the trial expires, the app displays warnings, disables premium features, and eventually terminates unless the user purchases or restores a license.
This article documents the complete reverse engineering journey: from initial string reconnaissance through call-graph tracing, assembly-level analysis, and ultimately the development of six binary patches that bypass trial termination, re-enable gated features, and customize the UI—all without modifying the application’s source code or runtime environment.</description></item><item><title>Malicious Code Loading via Base64 Encoded .dex File</title><link>https://sperixlabs.org/post/2025/11/malicious-code-loading-via-base64-encoded-.dex-file/</link><pubDate>Mon, 10 Nov 2025 15:26:53 +0000</pubDate><guid>https://sperixlabs.org/post/2025/11/malicious-code-loading-via-base64-encoded-.dex-file/</guid><description>Introduction# In the course of analyzing a decompiled Java application, we encountered an unusual code segment that decodes a Base64 encoded .dex file, loads it dynamically, and invokes methods from it. This practice is often associated with malicious activities such as code injection, runtime manipulation, and delivery of payloads without being detected during static analysis.
Code Analysis# The following Java code snippet outlines the suspicious behavior:</description></item><item><title>Identifying Packages Used by Flutter Apps</title><link>https://sperixlabs.org/post/2025/09/identifying-packages-used-by-flutter-apps/</link><pubDate>Mon, 08 Sep 2025 21:46:53 +0000</pubDate><guid>https://sperixlabs.org/post/2025/09/identifying-packages-used-by-flutter-apps/</guid><description>Sometimes it’s useful to determine what Flutter packages are used in a Flutter app. This can be useful for security audits, vulnerability assessments, or just to understand the app better.
Technique# For android apps, extract or export the libapp.so file from the APK file. This file is usually located in the lib/&lt;architecture&gt;/ directory inside the APK file. For iOS, you can find an equivalent binary file in the Frameworks/App.framework/App inside the extracted IPA file.</description></item><item><title>Analyzing a Weird Behavior in a Tenda AX3000 WiFi6 Mesh Router</title><link>https://sperixlabs.org/post/2025/09/analyzing-a-weird-behavior-in-a-tenda-ax3000-wifi6-mesh-router/</link><pubDate>Sun, 07 Sep 2025 21:26:53 +0000</pubDate><guid>https://sperixlabs.org/post/2025/09/analyzing-a-weird-behavior-in-a-tenda-ax3000-wifi6-mesh-router/</guid><description>I recently purchased a Tenda AX3000 WiFi6 Mesh Router from AliExpress. The setup was quite straightforward and it works well. However, I was tempted to figure out what the device might be doing on my network and I encountered something very strange. Let’s take a look at the device and its behavior.
The Device# The device consisted of 3 nodes; one as the main router and two as mesh nodes. The main router is connected to the internet and the two mesh nodes are connected to the main router via WiFi6. The device has a web interface that allows you to configure it, and also a mobile app (Android/iOS) that can be used to manage the device.</description></item><item><title>Intercepting HTTP traffic in Android Flutter Apps</title><link>https://sperixlabs.org/post/2024/11/intercepting-http-traffic-in-android-flutter-apps/</link><pubDate>Sat, 02 Nov 2024 09:36:53 +0000</pubDate><guid>https://sperixlabs.org/post/2024/11/intercepting-http-traffic-in-android-flutter-apps/</guid><description>Intercepting HTTP traffic in Flutter apps has attracted significant interest among security researchers. Tools like reflutter have simplified this process. However, these tools often rely on hard-coded HTTP ports, which can limit flexibility in some cases.
This guide outlines a straightforward approach for analyzing Android Flutter apps without the need to rely on specific, fixed ports.
Required Tools# To intercept HTTP traffic in Flutter apps, you will need the following tools:</description></item><item><title>Frida APK Patcher</title><link>https://sperixlabs.org/post/2024/08/frida-apk-patcher/</link><pubDate>Fri, 16 Aug 2024 09:36:53 +0000</pubDate><guid>https://sperixlabs.org/post/2024/08/frida-apk-patcher/</guid><description>This tool allows you to patch APK files for Frida instrumentation using the Frida gadget. It injects the required libraries and smali code into the APK, re-signs it, and ensures the APK is ready to use with Frida for reverse engineering or penetration testing.
Features# Disassembles APK files using apktool Adds INTERNET permission and custom network_security_config.xml if not already present Injects Frida gadget libraries into the APK Modifies the APK’s smali code to load the Frida gadget Rebuilds, aligns, and signs the APK for use Compatible with Android versions that support APK Signature Schemes v1 and v2 Prerequisites# Before using this tool, ensure the following tools are installed on your system:</description></item><item><title>Analyzing KD Live Memory Dump with Volatility</title><link>https://sperixlabs.org/post/2024/05/analyzing-kd-live-memory-dump-with-volatility/</link><pubDate>Wed, 01 May 2024 09:36:53 +0000</pubDate><guid>https://sperixlabs.org/post/2024/05/analyzing-kd-live-memory-dump-with-volatility/</guid><description>Step 1: Identify the Memory Image# NB: Volatility version 2
Ensure you have the memory dump file ready, potentially in a raw format or the specific format used by the capture tool.
Step 2: Determine the Profile# Use the following command to identify the appropriate profile for the memory dump:
volatility -f [dumpfile] imageinfo This command helps in suggesting the most likely profile(s) based on the memory dump.</description></item><item><title>Obscurity is not Security: A Case Study of a Cross-Platform Mobile Application</title><link>https://sperixlabs.org/post/2022/10/obscurity-is-not-security-a-case-study-of-a-cross-platform-mobile-application/</link><pubDate>Sun, 09 Oct 2022 00:00:00 +0000</pubDate><guid>https://sperixlabs.org/post/2022/10/obscurity-is-not-security-a-case-study-of-a-cross-platform-mobile-application/</guid><description>This research presents a security analysis on a cross-platform mobile application. The My Vodafone (Ghana) application formed the basis for the analysis; detailing both static and dynamic analysis.
Technical Details# The platform for the analysis was iOS. Details are below:
Title: My Vodafone (Ghana) Version: 4.3.0 Bundle URL: com.vodafone.gh.myvodafone.app Directory Structure# A decrypted and decompressed ipa file shows the following contents:</description></item><item><title>Protecting Your Privacy Online</title><link>https://sperixlabs.org/post/2022/03/protecting-your-privacy-online/</link><pubDate>Sun, 13 Mar 2022 18:41:53 +0000</pubDate><guid>https://sperixlabs.org/post/2022/03/protecting-your-privacy-online/</guid><description>The current surge in the usage of smart devices has contributed significantly to the large volumes of internet traffic data being generated. In the year 2021, it was estimated that the total population in the world was 7.83 billion and about 4.66 billion of them are active internet users; which constitutes about 59.5 of the total population [1]. On average, 57 exabytes of data were generated per month in that year [2]. These facts illustrate how many people are engaged in online activities, hence the need for people to protect their privacy online.</description></item><item><title>How to Sign macOS PKG Files for Deployment</title><link>https://sperixlabs.org/post/2022/02/how-to-sign-macos-pkg-files-for-deployment/</link><pubDate>Wed, 02 Feb 2022 09:36:53 +0000</pubDate><guid>https://sperixlabs.org/post/2022/02/how-to-sign-macos-pkg-files-for-deployment/</guid><description>Signing a package is a multi-step process.
Generate a signing request. Generate Developer ID Installer certificate. Sign the macOS PKG file. Steps to Generate a Signing Request# For generating a certificate, first of all you require a Certificate Signing Request (CSR) file.
Open “Keychain Access” program within your macOS device. Click on Keychain Access appearing on the top menu bar. Go to Certificate Assistant &gt; Request a Certificate From a Certificate Authority. Add your email address in the User Email Address field, and name in the Common Name field. Leave the CA Email Address field blank. Under the Request is option, click Saved to Disc. Click Continue. Specify the location on the device where the .csr file is to be saved and click Save. The signing request will be saved to your machine in the specified location. This file is required to generate the “Developer ID Installer” certificate.</description></item><item><title>Possible Implementation Flaws in Mobile Applications: A Security Audit of a Mobile Application</title><link>https://sperixlabs.org/post/2021/01/possible-implementation-flaws-in-mobile-applications-a-security-audit-of-a-mobile-application/</link><pubDate>Sun, 10 Jan 2021 17:21:02 +0000</pubDate><guid>https://sperixlabs.org/post/2021/01/possible-implementation-flaws-in-mobile-applications-a-security-audit-of-a-mobile-application/</guid><description>This research presents a security flaw in a mobile application (both iOS and Android). The platform used for the assessment was iOS. Both platforms (iOS and Android) are affected by this flaw due the fact that they were built using a cross-platform framework (ionic).
Technical Details# Details</description></item><item><title>Unauthorised User Account Access on iRokoTV Platform</title><link>https://sperixlabs.org/post/2020/11/unauthorised-user-account-access-on-irokotv-platform/</link><pubDate>Mon, 30 Nov 2020 17:15:25 +0000</pubDate><guid>https://sperixlabs.org/post/2020/11/unauthorised-user-account-access-on-irokotv-platform/</guid><description>This research presents a flaw in user authentication that enables an unauthorised user to enumerate valid user accounts on the iRokoTV client applications (mobile and web) and also crack a person’s pin code. The security analysis was done on the iOS platform; the flaw translates to other platforms (android and web).
Details of the Flaw# The iRokoTV iOS application (version 1.7.12) presents a user with the option to sign up or log in as an existing user. When a user signs up, a 4 digit verification code is sent to the user’s number. Upon verifying, the user is made to create a 4 digit pin code that will be used in accessing the platform; together with his phone number ( as shown below).</description></item><item><title>Reverse Engineering GhanaPostGPS Mobile Application to Create an API for Local Developers</title><link>https://sperixlabs.org/post/2020/09/reverse-engineering-ghanapostgps-mobile-application-to-create-an-api-for-local-developers/</link><pubDate>Sat, 05 Sep 2020 17:07:23 +0000</pubDate><guid>https://sperixlabs.org/post/2020/09/reverse-engineering-ghanapostgps-mobile-application-to-create-an-api-for-local-developers/</guid><description>GhanaPostGPS is Ghana’s official digital addressing system which ensures that all locations in the country are addressed. Each location has a unique address which is a composite of the postcode (region, district &amp; area code). Its core functionality is to translate a user’s GPS location coordinates to a user-friendly digital address. Those who developed the addressing system did not make available a public application programming interface (API) that can be used by local developers in building technological solutions. This research presents how the digital addressing system’s mobile application was reversed engineered to create a publicly available API (https://github.com/jayluxferro/GhanaPostGPS-REST-API). The whitepaper is available on ResearchGate: http://dx.doi.org/10.13140/RG.2.2.24355.27684/2.</description></item><item><title>A Security Analysis of WhatsApp iOS Mobile Application</title><link>https://sperixlabs.org/post/2020/06/a-security-analysis-of-whatsapp-ios-mobile-application/</link><pubDate>Wed, 17 Jun 2020 17:00:58 +0000</pubDate><guid>https://sperixlabs.org/post/2020/06/a-security-analysis-of-whatsapp-ios-mobile-application/</guid><description>This research presents an investigation into WhatsApp’s on-device data storage on iOS. WhatsApp is one of the most widely used messaging application and hence it is required that a secured on-device storage mechanism be implemented to complement Apple’s security measures for their devices. This will help protect a user’s data in instances where his/her device is compromised physically. The research presents a security analysis on the storage format of data used by WhatsApp on end-users’ devices.</description></item><item><title>Security Flaw in the KNUST AIM Application</title><link>https://sperixlabs.org/post/2019/09/security-flaw-in-the-knust-aim-application/</link><pubDate>Fri, 20 Sep 2019 23:12:53 +0000</pubDate><guid>https://sperixlabs.org/post/2019/09/security-flaw-in-the-knust-aim-application/</guid><description>The Academic Information Manager (AIM) is the official mobile application for KNUST students. The key functions of AIM include: course registration, checking of results, editing of personal records, access to news from the University’s website, notifications and checking of fees. This research presents a flaw in the bearer authorization token implementation in the REST API for the AIM app. This authorization token is not validated per user basis, hence can be exploited to access or modify any student’s information through the REST API.</description></item></channel></rss>