Quickly Solving JigsawExplorer Puzzles

2024-03-28

Background

I was contacted this week by a geocacher called Dominik who, like me, loves geocaching.... but hates it when the coordinates for a cache are hidden behind a virtual jigsaw puzzle.

A popular online jigsaw tool used by lazy geocache owners is Jigidi: I've come up with several techniques for bypassing their puzzles or at least making them easier.

Dominik had been looking at a geocache hidden last week in Eastern France and had discovered that it used JigsawExplorer, not Jigidi, to conceal the coordinates.

I experimented with a few ways to work-around the jigsaw, e.g. dramatically increasing the "snap range" so dragging a piece any distance would result in it jumping to a neighbour, and extracting original image URLs from localStorage. All were good, but none were perfect.

For a while, making pieces "snap" at any range seemed to be the best hacky workaround. Then I realised that - unlike Jigidi, where there can be a congratulatory "completion message" (with e.g. geocache coordinates in) - in JigsawExplorer the prize is seeing the completed jigsaw.

Let's work on attacking that bit of functionality. After all: if we can bypass the "added challenge" we'll be able to see the finished jigsaw and, therefore, the geocache coordinates.

Hackaround

Video demonstration (MP4, silent, 10.5MB)

Here's how it's done:

The code to find and remove:

e&&e.customMystery?tt.msgbox("This puzzle's box top preview is disabled for added challenge."):

The moral, as always, might be: don't put functionality into the client-side JavaScript if you don't want the user to be able to bypass it.

Or maybe the moral is: if you're going to make a puzzle geocache, put some work in and do something clever, original, and ideally with fieldwork rather than yet another low-effort "upload a picture and choose the highest number of jigsaw pieces to cut it into from the dropdown".

Links

Jigidi

JigsawExplorer

My first attempt to bypass Jigidi

My second attempt to bypass Jigidi

GCAN2YC: the geocache Dominick identified