Tudo bem, eu não sei se é correto responder a sua própria pergunta, mas aqui está o que eu fiz:
function revertURL() {
var refs = document.querySelectorAll("h3.r > a");
for (i = 0; i < refs.length; ++i) {
var oldurl = refs[i].href;
var n1 = oldurl.indexOf("q=");
var n2 = oldurl.indexOf("sa=");
var newurl = oldurl.slice(n1 + 2, n2 - 1);
refs[i].href = newurl;
}
}
Edite quatro dias depois: Após o teste, adicionei os parênteses (ao redor e depois da função) que eram necessários para que funcionasse de verdade.
Também expandi a definição de refs
para que o script funcione em mais tipos de resultados de pesquisa: sub-listas de resultados de um único domínio, páginas armazenadas em cache do Google e resultados de pesquisa de imagens.
E adicionamos uma linha para decodificar os caracteres de escape que a função estava produzindo.
(function revertURL() {
var refs = document.querySelectorAll("h3.r > a, a.fl, span._cD > a, table.images_table a");
for (i = 0; i < refs.length; ++i) {
var oldurl = refs[i].href;
var n1 = oldurl.indexOf("q=");
var n2 = oldurl.indexOf("sa=");
var newurl = oldurl.slice(n1 + 2, n2 - 1);
var newurl_dec = decodeURIComponent(newurl)
refs[i].href = newurl_dec;
}
})();