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. Let's take a look...
       
 (IMG) Unsolved approx. 1000 piece jigsaw puzzle.
       
       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.
       
 (IMG) Dialog box reading "This puzzle's box top preview is disabled for added challenge."
       
       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. Like this:
       
       HACKAROUND
       
       Here's how it's done. Or keep reading if you just want to follow the
       instructions!
       * Open a jigsaw and try the "box cover" button at the top. If you get the
       message "This puzzle's box top preview is disabled for added challenge.",
       carry on.
       * Open your browser's debug tools (F12) and navigate to the Sources tab.
       * Find the jigex-prog.js file. Right-click and select Override Content (or Add
       Script Override).
       * In the overridden version of the file, search for the string -
       e&&e.customMystery?tt.msgbox("This puzzle's box top preview is disabled for
       added challenge."): - this code checks if the puzzle has the "custom mystery"
       setting switched on and if so shows the message, otherwise (after the :) shows
       the box cover.
       * Carefully delete that entire string. It'll probably appear twice.
       * Reload the page. Now the "box cover" button will work.
       
       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
       
 (HTM) Jigidi
 (HTM) My first effort at defeating Jigidi
 (DIR) My second effort at defeating Jigidi
 (HTM) New geocache GCAN2YC, which Dominick identified
 (HTM) JigsawExplorer