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
#/usr/bin/bash | |
# strings to look for in our file | |
# Note: you could just parse the whole file. But if you put in a bad password your IP | |
# could end up on the bad guy list | |
declare -a badstrings=("Failed password for invalid user" | |
"input_userauth_request: invalid user" | |
"pam_unix(sshd:auth): check pass; user unknown" | |
"input_userauth_request: invalid user" | |
"does not map back to the address" | |
"pam_unix(sshd:auth): authentication failure" |
{ | |
"AppleTV2,1": "Apple TV 2", | |
"AppleTV3,1": "Apple TV 3", | |
"AppleTV3,2": "Apple TV 3", | |
"AppleTV5,3": "Apple TV 4", | |
"AppleTV6,2": "Apple TV 4K", | |
"iPad1,1": "iPad", | |
"iPad2,1": "iPad 2", | |
"iPad2,2": "iPad 2", | |
"iPad2,3": "iPad 2", |
git log --author="Linus Torvalds" --date=iso | perl -nalE 'if (/^Date:\s+[\d-]{10}\s(\d{2})/) { say $1+0 }' | sort | uniq -c|perl -MList::Util=max -nalE '$h{$F[1]} = $F[0]; }{ $m = max values %h; foreach (0..23) { $h{$_} = 0 if not exists $h{$_} } foreach (sort {$a <=> $b } keys %h) { say sprintf "%02d - %4d %s", $_, $h{$_}, "*"x ($h{$_} / $m * 50); }' | |
unc0ver: ~13.5 https://unc0ver.dev/
checkra1n: ~13 (14 & A10+ experimental) https://checkra.in/
#!/jb/bin/bash | |
CYCRIPT_PORT=1337 | |
function help { | |
echo "Syntax: $0 [-p PID | -P appname] [-l /path/to/yourdylib | -L feature]" | |
echo | |
echo For example: | |
echo " $0 -P Reddit.app -l /path/to/evil.dylib # Injects evil.dylib into the Reddit app" | |
echo " or" |
The libdispatch is one of the most misused API due to the way it was presented to us when it was introduced and for many years after that, and due to the confusing documentation and API. This page is a compilation of important things to know if you're going to use this library. Many references are available at the end of this document pointing to comments from Apple's very own libdispatch maintainer (Pierre Habouzit).
My take-aways are:
You should create very few, long-lived, well-defined queues. These queues should be seen as execution contexts in your program (gui, background work, ...) that benefit from executing in parallel. An important thing to note is that if these queues are all active at once, you will get as many threads running. In most apps, you probably do not need to create more than 3 or 4 queues.
Go serial first, and as you find performance bottle necks, measure why, and if concurrency helps, apply with care, always validating under system pressure. Reuse
var GB2260 = { | |
"110000": "北京市", | |
"110100": "北京市市辖区", | |
"110101": "北京市东城区", | |
"110102": "北京市西城区", | |
"110103": "北京市崇文区", | |
"110104": "北京市宣武区", | |
"110105": "北京市朝阳区", | |
"110106": "北京市丰台区", | |
"110107": "北京市石景山区", |
Downloads
directoryConsolas.ttf
fileInstall font
button// | |
// Obfuscator.swift | |
// SwiftObfuscatorExample | |
// | |
// Created by Mathieu White on 2016-07-03. | |
// Copyright © 2016 Mathieu White. All rights reserved. | |
// | |
import Foundation |
#!/bin/bash | |
# update_gfwlist.sh | |
# Author : VincentSit | |
# Copyright (c) http://xuexuefeng.com | |
# | |
# Example usage | |
# | |
# ./whatever-you-name-this.sh | |
# | |
# Task Scheduling (Optional) |