Try Harder 👻

Control your own destiny or someone else will

How to Expand Kali Linux Disk Space (VMware + GParted)

A Complete Guide: From Snapshot Removal to Partition Re-alignment Running out of space on your Kali Linux VM? Increasing the disk size in VMware is only half the battle. You often find that the Swap partition (Extended) acts as a barrier, preventing you from expanding your main partition. In this guide, we will walk through the entire process of expanding your disk from 50GB to 70GB, including how to handle VMware snapshots and re-create your Swap area. ...

January 3, 2026 · 3 min · 508 words · 0xuki

XML CDATA Complete Guide: How to Handle Special Characters in XML

Master XML CDATA sections with practical examples. Learn when to use CDATA vs escaping, security best practices, and real-world applications for JavaScript, CSS, and HTML embedding. Understanding XML CDATA: Essential Guide to Handling Special Characters What is CDATA and Why It Matters CDATA (Character Data) creates safe zones in XML where special characters like <, >, and & can appear without escaping. It tells XML parsers: “Don’t interpret this text as markup!” ...

December 31, 2025 · 2 min · 424 words · 0xuki

Python jsonpickle Security Vulnerability: Understanding Arbitrary Code Execution Risks and Countermeasures

Python jsonpickle Security Vulnerability: Understanding Arbitrary Code Execution Risks and Countermeasures ⚠️ Critical Warning: Python’s jsonpickle library contains a severe security vulnerability that allows attackers to execute arbitrary Python code. This article provides a detailed explanation of the mechanism, attack examples, and secure serialization best practices. 📋 Table of Contents Vulnerability Overview Attack Mechanism Real Attack Examples Detailed Risks Secure Countermeasures Implementation Examples Frequently Asked Questions Related Articles 🚨 Vulnerability Overview In modern web development, data serialization and deserialization are common practices. However, when these processes are not properly managed, they can introduce serious security vulnerabilities. ...

December 30, 2025 · 6 min · 1126 words · Security Expert

Obsidian Basics: First Steps to Building a Second Brain

“I take notes, but I always forget where I wrote them.” “I use Notion or Evernote, but my information feels buried and I can’t use it effectively.” If you feel this way, Obsidian might be the solution you’ve been looking for. Obsidian is not just a notepad; it is a tool that becomes your “Second Brain,” connecting your thoughts and growing your knowledge. In this “Basics” guide for those just starting out, I will explain the appeal of Obsidian and how to use its fundamental features. ...

December 27, 2025 · 4 min · 714 words · 0xuki

Understanding SQL Collation: The Secret Sauce Behind String Sorting & Comparison

Collation is SQL’s rulebook for text data handling! It defines: 🔤 Case sensitivity: Is 'Apple' = 'apple'? ´ Accent sensitivity: Is 'café' = 'cafe'? 🗂️ Sorting order: Should 'Ö' come after 'Z' (German) or at the end (Swedish)? 🌐 Character encoding: UTF-8? Latin-1? (e.g., utf8mb4_unicode_ci). Real-world analogy: Collation is like a language-specific dictionary 📖 that tells the database how to “pronounce” and “alphabetize” characters! ⚙️ Anatomy of a Collation Name Decode the secret code: ...

December 21, 2025 · 2 min · 377 words · 0xuki

Zero Knowledge Proofs: Complete Guide to Privacy-Preserving Cryptography

Understanding Zero-Knowledge Proofs 🔐 Zero-Knowledge Proof (ZKP) is a revolutionary cryptographic method that allows one party (the prover) to prove to another party (the verifier) that they know specific information without revealing any details about that information. Key Characteristics Privacy Protection 🛡️: The prover can convince the verifier they know something without revealing what it is, maintaining complete privacy. Verifiability ✅: The verifier can be certain the prover knows the information without learning anything about the actual information itself. ...

December 10, 2025 · 2 min · 344 words · 0xuki

Understanding Preflight OPTIONS Requests: The CORS Gatekeeper

Browsers enforce the same-origin policy to prevent malicious cross-site requests. Preflight acts as a “handshake” before sensitive requests, asking: “Server, are you cool with this?” 🔥 Triggers for Preflight: Non-simple HTTP methods (PUT, DELETE, PATCH) Custom headers (e.g., X-API-Token) “Advanced” Content-Types (e.g., application/json) Credentialed requests (with cookies/auth) ✅ Simple requests (GET/POST with basic headers) skip preflight! 🔁 How Preflight Works: A 2-Step Dance sequenceDiagram Browser->>Server: OPTIONS Request (Preflight) Note left of Browser: Headers sent:<br>📍 Origin<br>📍 Access-Control-Request-Method<br>📍 Access-Control-Request-Headers alt Server Allows Server-->>Browser: 200 OK + CORS Headers Note right of Server: Headers returned:<br>✅ Access-Control-Allow-Origin<br>✅ Access-Control-Allow-Methods<br>✅ Access-Control-Allow-Headers Browser->>Server: Actual Request (e.g., DELETE) else Server Denies Server-->>Browser: CORS Error Blocked! end ⚙️ Server-Side Setup Essentials Handle OPTIONS requests correctly: ...

October 21, 2025 · 2 min · 309 words · 0xuki

SQL Injection Attacks: Complete Guide to Prevention and Defense

SQL injection remains one of the most dangerous web application vulnerabilities, responsible for 33% of all web breaches in 2023. This comprehensive guide explains how these attacks work, their real-world impact, and effective defense strategies for developers and security professionals. 1. Understanding SQL Injection Attacks 1.1 What is SQL Injection? SQL injection occurs when attackers exploit improper input sanitization to inject malicious SQL code into database queries. This vulnerability allows attackers to: ...

September 7, 2025 · 4 min · 710 words · 0xuki

ObjectDataProvider: Your Data Waiter in WPF Applications

ObjectDataProvider is a powerful data intermediary in WPF that declaratively connects business logic to UI elements. Think of it as a restaurant system: 🧄 Ingredients = Raw data (files, web content, command outputs) 👨‍🍳 Chef = Business logic classes (file operations, web services) 🤵 Waiter = ObjectDataProvider (data mediator) 👨 Customer = UI controls (ListBox, TextBox, DataGrid) Let’s explore how this “waiter” serves data from diverse sources! ⚙️ Basic Structure <ObjectDataProvider x:Key="ServiceName" ObjectType="{x:Type local:LogicClass}" <!-- OR --> ObjectInstance="{StaticResource ExistingInstance}" MethodName="DataFetchMethod" IsAsynchronous="True"> <!-- 🚀 Async mode --> <ObjectDataProvider.MethodParameters> <!-- 📦 Parameters go here --> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> 📁 File Operations: Serving Local Data 👨‍🍳 Chef: File Handler Class public class FileChef // Business logic { public FileInfo[] GetFiles(string path) => new DirectoryInfo(path).GetFiles(); public string ReadText(string path) => File.ReadAllText(path); } 🤵 Waiter Service Setup <!-- Configure waiter --> <ObjectDataProvider x:Key="FileWaiter" ObjectType="{x:Type local:FileChef}"/> <!-- Order: "Get files from kitchen (C:\Docs)" --> <ObjectDataProvider x:Key="FileListService" ObjectInstance="{StaticResource FileWaiter}" MethodName="GetFiles"> <ObjectDataProvider.MethodParameters> <system:String>C:\Docs</system:String> <!-- 🧾 Ingredients location --> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> 👨 Customer Experience <!-- Receive served data --> <ListBox ItemsSource="{Binding Source={StaticResource FileListService}}" DisplayMemberPath="Name"/> <!-- 📂 File list display --> 🌐 Internet Access: Web Data Delivery 👨‍🍳 Chef: Web Service Class public class WebChef { private readonly HttpClient _client = new(); public async Task<string> FetchWebData(string url) => await _client.GetStringAsync(url); } 🤵 Waiter Service Setup <ObjectDataProvider x:Key="WebWaiter" ObjectType="{x:Type local:WebChef}"/> <!-- Order: "Fetch web ingredients (API data)" --> <ObjectDataProvider x:Key="WebContentService" ObjectInstance="{StaticResource WebWaiter}" MethodName="FetchWebData" IsAsynchronous="True"> <!-- 🚀 Avoid UI freeze --> <ObjectDataProvider.MethodParameters> <system:String>https://api.example.com/data</system:String> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> 👨 Customer Experience <WebBrowser NavigateToString="{Binding Source={StaticResource WebContentService}}"/> <!-- 🌐 Served web content --> ⌨️ Command Execution: Processing Complex Orders 👨‍🍳 Chef: Command Processor public class CommandChef { public string Execute(string command) { using var process = new Process(); // Configure process (PowerShell, CMD, etc.) return process.StandardOutput.ReadToEnd(); } } 🤵 Waiter Service Setup <ObjectDataProvider x:Key="CmdWaiter" ObjectType="{x:Type local:CommandChef}"/> <!-- Order: "Run PowerShell recipe" --> <ObjectDataProvider x:Key="ProcessService" ObjectInstance="{StaticResource CmdWaiter}" MethodName="Execute" IsAsynchronous="True"> <ObjectDataProvider.MethodParameters> <system:String>Get-Process | Select Name, CPU</system:String> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> 👨 Customer Experience <DataGrid ItemsSource="{Binding Source={StaticResource ProcessService}, Converter={StaticResource OutputConverter}}"/> <!-- 📊 Served command results --> 🔗 Composite Workflow Example Download → Save → Display Workflow: ...

June 16, 2025 · 3 min · 625 words · 0xuki

Mastering .NET Reverse Engineering with dnSpy: A Security Professional's Guide

Reverse Engineering Malicious Binaries Step 1: Initial Triage Load suspect .dll/.exe into dnSpy Use Assembly Explorer to identify: Suspicious imports (e.g., System.IO.Compression for packed payloads) Obfuscation markers (ConfuserEx, Eazfuscator strings) Embedded resources (malicious scripts) Step 2: Deobfuscation Workflow // Before deobfuscation public string Decode(string input) { return Encoding.UTF8.GetString(Convert.FromBase64String(input).Reverse().ToArray()); } // After using dnSpy's "Simplify" feature: public string Decode(string input) => "FLARE-ON_2023"; // Revealed C2 domain Techniques: Right-click → Analyze to detect crypto routines Ctrl+Shift+R to rename obfuscated variables Export decrypted resources via Save Code Debugging for Vulnerability Research Exploiting Logic Flaws Set breakpoints at authentication methods Modify return values in Debug > Windows > Immediate: // Change authentication result ? isAdmin = true // Bypasses access checks Trace insecure deserialization paths (e.g., BinaryFormatter usage) Extracting Secrets Use Memory Window during execution to: Dump RSA private keys from CSP containers Capture DPAPI-protected credentials Extract hardcoded API tokens Binary Patching for Exploit Development Scenario: Craft PoC for license check bypass ...

June 13, 2025 · 3 min · 462 words · Your Name Here