对于任何特定搜索谷歌即时ajax返回此:
{
e: "tGj0TZ-XLaXh0QGyw7nuDA",
c: 1,
u: "http://www.google.com/s?hl\x3des\x26xhr\x3dt\x26q\x3dque\x26cp\x3d3\x26pf\x3dp\x26sclient\x3dpsy\x26source\x3dhp\x26aq\x3d\x26aqi\x3d\x26aql\x3d\x26oq\x3d\x26pbx\x3d1\x26bav\x3don.2,or.r_gc.r_pw.\x26fp\x3daee70eb115de80e6\x26biw\x3d1440\x26bih\x3d653\x26tch\x3d1\x26ech\x3d4\x26psi\x3dWWb0TYasBu_q0QGW5IjmAg.1307862617656.1",
d: "[\x22que\x22,[[\x22que\x22,0,\x220\x22],[\x22que\\u003Cb\\u003E es el amor\\u003C\\/b\\u003E\x22,0,\x221\x22],[\x22que\\u003Cb\\u003Epasa\\u003C\\/b\\u003E\x22,0,\x222\x22],[\x22que\\u003Cb\\u003E me dices\\u003C\\/b\\u003E\x22,0,\x223\x22],[\x22que\\u003Cb\\u003E significa mi nombre\\u003C\\/b\\u003E\x22,0,\x224\x22]],{}]"
}
{
e: "tGj0TZ-XLaXh0QGyw7nuDA",
c: 0,
u: "http://www.google.com/s?hl\x3des\x26xhr\x3dt\x26q\x3dque\x26cp\x3d3\x26pf\x3dp\x26sclient\x3dpsy\x26source\x3dhpx26aq\x3d\x26aqi\x3d\x26aql\x3d\x26oq\x3d\x26pbx\x3d1\x26bav\x3don.2,or.r_gc.r_pw.\x26fp\x3daee70eb115de80e6\x26biw\x3d1440\x26bih\x3d653\x26tch\x3d1\x26ech\x3d4\x26psi\x3dWWb0TYasBu_q0QGW5IjmAg.1307862617656.1",
d: ""
}
通过此响应,页面会刷新结果。谷歌使用什么样的方法来实现这个级别的加密/混淆(我不确定在这种情况下使用哪个术语)
答案 0 :(得分:3)
对此没有任何混淆。它只是编码,因此它可以在JavaScript字符串中传输而不会破坏它。
在JavaScript字符串中,您可以使用转义序列来表示字符:\xFF
以编码 ISO-8859-1 字符,使用\uFFFF
来编码 Unicode < / em>字符。例如,\x3d
是等号=
,\u003C
is the less-than symbol <
(在内部,所有JavaScript字符串都是Unicode)。
这里有两个对象文字,可用于创建实际对象。试试JavaScript控制台。
var test = {
e: "tGj0TZ-XLaXh0QGyw7nuDA",
c: 1,
u: "http://www.google.com/s?hl\x3des\x26xhr\x3dt\x26q\x3dque\x26cp\x3d3\x26pf\x3dp\x26sclient\x3dpsy\x26source\x3dhp\x26aq\x3d\x26aqi\x3d\x26aql\x3d\x26oq\x3d\x26pbx\x3d1\x26bav\x3don.2,or.r_gc.r_pw.\x26fp\x3daee70eb115de80e6\x26biw\x3d1440\x26bih\x3d653\x26tch\x3d1\x26ech\x3d4\x26psi\x3dWWb0TYasBu_q0QGW5IjmAg.1307862617656.1",
d: "[\x22que\x22,[[\x22que\x22,0,\x220\x22],[\x22que\\u003Cb\\u003E es el amor\\u003C\\/b\\u003E\x22,0,\x221\x22],[\x22que\\u003Cb\\u003Epasa\\u003C\\/b\\u003E\x22,0,\x222\x22],[\x22que\\u003Cb\\u003E me dices\\u003C\\/b\\u003E\x22,0,\x223\x22],[\x22que\\u003Cb\\u003E significa mi nombre\\u003C\\/b\\u003E\x22,0,\x224\x22]],{}]"
};
console.dir(test);
收益率(在谷歌浏览器中)
Object c: 1 d: "["que",[["que",0,"0"],["que\u003Cb\u003E es el amor\u003C\/b\u003E",0,"1"],["que\u003Cb\u003Epasa\u003C\/b\u003E",0,"2"],["que\u003Cb\u003E me dices\u003C\/b\u003E",0,"3"],["que\u003Cb\u003E significa mi nombre\u003C\/b\u003E",0,"4"]],{}]" e: "tGj0TZ-XLaXh0QGyw7nuDA" u: "http://www.google.com/s?hl=es&xhr=t&q=que&cp=3&pf=p&sclient=psy&source=hp&aq=&aqi=&aql=&oq=&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=aee70eb115de80e6&biw=1440&bih=653&tch=1&ech=4&psi=WWb0TYasBu_q0QGW5IjmAg.1307862617656.1" __proto__: Object
你可以继续:
console.dir( eval(test.d) );