Debugging macOS Kernel For Fun

Hi there! It’s GeoSn0w. Debugging the damn kernel is a very entertaining thing to do (until you provoke a serious exception, that is, and the kernel crawls into a corner from which it refuses to get out). Unfortunately, it’s not an easy task nowadays, and Apple seems to want to make it harder and harder. At first, by hiding under lock and key, the documentation about the debug boot arguments, and then by moving the Kernel Debug Kit under the Developer Account-only Downloads section. There are many write-ups on the internet about debugging the kernel on macOS, but many of them are …

Read article

An introduction to x86 Intel Assembly For Reverse Engineering

When I first started Reverse Engineering, I was looking into something, to begin with. I eventually decided to start with understanding assembly because, after all, that’s the best you can get when the source code isn’t publicly available, unless you find pleasure in reading 1s and 0s or HEX dumps. A few decades ago, a lot of software used to be written in assembly language specific to the CPUs at the time. I remember writing assembly code for the 6502 CPU back on the Commodore 64 because sometimes, the BASIC was just too slow. It wasn’t really fun. Nowadays, high-level …

Read article

Hacking the Dino Game from Google Chrome, The Immortal Dinosaur

When there is no internet connection available, Google Chrome web browser on Windows and macOS (most likely on Linux too) shows a page detailing the possible causes, as well as a small endless runner game with a dinosaur that has to run, dodge obstacles, and accumulate points. The game is relatively simple-minded. A monochrome game area with clouds, cacti, bumps in the ground, a dinosaur, a Hi-Score counter, and a current score counter. As levels increase in complexity, the dinosaur will have to dodge cacti, pterodactyls, and so on. The game also inverts the contrast at random points, making the …

Read article

How to Find Offsets For iOS Exploits In The Kernel

This write-up uses the Trident project by benjamin-42. The offsets are for the components this particular project requires, but the methodology and the information can easily be adapted to other iOS versions, devices, and projects. Each exploit requires a different set of offsets for various kernel components, and each offset is found in a different way, but I believe this information should be useful for beginners. I am gonna use the iPod Touch 5th Generation for this write-up. I was working on a private iOS 8.4.1 Jailbreak for my iPod Touch 5th Generation for practice purposes, and I’ve decided to …

Read article