Fix

Keeping pace with the AFR

Back in February, we told you about the handy Deobfuscator tool, which made it possible to copy and paste text from the Australian Financial Review (via its sister site MIS). Following reader reports, we can confirm that the original Deobfuscator tool no longer seems to work on MIS pages (presumably there’s been a coding change at the back end).
However, all is not lost — as I learnt during the Pubcamp media conference in Melbourne earlier this week, the AFR is making at least some content available on its site the day of publication, and the Deobfuscator still works fine on that. Here it is working its magic on an article about the corporate coming of age of Twitter and LinkedIn by Renai LeMay, well worth passing on to your management if they still insist that social networking should be banned on work computers. The original AFR article is here. (Thanks Sean C for raising the issue!)

Comments

  • Sean Carmody

    If the experience with the TV Guide on ninemsn is anything to go by, we could be in for an obfuscation arms race here!

  • Ilya

    It’s not a terribly difficult obfuscation. They simply have 2 divs, each composed of the paragraphs, with every second character missing.
    So to spell “LIFEHACKER”, one would read “L F H C E ” and the other would read “I E A K R”.

    The two divs are floating, and overlay over each other so that the spaces line up with the characters of the other div (they use a monotype font to ensure this).

    You can knock up Greasemonkey script to “fix” this bizzare obfuscation.

  • Ilya

    An example Greasemonkey script for this:

    var allDivs, thisDiv, firstDiv, secondDiv;
    allDivs = document.evaluate(”//div[@class='float']/P”,
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);

    for (var i = 0; i
    {
    var para1 = allDivs.snapshotItem(i);
    var para2 = allDivs.snapshotItem(i+allDivs.snapshotLength/2);

    var combined = “”;
    for (var j=0; j
    {

    if (String(para1.textContent[j]) == ‘\u00A0′ && String(para2.textContent[j]) != ‘\u00A0′)
    {
    combined += String(para2.textContent[j]);
    }
    else if (String(para1.textContent[j]) != ‘\u00A0′ && String(para2.textContent[j]) == ‘\u00A0′)
    {
    combined += String(para1.textContent[j]);
    }
    else
    {
    combined+= String(para1.textContent[j]);
    }
    }
    para1.textContent = “”;
    para2.textContent = combined;
    }

Post Your Comments

Got something to say? There are two ways to comment:

1. Guests

Click here to comment instantly.

2. Facebook Users

Click below to comment using your Facebook account.

We're looking for comments that are interesting, substantial or highly amusing. If your comments are excessively self-promotional, obnoxious, or even worse, boring, you will be banned from commenting. All comments are moderated.