2024-03-28
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.
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".
My first attempt to bypass Jigidi