Understand your Mac and iPhone more deeply by tracing the evolution of Mac OS X from prelease to Swift. John Siracusa delivers the details.
You've got two main options:
#if 0 | |
IOAccelContext2::finish_fence_event() race condition OOB read/write | |
This is a method exposed to user space, it takes a kernel read-only shared memory | |
(type 2 via clientMemoryForType()) address and treats it as an IOAccelEvents Array. | |
The user supplied index is checked against the IOAccelEvents array bounds,since there are no | |
locks held in this method,it is possible to change the array bounds by calling | |
IOAccelContext2::clientMemoryForType() again in a separate thread, this will expand the size by | |
multiplying the older size by 2, but we still have a reference to the old shared memory address |
(This is a translation of the original article in Japanese by moratorium08.)
(UPDATE (22/3/2019): Added some corrections provided by the original author.)
Writing your own OS to run on a handmade CPU is a pretty ambitious project, but I've managed to get it working pretty well so I'm going to write some notes about how I did it.
https://medium.com/@clem.boin/creating-a-minimal-kernel-development-setup-using-qemu-and-archlinux-987896954d84 | |
# Install Arch system | |
qemu-image -f qcow2 kernel-dev-archlinux.img 4G | |
wget http://mirrors.edge.kernel.org/archlinux/iso/2018.12.01/archlinux-2018.12.01-x86_64.iso | |
# Note that ping does not work here | |
qemu-system-x86_64 -cdrom archlinux-2018.12.01-x86_64.iso -boot order=d -drive file=kernel-dev-archlinux.img,format=qcow2 -m 2G -enable-kvm -cpu host -smp 8 -net user,hostfwd=tcp::10022-:22 -net nic | |
#!/bin/bash -e | |
# | |
# wireguard helper script | |
# | |
IP=/sbin/ip | |
if [ "$IF_WG_CONF" -o "$IF_WG_PRIVATE_KEY" ] | |
then | |
$IP link del $IFACE |
#!/usr/bin/env sh | |
## I don't have any devices running Android OS now. These settings may have been outdated but I cannot verify it. | |
adb shell settings put global captive_portal_fallback_url http://g.cn/generate_204 | |
adb shell settings put global captive_portal_http_url http://www.google.cn/generate_204 | |
adb shell settings put global captive_portal_https_url https://www.google.cn/generate_204 | |
adb shell settings put global captive_portal_other_fallback_urls http://www.qualcomm.cn/generate_204 |
// XPath CheatSheet | |
// To test XPath in your Chrome Debugger: $x('/html/body') | |
// http://www.jittuu.com/2012/2/14/Testing-XPath-In-Chrome/ | |
// 0. XPath Examples. | |
// More: http://xpath.alephzarro.com/content/cheatsheet.html | |
'//hr[@class="edge" and position()=1]' // every first hr of 'edge' class |