Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View nicolas17's full-sized avatar

Nicolás Alvarez nicolas17

  • Buenos Aires, Argentina
View GitHub Profile
# SPDX-FileCopyrightText: 2023 Nicolás Alvarez <nicolas.alvarez@gmail.com>
#
# SPDX-License-Identifier: MIT
import requests
import time
import sys
import datetime
sess = requests.session()
[
{
"type": "ota",
"prerequisiteBuild": "20G5070a",
"deviceMap": [
"iPad7,4"
],
"url": "https://updates.cdn-apple.com/2023SummerSeed/patches/042-36984/458DD0C0-49B8-40F7-9D0D-D9A82C76DFDA/com_apple_MobileAsset_SoftwareUpdate/69f1a7b082026702574e20f83ea4e2115ecd6ae7.zip",
"active": true,
"hashes": {
@nicolas17
nicolas17 / gist:559bec0d8e636f93f62cca844ee94ada
Last active December 13, 2023 11:08
Apple IDS payload keys
c: command
cc: commandContext
v: version
P: payload
N: bulkedPayload
fP: fanoutPayload
aP: additionalPayload
Pm: payloadMetadata
i: messageId
U: messageUUID
@nicolas17
nicolas17 / yellow.asm
Last active April 18, 2023 03:57
hello-world iOS app
.global _main
.extern _putchar
.align 4
_main:
// prolog; save fp,lr,x19
stp x29, x30, [sp, #-0x20]!
str x19, [sp, #0x10]
#!/usr/bin/python3
# SPDX-FileCopyrightText: 2022 Nicolás Alvarez <nicolas.alvarez@gmail.com>
#
# SPDX-License-Identifier: MIT
import os
import sys
import json
import re

3 people have 6x16TB, 96TB each, total raw storage is 288TB across 18 disks

Configuration Usable storage Resilience
Each person does RAID-6
The same data is stored by all people
4x16TB = 64TB Any 7 disks can be lost (worst case 2 people lose 3 disks each and lose the RAID, third person loses 2 disks and can still recover).
If we're lucky, max 14 disks can be lost (two people lose all 6 disks, third person loses 2 disks).
Any person has all data locally without needing other nodes.
Each person does RAID-5
The same data is stored by all people
5x16TB = 80TB Any 5 disks can be lost (worst case 2 people lose 2 disks each and lose the RAID, third person loses 1 disk and can still recover).
If we're lucky, max 13 disks can be lost (two people lose all 6 disks, third person loses 1 disk).
Any person has all data locally without needing other nodes.
Spread files across all disks/peopleUse 6-of-18 parity 6x16TB = 96TB Any 12 disks can be lost, but n
@nicolas17
nicolas17 / gist:07df9344adef593f289ee2123c8990d5
Created August 3, 2022 19:06
Apple's DMCA against tweets linking to ipsw.dev
Copyright owner:
> Apple Inc.
Name:
> Louis Ferrari
Company:
> Kilpatrick Townsend Stockton LLP
Job title:
> Case Manager
Email:
> appleip@kilpatricktownsend.com
@nicolas17
nicolas17 / README.md
Last active April 15, 2021 22:04
Verify your git-bisect run script

When using git bisect run ./test.sh it's not uncommon to get the condition in test.sh wrong. This can cause a lot of wasted time as you only notice the mistake hours later when bisect finishes and points at the wrong commit.

This Python script runs the test script against the commits you already marked as good or bad in the bisect session (either with 'git bisect good/bad' or as part of the 'git bisect start' command) and ensures your test script returns the correct status code.

@nicolas17
nicolas17 / CVE-2021-3449.md
Last active March 29, 2021 18:14
Exploit for CVE-2021-3449 (OpenSSL null ptr deref)

Download openssl-1.1.1j (1.1.1k probably works too but I didn't test).

Apply this patch (or manually edit the one line):

diff -ur openssl-1.1.1j/ssl/statem/extensions_clnt.c openssl-1.1.1j-patched/ssl/statem/extensions_clnt.c
--- openssl-1.1.1j/ssl/statem/extensions_clnt.c 2021-02-16 12:24:01.000000000 -0300
+++ openssl-1.1.1j-patched/ssl/statem/extensions_clnt.c 2021-03-25 14:56:40.072257668 -0300
@@ -272,7 +272,7 @@
         return EXT_RETURN_NOT_SENT;
 
@nicolas17
nicolas17 / boostpp_math.c
Created November 4, 2020 18:05
Cursed boost.pp math
// SPDX-FileCopyrightText: 2020 Nicolás Alvarez <nicolas.alvarez@gmail.com>
//
// SPDX-License-Identifier: MIT
#include <boost/preprocessor.hpp>
// Utilities to convert from numbers (bytes) or words (highbyte,lowbyte pairs)
// into nibbles.
// a -> (a1,a0)