unc0ver: ~13.5 https://unc0ver.dev/
checkra1n: ~13 (14 & A10+ experimental) https://checkra.in/
- download checkra
- connect your iPhone via USB
- start JB on checkra
<body onload=z=c.getContext`2d`,setInterval(`c.width=W=150,Y<W&&P<Y&Y<P+E|9<p?z.fillText(S++${Y=`,9,9|z.fillRect(p`}*0,Y-=--M${Y+Y},P+E,9,W),P))):p=M=Y=S=6,p=p-6||(P=S%E,W)`,E=49) onclick=M=9><canvas id=c> |
import UIKit | |
#if canImport(SwiftUI) && DEBUG | |
import SwiftUI | |
struct UIViewControllerPreview<ViewController: UIViewController>: UIViewControllerRepresentable { | |
let viewController: ViewController | |
init(_ builder: @escaping () -> ViewController) { | |
viewController = builder() | |
} |
unc0ver: ~13.5 https://unc0ver.dev/
checkra1n: ~13 (14 & A10+ experimental) https://checkra.in/
As the Ghidra open source community is growing, trying to document the new projects around Ghidra. Feel free to fork the gist and propose improvements.
[From: http://hanxue-it.blogspot.com/2018/08/macos-homebrew-installing-older-version-of-software.html - just created a copy to keep it for long term] | |
Homebrew always wants to install the latest version of the Formula (software). This is by design, because every time there is an update to a formula, it wants to be tested against all the other formulas that it depends on. Mixing new and old versions of software is a recipe for incompatibility disaster. | |
But sometimes there are situations where you need an older version of software. In my specific case, Yarn was compiled against an older version of icu4c, and I want that older version instead of recompiling Yarn. | |
$ yarn install | |
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib | |
Referenced from: /usr/local/bin/node |
Full ROP explanation! | |
At the beginning, we predict a address were our payload will be in the end. | |
We can trick a bit by using a nop slide, but the payload we want execute is statically linked so we need to get rid of the nops. | |
For this, we build a special payload, it consists of the folllowing parts | |
1. a bunch of nops to nop slide. Now we just need to have a good enough guess to not hit our real code. | |
2. the "wiiuhaxx_loader.s". To removes the nops. | |
3. the size of the "real" payload | |
4. the real payload. |
#! /bin/bash | |
### | |
### svg2icns.bash | |
### Create ICNS file from SVG | |
### | |
### See also: | |
### <https://stackoverflow.com/questions/12306223/how-to-manually-create-icns-files-using-iconutil#39678276> | |
### <https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html> | |
### |
# maximum capability of system | |
user@ubuntu:~$ cat /proc/sys/fs/file-max | |
708444 | |
# available limit | |
user@ubuntu:~$ ulimit -n | |
1024 | |
# To increase the available limit to say 200000 | |
user@ubuntu:~$ sudo vim /etc/sysctl.conf |
-- Usage | |
-- 1. Edit the settings (see below). This step is NECESSARY the first time you use it! | |
-- 2. Run this script (this should open Audio Hijack Pro and Spotify) | |
-- | |
-- NOTE: the script assumes that each track is played entirely. You CANNOT skip tracks in Spotify. | |
-- If you do so the script will get out of sync and the resulting files contain partial or multiple songs. | |
-- You can abort a recordig session by stopping this script and ending (manually) the recording | |
-- in Audio Hijack Pro. | |
-- | |
-- You need to have "atomicparsley" installed on your system. You can install the application with |
import Foundation | |
/// Protocol for NSLocking objects that also provide tryLock() | |
public protocol TryLockable: NSLocking { | |
func tryLock() -> Bool | |
} | |
// These Cocoa classes have tryLock() | |
extension NSLock: TryLockable {} | |
extension NSRecursiveLock: TryLockable {} |