How to crack immich

I have to admit I am also running an immich instance as a photo backup solution for me and some family relatives and friends.

Since immich started with this nasty “UNLICENSED” banner on the webapp it was my task to teach immich a lesson and develop a crack for it 🙂

Cracking immich involves a two step process. First we need to modify the javascript sources served to the browser, and we need to patch sources on the server side which also validates the activation serial server-side.

The goal of this crack is to provide an easy way to crack activate immich without modifying the actual sources and building immich ourself, we want to continue using their official docker image and also future versions of it.

The webapp part will do network requests to https://buy.immich.app and https://pay.futo.org

These hosts can be changed during build-time by defining environment variables PUBLIC_IMMICH_BUY_HOST and PUBLIC_IMMICH_PAY_HOST

Sadly we receive already compiled sources from them and setting these environment variables on the docker container will not change the baked-in urls in the sources anymore.

Let’s modify the sources on the fly on our apache2 reverse proxy with the following configuration:

ProxyPass / http://localhost:3001/ nocanon
ProxyPassReverse / http://localhost:3001/

<Location /_app/immutable/chunks/>
    RequestHeader unset Accept-Encoding

    AddOutputFilterByType SUBSTITUTE text/javascript

    Substitute "s|https://buy.immich.app|https://immich-crack.brunner.ninja|"
    Substitute "s|https://pay.futo.org|https://immich-crack.brunner.ninja|"
</Location>

We have to setup a domain where immich will do the serial number checks, lets use immich-crack.brunner.ninja in this example.

Create a textfile at the relative path api/v1/activate/IMSV-AAAA-AAAA-AAAA-AAAA-AAAA-AAAA-AAAA-AAAA in this new domain and put the string IMSV-OIDA in it

Next create another file api/users/me/license and put OIDA into this file.

Then add a entrypoint: directive to the docker-compose.yml like this:

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    entrypoint: bash -c "sed -i 's#throw .*Invalid license key#//#g' dist/services/server.service.js && ./start.sh"
    volumes:

This will patch the server sources every time the immich server boots up.

Now the final part: Let’s try to activate immich with the following fake serial:

IMSV-AAAA-AAAA-AAAA-AAAA-AAAA-AAAA-AAAA-AAAA

If every step worked and my tutorial is not outdated, you should be greeted with a success popup:

When you go into administrative settings you will also see the new license there:


Posted

in

by

Tags:

Comments

4 responses to “How to crack immich”

  1. Herbert Avatar

    Oida bist du deppat

  2. xavier Avatar
    xavier

    can you share a full video?

  3. matze Avatar
    matze

    cooles ding bro aber du kannst halt auch einf den hier nehmen:

    IMCL-76S5-B4KG-4HXA-KRQF-C1G1-7PJ6-9V9V-7WQH

  4. xavier Avatar
    xavier

    how it works? please tutorial

Leave a Reply

Your email address will not be published. Required fields are marked *