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 {} |