Inane Observations $ sudo fix_it
  • Python re-implementation of Cryptomator encryption scheme

    01 June 2024 | cryptography encryption python | Comment

    Cryptomator is an open-source file-based encryption system. Encrypted data is stored as files which can be easily uploaded to arbitrary cloud storage services, and there is a one-to-one relationship between plaintext and encrypted files. In order to increase privacy, filenames are encrypted and there is… »

  • Extracting TOTP keys from a proprietary Android 2FA app

    04 July 2023 | totp 2fa mfa cryptography encryption | Comment

    This is an analysis of an early 2010s proprietary Android-based two-factor authentication (2FA) application for a particular cloud service provider – à la Okta, or Microsoft Authenticator. This particular cloud service has been publicly criticised for not supporting industry standard 2FA algorithms such as time-based… »

  • Investigating and disabling hard-coded certificate pinning in an Android application

    23 December 2020 | programming reverse engineering obfuscation security cryptography encryption | Comment

    mitmproxy is an open source interactive HTTPS proxy, which makes it easy to intercept HTTPS for reverse engineering, including an Android clients. It does this by installing its own CA certificate on the client device.1

    Recently, I was attempting to reverse engineer the HTTPS… »

  • Broken Uno house rules; or, the importance of systems thinking, rather than ‘reasoning by Lego’

    26 January 2020 | cryptography encryption misc | Comment

    House rules are a staple of card and board games, and Uno is no exception. Recently with friends, we played some games of Uno, observing a common house rule:

    House Rule 1. A player who incorrectly calls ‘Uno’ must draw two cards.1 (Each player

    … »
  • Investigating a recent ebook DRM system (c. 2018)

    28 March 2019 (updated 09 April 2019) | copyright drm reverse engineering encryption cryptography security | Comment

    Background

    This post concerns a DRM system used in an online ebook platform, released circa 2018. Users of the platform can purchase ebooks and either view them online, or download them for offline viewing using a proprietary Android/iOS app.

    As usual, the particular DRM system… »

  • Crypto failures in the wild

    28 January 2019 | reverse engineering encryption cryptography security | Comment

    Sony PlayStation 3 ECDSA random number reuse

    The Sony PlayStation 3 (2006) uses Elliptic Curve DSA (ECDSA) to sign executable binaries.

    ECDSA takes a private key \(d_A\) and a random number \(k\) with public parameters \(G\), \(n\) and public key \(Q_A = d_A G\), and… »

  • Investigating an early-2010s gaming DRM system: Part 4

    11 December 2018 | copyright drm reverse engineering encryption cryptography security | Comment

    Last time, we investigated how an early-2010s gaming DRM system approached machine-based licensing. This time, we'll investigate exactly how the DRM system interacts with the game to accomplish its ends.

    Structure of the DRM system

    Looking at the game binary, FooBarBazX.exe, for the… »

  • Investigating an early-2010s gaming DRM system: Part 3

    02 December 2018 | copyright drm reverse engineering encryption cryptography security | Comment

    Last time, we investigated how an early-2010s gaming DRM system stored licences for games. This time, we'll investigate how those licences are tied to particular devices.

    From last time, we know that the licence file contains an encrypted XML payload:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    … »
  • Investigating an early-2010s gaming DRM system: Part 2

    02 December 2018 (updated 12 December 2018) | copyright drm reverse engineering encryption cryptography security | Comment

    Last time, we investigated part of a gaming DRM system from the early-2010s, looking at some of the configuration files. This time, we'll investigate how the licences for these games are stored.

    Is is known that the licence data for the games is stored… »

  • Investigating an early-2010s gaming DRM system: Part 1

    16 November 2018 (updated 11 December 2018) | copyright drm reverse engineering encryption cryptography security | Comment

    Background

    This post concerns a DRM system used in a PC gaming platform introduced in the early 2010s. The particular DRM system is not relevant and will not be identified, but will be familiar to many.

    One function of the DRM system is to require… »

  • Home
  • Git (Archives: GitLab, GitHub)
  • Research
  • Music
  • Posts
    • May 2025 (3)
    • December 2024 (2)
    • November 2024 (2)
    • September 2024 (2)
    • August 2024 (1)
    • More…
  • Tags
    • medicine (25)
    • copyright (20)
    • opentally (20)
    • drm (19)
    • encryption (12)
    • monash (12)
    • mathematics (11)
    • statistics (10)
    • proportional representation (8)
    • python (8)
    • victoria (8)
    • law (7)
    • meeting procedure (7)
    • ptv (7)
    • public transport (7)
    • rust (7)
    • defective by design (6)
    • digital rights management (6)
    • creative commons (4)
    • webassembly (4)
    • metro trains (3)
    • paediatrics (3)
    • politics (3)
    • 2fa (2)
    • c (2)
    • graphics (2)
    • mfa (2)
    • pdf (2)
    • victorian electoral commission (2)
    • android (5)
    • security (18)
    • cryptography (12)
    • programming (12)
    • voting systems (8)
    • med in review (11)
    • music (10)
    • parliamentary procedure (7)
    • totp (2)
    • reverse engineering (20)
    • obfuscation (12)
    • single transferable vote (19)
    • ebook (16)
    • elections (12)
    • java (6)
    • linux (33)
  • Lee Yingtong Li
  • blog@yingtongli.me
  • My CV · CV of Failures
@RunasSudo

Most material on this website is available under an open licence. See https://yingtongli.me/blog/copyright.html for details.