How to install Live Mesh client (AMD64) on non-US systems… my way.

committed to database on April 27, 2008 at 1:50 pm Eastern Standard Time 5 comments digg this

There are many reasons for a beta to start in limited countries, whether it be technical, economical, legal or political. Regardless, earlier today Long Zheng posted a simple way to bypass the Live Mesh client system locale checks by... drum roll please... changing the actual system locale. Unfortunately, changing the system locale requires a reboot which is very irritating.


Error received on non-US English locale system

Rather than change the system locale, it's easier to skip the check in the actual executable. To do this, use your favorite hex editor (XVI32 in my case), jump to file offset 0xC32B (valid in executable version 0.9.2815.2), change the 74 byte to EB, save your changes, and finally double-click your newly patched LiveMesh executable.

   
LiveMesh.exe (AMD64) in XVI32, before byte change

Don't blame me if your computer starts speaking French. I'll expand on why you changed this byte in an article within the Hacks section later.

  1. _||_ April 28, 2008 at 4:48 pm

    What have you got against Zheng? :->

    It’s amazing how “deeply” you know Windows

  2. Rafael April 28, 2008 at 6:38 pm

    I have nothing against Long, he’s great! We usually just double-team certain topics of interest.

  3. pierdelp June 5, 2008 at 5:23 pm

    Any idea about the x86 version?

  4. pierdelp June 13, 2008 at 7:11 pm

    UP!!!

  5. Mike Dimmick September 4, 2008 at 12:10 pm

    Well, I’m guessing that the 74 byte leads off a JZ/JE instruction (jump to some other instruction if the result of the last operation was zero or a comparison was equal), where taking the jump goes to the ’success’ case. EB indicates an unconditional jump – the branch is always taken – so it acts as if the test was never there.

    If the test were the other way around, with the code jumping to the location reporting the error, you’d patch it out with a three-byte NOP e.g. 0F 1F 00.